摘要:本系统基于HC08单片机的小车寻迹蔽障系统,该系统采用三个高灵敏度的红外反射光电传感器,对路面的黑 {MOD}轨迹进行检测,将检测的数据送入单片机进行处理,并利用单片机产生PWM波,使小车实现寻迹。采用一组超声波传感器,对小车前面是否有障碍物进行检测,将检测结果送入单片机进行处理,使小车绕过障碍物。采用霍尔传感器检测带磁石的铁片,将检测结果送入单片机进行处理,并利用单片机产生声光提示。因此,本系统由红外光电传感器,超声波传感器,霍尔传感器,单片机以及各传感器驱动单元电路共同作用,保证小车能在预定的轨道上实现寻迹和蔽障以及检测铁片。 Abstract: The system is based on HC08 Microcontroller car tracing unblinded system that uses three high-sensitivity infrared reflection photoelectric sensor, the black track on the road testing, the test data into the single chip processor, produced using the single chip PWM wave , driving motor to achieve Tracing car. Using a set of ultrasonic sensors in front of the car to detect whether there are obstacles, the test results into the single chip processor, single chip implementation according to the results of tests sent to bypass obstacles. Therefore, this system consists of infrared photoelectric sensors, ultrasonic sensors, microcontroller and the sensor drive unit circuit interaction, ensure that car on track in achieving the intended search track and unblinded. 本系统设计的主要特 {MOD}: 采用稳定可靠的HC08单片机 控制电路电源和电机电源隔离,信号通过光电耦合器传输 光电传感器使小车寻迹,超声波传感器使小车躲避障碍物,霍尔传感器检测带磁石的铁片。 优化的软件算法,智能化的自动控制,定位精确 1.方案的选择与论证1.1、控制器模块选择方案1:采用可编程逻辑期间CPLD 作为控制器。CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。且从使用及经济的角度考虑我们放弃了此方案。 方案2:采用飞思卡尔公司的8位单片机,具有体积小、可靠性高、稳定可靠、中断处理能力强、处理速度快等特点。完全能实现小车的寻迹,避障和检测铁片。 综合各方面因素,我们最终选择了方案2。 1.2、电机选择方案1:采用步进电机控制的小车。步进电机的一个显著特点就是具有快速启动能力,步进电机可以精确的控制车轮转动的角度,已精确地控制小车的转动方向,从而达到要求的角度。但是步进电机造价高,对控制电路要求比较高,所以我们放弃该方案。 方案2:采用直流电机控制的小车。直流电机具有优良的调速特性,调速平滑、方便、调整范围广;直流电机轻便简单,只要给出PWM波形,便可对其进行调速,造价简单,我们对电机的转动角度并没有太高的要求。 综上所述,我们选择方案2。 1.3、电机驱动模块选择方案1:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。 方案2:利用H桥电路的电机驱动模块。此种电路包含若干个三极管及外围电阻等器件,通用性强,功能强大。通过对相关端口的写入,能够实现两电机正反转和PWM调速。但是,由于三极管本身工作电流的限制,此电路不能够驱动大功率电机,并且电路暴露在外部导致稳定性不高,所以我们放弃使用该方案。 方案3:基于L298N的电机驱动模块。L298N是一款专门用于驱动电动机的芯片,具有高集成度、高功率的特点,其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动大的负载,如大功率直流电机,步进电机等,较少的外围电路(仅需要保护用的二极管)便可以很好地驱动大功率的电机。其输入端可以与单片机直接相联,从而很方便地受单片机控制。当驱动直流电机时,可以直接控制两路电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。而且模块体积小,稳定性高。 综上所述,我们选择L298N及外围电路作为电机驱动模块。 1.4、避障模块选择方案1:用激光传感器进行避障。它由激光器、激光检测器和测量电路组成。激光传感器是新型测量仪表,它的优点是能实现无接触远距离测量,速度快,精度高,量程大,抗光、电干扰能力强等。但是激光传感器造价高,并且外围电路非常复杂,不适合我们的系统特点。所以我们放弃该方案。 方案2:用超声波传感器进行避障。超声波传感器是利用超声波的特性研制而成的传感器。超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的。遇到障碍物后能够返回,被传感器接受后,然后将这信号放大后送入单片机。声波传感器需要精确的40KHz的方波信号来工作,HC08单片机可产生40KHZ的方波。 综上所述,我们采取方案21.5、寻迹模块选择方案1:采用红外发射管和接受管自制模块。我们独立设计出此模块的电路图,发射管发射光线,根据黑 {MOD}材料吸收光线而白 {MOD}材料反射光线的原理,当遇到黑线时,单片机接收到高电平;不在黑线时,单片机接受的为低电平,从而判断智能车的位置,而做出相应的决策。但是,我们发现,此电路对黑白线检测不时太灵敏,在黑线以外的时候也会输出高电平,造成系统判断失误。同时,电路稳定性较差,会受到外界光线影响,不利于整体性能,所以,我们放弃该方案。 方案2:可见光发光二极管与光敏二极管组成的发射-接收电路。这种方案的缺点在于其他环境光源会对光敏二极管的工作产生很大干扰,一旦外界光亮条件改变,很可能造成误判和漏判;虽然采取超高亮度发光管可以降低一定的干扰,但这又增加额外的功率损耗。 方案3:采用反射式光电传感器 ITR20001/T ,ITR20001/T传感器是一种集发射与接收于一体的光电传感器,主要用于黑白线检测。这款黑白线传感器受可见光干扰小,输出信号为开关量,信号处理简单,使用非常方便。此模块不需外部电路,我们加入一个10K和100欧姆的上拉电阻便可使其工作正常。 基于以上情况,我们选择了方案3。 1.6、铁片检测模块选择 对于该模块,我们采用霍尔传感器检测带磁铁的铁片。此模块工作在4.5-28v,工作电流20mA,检测到铁片时,能够输出低电平给单片机,同时指示灯闪亮。该模块符合我们的要求,故我们选择此方案。 1.7、电源模块选择1.8、小结 经过几番仔细的论证和比较,我们决定了本系统主要模块方案如下: 主控制器:飞思卡尔公司的HC08位单片机。 电机选择:直流电机 电机驱动模块:L298N集成芯片 避障模块:超声波传感器进行避障 寻迹模块:收发一体的反射式光电传感器 ITR20001/T 铁片检测模块:霍尔传感器 2、系统硬件设计与实现2.1 单片机最小系统设计 本系统有单片机作为小车的控制核心,控制黑线检测模块,金属探测模块,电机驱动模块,显示及声光指示模块,超声波探测模块,测距模块。 系统整体框图如图1所示: 图1 系统整体框图 单片机最小系统原理图如图2所示: 图2 单片机最小系统电路原理图 2.2 系统硬件设计 1) 路面黑线检测模块 我们采用收发一体的反射式光电传感器 ITR20001/T,驱动电路原理图如图3,ITR20001/T可在+5V下正常工作,在没有探测到黑线时,探头输出始终保持低电平。当检测到黑线时,输出立刻由低调变到高。为保证小车沿黑线行驶,我们采用了三个传感器排在车头。在小车行走过程中,中间的传感器一直在进行检测,若向左方向偏离黑线,则右侧的传感器就会检测到黑线,把信号传给单片机,单片机接收到信号后,单片机控制车头向右转。 图3 光电检测电路原理图 2) 超声波探测模块 由于小车在进入障碍区后要求准确绕过障碍物。所以我们用超声波检测小车前方的障碍物,如果小于一定距离,则通过软件控制小车使其绕过障碍物。超声波发送与接收驱动电路如图4-1和4-2 图4-1 超声波发送电路原理图 图4-2 超声波接收电路原理图 3) 电机驱动模块 我们采用L298N集成芯片如图(5-1)来驱动直流电机。L298N驱动直流电机时(如图5-2),可以直接控制两路电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。而且模块体积小,稳定性高。 图5-1 L298N集成芯片引脚结构 图5-2 电机驱动电路原理图 4) 铁片离起点距离检测 在小车的后轮上固定一黑线,同时采用光电传感器 ITR20001/T来检测黑线,车轮转动时,光电传感器就能检测到黑线,由此便得到通断相间的高低电平信号。两个相邻的高电平或低电平就代表车轮转动了一圈,根据车轮的半径为 ,可近似的算出铁片到起点的距离。 3、系统软件设计 控制电路主要由单片机实现,主要负责对路面的软件检测与纠错,车速检测,电机驱动,光源检测,声光提示。 1) 软件的主要特 {MOD} 软件在设计时,采用C语言和汇编。底层采用汇编语言编写,而在高层则采用C语言进行编写。这样不仅使程序更加简洁,更加提高了程序的可靠性。 2) 软件流程图如图6 图6 软件流程图 4、系统测试 1) 测试仪器 秒表,米尺 2) 测试方法 将小车放在起始位置,开启电源,让小车自由行驶,记录全程时间及铁片与起始点距离。与小车显示的参数进行比较,并记录。多次改变障碍物的位置。重复以上操作。 3) 测试结果(如下表) 项目 第一次 第二次 第三次 实际值 铁片A点到起始点的距离 铁片B点到起始点的距离 总时间/s 5、参考文献 [1]全国大学生电子设计竞赛组委会. 全国大学生电子设计竞赛获奖作品选编[M] .北京理工大学出版社,2003 [2]王宜怀、刘晓升. 嵌入式技术基础与实践 清华大学出版社 2007 [3]夏路易、石宗义 电路原理图与电路板设计教程 北京希望电子出版社 2002 [4]谭浩强 C语言程序设计 清华大学出版社 2005 [5] [6] 6、附录 附1:部分元器件清单 附2.:程序清单 附3:实物图 最小系统板背面 测试时候的运行状况 在测试中的小车