简 介: 智能车系统32位TC智能车264控制器的方案设计。车身前方通红外170°广角摄像头识别道路,识别洗标灯后,将信标灯坐标输入控制核心,用于赛车运动控制决策。通过编码器测速模块检测速度。通过电压采集检测实时电压,判断当前电压下可执行的状态。采用电机转速控制 PID 控制,通过 PWM 控制驱动电路调节电机转速,完成智能车速闭环控制。此外,还增加了键盘作为输入输出设备。调试上通过ips1.14寸小彩屏实现图像显示,并且可以通过按参方便调试。并通过制作实物测试证明该方案是可行的。 : ,,,
引言
??全全国大学生智能汽车竞赛"立足培养,注重参与,鼓励探索,追求卓越"鼓励创新的科技竞赛为宗旨。比赛要求英飞凌公司的微控制器作为核心控制模块,通过增加道路传感器、电机驱动模块和编写相应的控制程序,在指定的汽车模型平台上制的模型车。参赛选手的目标是在三分钟内完成模型车最多灭灯。
??本次比赛采用自制车模(龙邱小黑马)和英飞凌TC264作为核心控制单元,独立构思控制方案和系统设计,集成摄像头识别和电机驱动输出,最终实现一套完整的系统,可以独立识别路线和竞争。
??在制造汽车的过程中,我们对汽车的整体结构进行了深入的研究,分别在机械结构、硬件和软件实验中,硬件主要考虑和实践各种传感器的布局,改进驱动电路和最节能的充电方案,软件发生了几次重大变化,汽车采用有针对性的红外识别方法。控制算法,从PID到Bang-Bang,再到模糊PID做了一些研究。
??在本报告中,我们主要通过介绍整体方案、机械、硬件、算法等方面,详细阐述了我们在智能汽车竞赛中的思想和创新。具体表现在电路的创新设计、算法以及辅助调试模块等方面的创新。我们的团队成员涉及自动化、电子信息工程等专业。在准备比赛的过程中,团队成员查阅了大量的专业信息,反复调试了汽车模型的参数。为智能汽车竞赛付出了艰苦的努力。
第一章 系总体方案设计
??根根据比赛的统一要求,传感器类型、系统硬件电路的设计和软件算法的开发必须在组委会提供的车型平台上独立选择。该系统主要包括机械结构、硬件电路系统、软件算法三大部分。每个部分由每个小模块组成。因此,要构建一个完整的汽车系统,必须首先对每个模块进行论证和设计,将整个系统组合成一个完整的系统,进行整个系统的调试。
1.1系统总体结构
??智能车主要由检测识别系统、控制决策系统、动力系统、充电系统四部分组成。检测识别系统采用逐飞170°通红外广角摄像头用英飞凌控制决策系统TC264作为主控芯片,动力系统主要是直流电机的转速,充电系统由我们自己设计的充电板和超级电容器组成。整个过程是通过摄像头检测信标灯的位置,确定信标灯的坐标,并将坐标信息发送给单片机。同时,车身的行驶速度信息通过编码器组成的反馈渠道传输给主控单片机。主控单片机根据获得的信标灯坐标信息和车身当前速度信息做出决策,并通过PWM信号控制直流电机进行相应的动作,实现车身的转向控制和速度控制。智能车系统总体结构框图如下:
▲ 图 1.1 智能车系统总体结构框图
??赛车硬件电路主要由八部分组成:SAK-TC264D-40F200W芯片及其外围电路、摄像头采集信息模块、电源管理模块、电压采样处理模块、速度检测电路、电机驱动电路、无线充电模块、辅助调试模块。
??(1)SAK-TC264D-40F200W芯片及其外围电路是系统的核心部分,负责接收信标灯坐标数据、车模速度、车模位置等反馈信息,并妥善处理,形成适当的控制量来控制驱动电机模块。 ??(2)电源管理模块为整个系统供电,包括每个稳压模块,以确保系统的安全稳定运行。 ??(3)1700摄像头采集信息模块°红外广角摄像头收集轨道信息,获取信标灯位置坐标和车模位置信息,供单片机处理。
??(4)速度检测电路采用龙邱增量测速,与正交解码兼容。 ??(5)电机驱动电路采用MOS驱动。 ??(6)无线接收电路负责电容供电。 ??(7)电压采样处理模块主要用于采集电容的实时电压,通过A/D将反馈转换给单片机,判断车模在此电压下应执行的任务。 ??(8)辅助调试模块:主要用于功能调试、赛车状态监控等。
第二章 机械结构设计
??根根据组委会的有关规定,今年的节能信标车型为自制车型。我们选择了龙邱推荐的小黑马模型。通过不断的实验和测试,我们发现以下三个方面的机械结构对汽车的运行有很大的影响:转向机构、传感器固定和重心调整。车辆的重心越低,控制就越灵活和稳定。
2.1车模机械模型
??我们经过多次多种的样品测试,从转速,扭矩,空载电流,工作电压,使用寿命,机械连接特性以及控制方案可行性对多种电机进行了评估。发现LQ25R8V6在性能和节能方面表现良好。所以我们最终选择了两个LQ25R8V6电机是我们的动力电机。电机如下图2所示.1所示:
▲ 图2.1.1 LQ25R8V6
??由于龙邱小黑马车轮在长期高速运动和地面摩擦的作用下,轮毂和轮胎会有一定的分离,会使车身在快速转弯时漂移,抓地力不强,所以我们用树脂胶加固轮胎和轮毂,使车身更加稳定。
▲ 图2.1.2 树脂胶加固轮胎
2.2 安装传感器
??由于信标灯会发射三种信号:电磁信号、红外光和红光,我们的三种方案都进行了尝试和比较。远离灯的电磁信号会受到地下钢筋等明显干扰,红光容易在周围环境中反射,并受到灯光和阳光的干扰。虽然红外光看不见,但它是最稳定的光源,除了自然光中的红外光外,它不会受到其他光源的干扰,所以我们选择了170通红外°广角摄像头。国赛规则中,两个信标灯之间的距离最远.61米,本着降低算法复杂性的原则,我们通过延长相机支架的高度来解决视觉问题,相机支架增加了45米cm,如图2所示.2所示
??图2.2 安装后的车模图
??2.3本章小结 ??本章主要介绍了汽车安装、生产和调试过程中的具体机械问题。本组从一开始赛以来,一直坚持机械结构和算法是同样重要的原则,在更新算法的同时也在提高相应的机械和硬件结构来适应。上面的介绍是目前最稳定的智能汽车版本。本组就机械结构上涌现的各种问题进行了大量的尝试,从中也总结出大量经验。之前的一些调整取得了极好的效果,但却在一定程度上缺少稳定性,故最终退而求其次,选择了最稳定最持久的机械调整方法。并结合程序算法的特点,极力调整至最佳状态。
第三章 硬件系统设计及实现
3.1硬件设计方案
从最初进行硬件电路设计时我们就既定了系统的设计目标:可靠、高效、简洁,在整个系统设计过程中严格按照规范进行。
可靠性是系统设计的第一要求,我们对电路设计的所有环节都进行了电磁兼容性设计,做好各部分的接地、屏蔽、滤波等工作,将高速数字电路与模拟电路分开,使本系统工作的可靠性达到了设计要求。
高效是指本系统的性能要足够强劲,我们主要是从以下两个方面实现的:
(1) 采用LT3780作为无线接收的DCDC芯片。 (2) 采用节能电机。
简洁是指在满足了可靠、高效的要求后,为了尽量减轻整车重量,降低模型车的重心位置,应使电路设计尽量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻,易于安装。我们在对电路进行了详
细分析后,对电路进行了简化,合理设计元件排列、电路走线,使本系统硬件电路部分轻量化指标都达到了设计要求。
3.2智能车传感器模块设计(最终没用电磁,曾测试过放弃了)
我们试着选用了磁传感器。磁传感器的应用首先在于选型,为了找出适合的磁传感器,我们查阅了许多的产品资料,进行了大量的电感测试,发现只有在 10mH 电感中,得到感应 电动势曲线是较为规整的正弦波,频率和赛道电源频率一致,为20kHz,幅值较其他型号的大,且随导线距离变化,规律为近大远小。其他电感得到信号不好,频率幅值变化杂乱,不宜采用。
3.2.1电感传感器的原理
根据电磁学,我们知道在导线中通入变化的电流(如按正弦规律变化的电流),则导线周围会产生变化的磁场,且磁场与电流的变化规律具有一致性。如果在此磁场中置一由线圈组成的电感,则该电感上会产生感应电动势,且该感应电动势的大小和通过线圈回路的磁通量的变化率成正比。由于在导线周围不同位置,磁感应强度的大小和方向不同,所以不同位置上的电感产生的感应电动势也应该是不同。据此,则可以确定电感的大致位置。
3.2.2磁传感器信号处理电路
确定使用电感作为检测导线的传感器,但是其感应信号较微弱,且混有杂波,所以要进行信号处理。要进行以下三个步骤才能得到较为理想的信号:信号的滤波,信号的放大,信号的检波。1)信号的滤波比赛选择 20kHz 的交变磁场作为路径导航信号,在频谱上可以有效地避开周围其它磁场的干扰,因此信号放大需要进行选频放大,使得 20kHz 的信号能够有效的放大,并且去除其它干扰信号的影响。使用 LC 并联谐振电路来实
现选频电路(带通电路)。其中,E 是感应线圈中的感应电动势,L 是感应线圈的电感值,R0 是电感 的内阻,C 是并联谐振电容。电路谐振频率为:已知感应电动势的频率 f =20kHz,感应线圈电感为 L=10mH,可以计算出 谐振电容的容量为 C=6.33×10-9 F 。通常在市场上可以购买到的标称电容与上 述容值最为接近的电容为 6.8nF,所以在实际电路中选用 6.8nF 的电容作为谐振电容。 2)信号的放大 由第一步处理后的电压波形已经是较为规整的 20kHz 正弦波,但是幅值较 小,随着距离衰减很快,不利于电压采样,所以要进行放大,官方给出的如下 参考方案即用三极管进行放大,但是用三极管放大有一个不可避免的缺点就是 温漂较大,而且在实际应用中静电现象严重。因此我们放弃三极管放大的方案,而是采用集成运放进行信号的放大处 理,集成运放较三极管优势是准确受温度影响很小,可靠性高。集成运放放大 电路有同相比例运算电路和反相比例运算电路,我们在实际中使用同相比例运算电路。由于运放使用单电源供电,因此在同相端加 vcc/2 的基准电位,基准电位由电阻分压得到。 3)信号的检波 测量放大后的感应电动势的幅值 E 可以有多种方法。 最简单的方法就是 使用二极管检波电路将交变的电压信号检波形成直流信号,然后再通过单片机 的 AD 采集获得正比于感应电压幅值的数值。 我们采用的为竞赛组委会给出的第一种方案即使用两个二极管进行峰值检波。峰值检波电路可以获得正比于交流电压信号峰峰值的直流信号。为了能够 获得更大的动态范围,峰值检波电路中的二极管推荐使用肖特基二极管或者锗二极管。由于这类二极管的开启电压一般在 0.1~0.3V 左右,小于普通的硅二 极管(0.7V),可以增加输出信号的动态范围和增加整体电路的灵敏度。这里 选用常见的的肖特基二极管SS14。
最终方案确定如下图3.1所示:
▲ 图 3.1 磁传感器信号处理电路
特色:只放大交流信号,未放大直流信号。隔离了直流,交流峰值检波。稳定准确。
3.3电路设计方案
智能车控制系统电路由三部分组成:SAK-TC264D-40F200W为核心的最小系统板、主板、稳压模块、驱动模块、无线充电模块。
板上集成了本系统的主要电路,它包括如下部件:电源稳压电路、编码器模块、五项按键、显示屏等。鉴于精简硬件的原则,本组在硬件设计时基本去除了上下拉电阻的设计,基本采用核心板内部上拉功能进行上拉下拉的实现。
3.3.1单片机最小系统板
SAK-TC264D-40F200W是英飞凌系列MCU。原理图如下图 3.2所示。
▲ 图 3.2 STC8G2K64S4最小系统原理图
3.3.2电源管理模块
线性电源技术很成熟,制作成本较低,可以达到很高的稳定度,纹波也很小,而且没有开关电源具有的干扰与噪音,开关电源效率 高、损耗小、可以降压也可以升压,但是交流纹波稍大些。 电源模块对于一个控制系统来说极其重要,关系到整个系统是否能够正常工作,因此在设计控制系统时应选好合适的电源模块。根据竞赛规则,节能组车模运行的能源来自于无线接收线圈感应电流提供的电能,不允许安装任何电池储能器件。因此经过选择,比赛使用 60F 超级电容的串联组合供电。
为满足需要,本车模上存在 3 种供电电压: 1) 智能车使用超级电容作为电源,工作于 3~9V。 2) 单片机和传感器工作使用直流5V。采用TPS630701供电。 3) 电机供电8.4V采用TPS61088。
TPS630701原理图,如图所示:
3.3.4无线充电接收模块
采用的LTC3780DCDC芯片LTC3780是一款高性能降压-升压型开关稳压控制器,可在输入电压高于、低于或等于输出电压的条件下运作。恒定频率电流模式架构提供了一个高达 400kHz 的可锁相频率。凭借 4V 至 30V (最大值为 36V) 的宽输入和输出范围以及不同操作模式间的无缝切换。电能从无线发射端接收后经过整流后给LTC3780恒压给超级电容充电。其恒压原理图如下
3.3.4电机驱动电路
电机驱动采用比较方便使用的驱动芯片TC4422的分立式MOS全桥驱动。供电压7~8.2 V,最大电流50 A,驱动信号PWM频率为利用芯片控制直流电机,不仅可以简化电路设计,而且使得控制更加简单。为了防止系统在工作过程中因为芯片保护而停止工作,在小车设计时,充分考虑到了散热、稳压、过流保护等情况并采取一定措施。
3.3.5五项按键电路
主板上还包括拨码开关电路和键盘电路。
第四章 软件系统设计及实现
控制程序是人的思想在车模体现,程序要体系化,模块化,稳定化,目标是将硬件电路和机械性能发挥到最大,在考虑耗能的前提下让车模用最稳定的速度完成比赛。
4.1信标灯坐标信息的采集
4.1.1遍历算法
4.1.2确认信标灯坐标算法
4.1.3速度反馈处理
4.1.4对信标灯的甄别处理
4.1.5信标灯中心的计算
得到准确的信标灯坐标后,首先通过降噪滤波处理,把一些光线不均与地方的仅有一两个像素点的亮光排除,然后进行第一步的形状判断,如上所述,判断收集到的图像中信标灯的轮廓是否为圆形,然后排除不规则图形的光斑,来确定仅有一个的信标灯,最后一步将信标灯所有像素点进行均值运算,这样能最准确的判断出信标灯的坐标,排除阳光、反光等的干扰。
4.2 PID控制算法介绍
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。 PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例§、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器,原理框图如图5.7所示。
4.3中途补电算法
部分代码:
ips114_showint16(185,6,6666); //区别
charge=adc_mean_filter(ADC_0, ADC0_CH0_A0, ADC_12BIT,10);
charge=charge*1000*3.25/4096;
if(last_charge<charge&&charge<1400&&sumhang>50&&sumlie>=80&&sumlie<=108) //二次充电 停在灯上
{
while(ECPULSE1!=0&&ECPULSE2!=0)
{
temp=gpt12_get(GPT12_T2);
ECPULSE2=-temp; //右
ECPULSE1=gpt12_get(GPT12_T5); //左
gpt12_clear(GPT12_T5);
gpt12_clear(GPT12_T2);
MotorDuty1 =0;
MotorDuty2 =0;
pid(MotorDuty1,MotorDuty2);
go(leftpid,rightpid);
}
batchargeflg=2;
break; // //跳出batchargeflg=1的while循环,进行二次充电
}
while(batchargeflg==2) //二次充电
{
charge=adc_mean_filter(ADC_0, ADC0_CH0_A0, ADC_12BIT,5);
charge=charge*1000*3.25/4096;
ips114_showint16(185,5,charge);
go(0,0);
if(charge>2000)
{
batchargeflg=3;
break; //跳出二次充电batchargeflg=2的while
}
}
第五章 软件调试
调试工具的正确使用以及如何运用都能给整个系统的建立和优化带来好处,它是单片机和用户之间的桥梁。
我们的软件程序编写任务主要在AURIX Development Studio平台下进行的,该平台是一个非常有效的集成开发环境,它使用户充分有效地开发并管理嵌入式应用工程。作为一个开发平台,他具备较为完善的特性。
嵌入式AURIX Development Studio使用于大量8位、16位以及32位的微处理器和微控制器,使用户在开发新的项目时也能在所熟悉的开发环境中进行。它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持。嵌入式AURIX Development Studio有效提高用户的工作效率,通过ADS工具,用户可以大大节省工作时间。
5.1 ADS的在线调试
在程序的编译和运行当中,遇到的大部分问题,都能够通过ADS的在线调试中解决。例如其中 Debugger 允许用户查看在源代码中查看变量或表达式,使用户可以在运行程序时跟踪其值的变化,并且查看变量的方式有许多种,我们使用Live watch功能,在小车实时运行中观察变量的变化,进而分析程序执行情况。
5.2本章小结
本章主要介绍了,本系统主要的调试方法以及使用的调试工具,其实,在这方面我们组做的工作远不止上面所介绍的一些,还包括了很多调试和上位机上的尝试,在刚刚入门时,这些调试的方法对技术的提高很有帮助,而当对系统驾轻就熟之后,在调试上所花的时间也越来越少了。但无论怎样,如果没有调试工具,很难让小车跑得好,跑得快,如果没有良好的辅助调试的方法,就不能更加高效地调试小车。本小组的水平有限,所用的调试方案仍然不是很好,希望借此抛砖引玉,发现更优的调试方案。
第六章 结论
6.1 模型车整体制作情况及技术参数
本系统以英飞凌单片机SAK-TC264D-40F200W作为核心控制单元,以摄像头采集路况信息,以编码器对小车速度进行实时采集,完成智能车工程制作及调试,自主智能识别信标灯,自动地驱动动力系统和转向系统完成智能控制。整个设计主要分为车体机械结构设计和软/硬件系统设计。车体机械结构设计主要包括编码器和传感器的安装、车身底盘的固定、等;硬件系统设计完成了电源管理模块、电机驱动模块、速度测量模块、辅助调试模块等;软件系统设计完成了各功能模块的算法及程序设计,包括电压采集算法设计、信标灯坐标算法设计以及电机的PID算法设计。所设计的系统经过测试,赛车能够快速安全行驶。经过了比赛的检验之后,我们也对自己的小车更加有信心。 模型车的主要技术参数如下表:
- 路径检测方法(赛题组) 节能信标组
- 车模平均电流(匀速行驶)(毫安) 300mA
- 传感器种类及个数 摄像头 姿态传感器
- 新增加伺服电机个数 0
- 赛道信息检测(精度(远/近)) 4.61米
- 车模重量(带有电容)(g) 2000g
- 功耗(空载、带载) 空载(匀速)12W左右,带载>14W
6.2 心得体会
今年的16届智能车竞赛,困难比我们想象中要大的多。放弃真的太容易,所以能坚持下来真的很了不起。我相信今年能坚持下来做比赛的队伍,都很了不起,不管最后如何,我们都是对于自己的第一名。
从2020年11月份决定开始干到比赛2021年8月中旬,这短短的4个月的时间,期间也要兼顾学业,真正开始做其实是6月下旬。最后这两个月可谓一路风雨兼程,我们每一天几乎都会遇到新的问题,有些问题一卡就是两三天,十分痛苦煎熬,有时候因为一个问题久久不能入睡,但是一旦问题解决后,那天晚上会睡得特香。最后这段时间,可以说是痛并快乐着。当然,现在想来,还是很享受这个过程的。
时间可以克服一切这句话不错,经过一天天的努力,我们的车模从6月底刚刚做出来,到7月中旬能完赛。到了8月初,已经在追求速度和更加节能稳定了,那一天,我们还清晰的记得,我们激动的睡不着觉。
幸亏,我们努力还是有了回报。幸运的进入了国赛,我们发挥出我们应有的水平。不论最后结果如何,我们都挺满意的了。
智能车竞赛,真的是一个我们值得付之课余时间和精力的比赛,在此之中我们收获了很多东西。无关奖项,我们只顾着把车做好,心无旁骛,一往无前,做比赛的这个过程真的很享受。今年的智能车比赛特殊又特殊,我相信往后我们也会时不时拿出来久久回味。
最后,愿智能车比赛越办越好!
参考文献
[1]卓晴,黄开胜,邵贝贝等编.学做智能车-挑战"飞思卡尔"杯.北京:北京航空航天大学出版社,2007. [2]单伟,王亚飞,戴英华.第七届全国大学生"飞思卡尔"杯智能汽车竞赛安徽工业大学 D-I 队技术报告[R].安徽:安徽工业大学,2012. [3]刘珂屹,舒伯特,徐国强.第七届全国大学生"飞思卡尔"杯智能汽车竞赛北京科技大学 摄像头一 队技术报告[R].北京:北京科技大学,2012. [4]李栋,金福彪,蒋亚楠.第七届全国大学生"飞思卡尔"杯智能汽车竞赛常熟理工学院 闪电六队 技术报告[R].常熟:常熟理工学院,2012. [5]杨永,模糊自适应PID控制及其在智能车的应用[J].广东技术师范学院学报,2011,(1): 29 - 32. [6]沈红卫.基于单片机的智能系统设计与实现[M].北京:电子工业出版社,2005. [7]王名发,江智军,郭鹏, 基于OV7620摄像头智能车道路信息视频采集及处理研究, 南昌:南昌大学. [8]http://www.21icsearch.com/s_bts7970.html,BTS7970英文参考手册[Z] [9]http://www.smartcar.au.tsinghua.edu.cn/introduce.html.全国大学生智能汽车竞赛介绍.2013.
■ 附录A 系统主要源代码
float L_PidIncCtrl(float error)
{
L_out_p = kp_l * error;
L_out_i = ki_l * error;
L_out_d = kd_l * (error - L_last_error);
L_last_derivative = error - L_last_error;
L_last_error = error;
L_out += L_out_p + L_out_i + L_out_d;
if(L_out>7000)
{
L_out=7000;
}
if(L_out<-7000)
{
L_out=-7000;
}
return L_out;
}
float R_PidIncCtrl(float error)
{
R_out_p = kp_r * error;
R_out_i = ki_r * error;
R_out_d = kd_r * (error - R_last_error);
R_last_derivative = error - R_last_error;
R_last_error = error;
R_out += R_out_p + R_out_i + R_out_d;
if(R_out>7000)
{
R_out=7000;
}
if(R_out<-7000)
{
R_out=-7000;
}
return R_out;
}
void init()
{
adc_init(ADC_0,ADC0_CH0_A0); //adc初始化
gpio_init(KEY1,GPI,0,PULLUP);
gpio_init(KEY2,GPI,0,PULLUP);
gpio_init(KEY3,GPI,0,PULLUP);
gpio_init(KEY4,GPI,0,PULLUP);//按键初始化
gpio_init(SW3,GPI,0,PULLUP);
gpio_init(SW4,GPI,0,PULLUP);//拨码开关初始化
mt9v03x_init();
ips114_init(); //初始化IPS屏幕
gpt12_init(GPT12_T5, GPT12_T5INB_P10_3, GPT12_T5EUDB_P10_1); //左
gpt12_init(GPT12_T2, GPT12_T2INB_P33_7, GPT12_T2EUDB_P33_6); //右
gtm_pwm_init(MOTOR1_A, 17000, 0);////频率17Khz
gtm_pwm_init(MOTOR1_B, 17000, 0);
gtm_pwm_init(MOTOR2_A, 17000, 0);////频率17Khz
gtm_pwm_init(MOTOR2_B, 17000, 0);//pwm初始化
}
void view() //显示
{
uint8 i,j;
for(i=10;i<=120;i++)
{
for(j=0;j<=188;j++)
{
if(Bin_Image[i][j]==1)
ips114_drawpoint(j,i,0xffff);
if(Bin_Image[i][j]==0) ips114_drawpoint(j,i,0x0000);
}
}
}
void fun_photo() //处理图像
{
uint8 i,j;
for(i=10;i<120;i++)
{
for(j=0;j<188;j++)
{
if(mt9v03x_image[i][j]>yuzhi)
Bin_Image[i][j]=1;
else
Bin_Image[i][j]=0;
}
}
}
void Seek_Beacon (void)
{
uint8 nr=0; //行
uint8 nc=0; //列
uint8 shang=0,xia=0,zuo=0,you=0;
dotcnt=0;
for (nr = 10; nr < LCDH - 1; nr++)
{
for (nc = 1; nc < LCDW - 1; nc++)
{
if ((Bin_Image[nr][nc] == 1) && (Bin_Image[nr - 1][nc] + Bin_Image[nr + 1][nc] + Bin_Image[nr][nc + 1] + Bin_Image[nr][nc - 1] >1))
{
// 188*120分辨率下,有两个连续白点,则认为是可能的信标灯
while(Bin_Image[nr-shang][nc]==1)
{