智能循迹避障小车
摘 要:本设计是一种基于单片机控制的简易自动寻迹小车系统,包括小车系统构成软硬件设计方法。小车以STC89C52单片机为控制核心, 用L298N 驱动小车的两个直流电动机,用单片机产生PWM 波,控制小车速度。利用红外对管对路面黑色轨迹和障碍物进行检测, 并将路面检测信号反馈给单片机。单片机对采集到的信号予以分析判断, 及时控制驱动直流电机以调整小车转向, 从而使小车能够避开障碍物沿着黑色轨迹自动行驶, 实现小车自动寻迹的目的。
关键词:智能小车;STC89C52单片机; L298N ;红外对管
Intelligent tracking and obstacle-avoid car
(Electrical Engineering College, Longdong University, Qingyang 745000, Gansu, China) Abstract :This design is a kind of automatic tracing based on single-chip microcomputer control system used, including trolley systems hardware and software design method. Car STC89C52 single chip microcomputer to control the core, L298N driving two DC motors for car, monolithic integrated circuit PWM wave, controlling car speed. Using infra-red tube black track and detect obstacles on pavement and pavement detection signal back to the MCU. MCU on the collected signals analysis, control drive DC motors to adjust the car turning in a timely manner, so as to enable the car to avoid the obstacles along the black path automatically, achieve the purpose of car automatic tracing.
Keywords : Smart Car; STC89C52 MCU; L298N; Infrared Emitting Diode
1. 引言 .................................................................................................................................................. 3
2. 方案设计与论证 .............................................................................................................................. 3
2.1 主控系统 .............................................................................................................................. 3
2.2 电机驱动模块 ...................................................................................................................... 4
2.3 循迹模块 .............................................................................................................................. 5
2.4 避障模块 .............................................................................................................................. 6
2.5 机械系统 .............................................................................................................................. 7
2.6电源模块 ............................................................................................................................... 7
3. 硬件设计 .......................................................................................................................................... 7
3.1总体设计 ............................................................................................................................... 7
3.2驱动电路(参考文献[4]) . ................................................................................................. 8
3.3信号检测模块 ....................................................................................................................... 9
3.4主控电路 ............................................................................................................................. 10
4. 软件设计 ........................................................................................................................................ 11
4.2电机驱动程序 ..................................................................................................................... 11
4.3循迹模块 ............................................................................................................................. 12
P0_0=!P0_0; ....................................................................................................................................... 13
P0_1=!P0_1; ....................................................................................................................................... 14
4.4避障模块 ............................................................................................................................. 14
5. 制作安装与调试 ............................................................................................................................ 18
5.1 PCB的设计制作与安装 ..................................................................................................... 18
结束语 ................................................................................................................................................ 18
参考文献 ............................................................................................................................................ 19
1. 引言
随着机械自动化的不断发展,人们在生活的各个方面都希望能够利用自动化的操作 来提高工作效率,使生产发展能够得到不断的提高。近来在轨迹跟踪方面的话题研究不 断引起人们的更多关注,国内外更是开展了一系列的智能轨迹跟踪系统的竞赛活动。在 实际应用中,具有智能化的机器人在人们无法触及的工作场合下更是大显身手,如各种 军事机器人、勘探机器人等。和我们日常生活更为接近的有各种医疗机器人、汽车自动 泊位系统、自动驾驶系统等等。
轨迹跟踪系统的设计在机器人领域有着重要的地位,可以说是机器人实现智能化的 一个重要指标。任何一个机器人想要实现智能化就必须能够实现对外部环境的自我感知 判断并作出相应反应,最终完成人们布置的任务。
本设计通过对轨迹跟踪问题的分析,制作了一辆能够自动跟踪地面上的黑色轨迹的 小车。
2. 方案设计与论证
根据要求,确定如下方案:在现有玩具电动车的基础上,加装光电检测器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
2.1 主控系统
根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。据此,拟定了以下两种方案并进行了综合的比较论证,具体如下:
方案一:
选用一片CPLD (如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD 具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL 语言进行编写开发。但CPLD 在控制上较单片机有较大的劣势。同时,CPLD 的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU 就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案,进而提出了第二种设想。
方案二:
采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就
显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。
针对本设计特点——多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。根据这些分析, 我选定了P89C51RA 单片机作为本设计的主控装置,51单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K ,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。
在综合考虑了传感器、两部电机的驱动等诸多因素后,我们决定采用一片单片机,充分利用STC89C52单片机的资源。
2.2 电机驱动模块
方案一:
采用继电器对电动机的开或关进行控制, 通过开关的切换对小车的速度进行调整. 此方案的优点是电路较为简单, 缺点是继电器的响应时间慢, 易损坏, 寿命较短, 可靠性不高。 方案二:
采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。
方案三:
采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 H 型桥式电路(如图2.1) 。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H 型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM 调速技术。现市面上有很多此种芯片,我选用了L298N(如图2.2) 。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。
图2.1 H桥式电路
图2.2 L298N
2.3 循迹模块
方案一:
采用简易光电传感器结合外围电路探测,但实际效果并不理想,对行驶过程中的稳定性要求很高,且误测几率较大、易受光线环境和路面介质影响。在使用过程极易出现
问题,而且容易因为 该部件造成整个系统的不稳定。故最终未采用该方案。 方案二:
采用两只红外对管(如图2.3) ,分别置于小车车身前轨道的两侧,根据两只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,测试表明,只要合理安装好两只光电开关的位置就可以很好的实现循迹的功能。(参考文献[3])
方案三:
采用三只红外对管,一只置于轨道中间,两只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。现场实测表明,小车在寻迹过程中有一定的左右摇摆不定,虽然可以正确的循迹但其成本与稳定性都次与第二种方案。
通过比较,我选取第二种方案来实现循迹。
图2.3 红外对管
2.4 避障模块
方案一:
采用一只红外对管置于小车中央。其安装简易,也可以检测到障碍物的存在,但难以确定小车在水平方向上是否会与障碍物相撞,也不易让小车做出精确的转向反应。 方案二:
采用二只红外对管分别置于小车的前端两侧,方向与小车前进方向平行,对小车与障碍物相对距离和方位能作出较为准确的判别和及时反应。但此方案过于依赖硬件、成本较高、缺乏创造性,而且置于小车左方的红外对管用到的几率很小,所以最终未采用。
方案三:
采用一只红外对管置于小车右侧。通过测试此种方案就能很好的实现小车避开障碍物,且充分的利用资源而不浪费。(参考文献[3])
通过比较我采用方案三。
2.5 机械系统
本题目要求小车的机械系统稳定、灵活、简单,而三轮运动系统具备以上特点。 驱动部分:由于玩具汽车的直流电机功率较小,而小车上装有电池、电机、电子器件等,使得电机负担较重。为使小车能够顺利启动,且运动平稳,在直流电机和轮车轴之间加装了三级减速齿轮。
电池的安装:将电池放置在车体的电机前后位置,降低车体重心,提高稳定性,同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。简单,而三轮运动系统具备以上特点。
2.6电源模块
方案一:
采用实验室有线电源通过稳压芯片供电,其优点是可稳定的提供5V 电压,但占用资源过大。
方案二:
采用4支1.5V 电池单电源供电,但6V 的电压太小不能同时给单片机与与电机供电。 方案三:采用8支1.5V 电池双电源分别给单片机与电机供电可解决方案二的问题且能让小车完成其功能。
所以,我选择了方案三来实现供电。
3. 硬件设计
3.1总体设计
智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,后轮是万象轮,起支撑的作用。将循迹光电对管分别装在车体下的左右。当车身下左边的传感器检测到黑线时,主控芯片控制左轮电机停止,车向左修正,当车身下右边传感器检测到黑线时,主控芯片控制右轮电机停止,车向右修正。
避障的原理和循线一样,在车身右边装一个光电对管,当其检测到障碍物时,主控芯片给出信号报警并控制车子倒退, 转向,从而避开障碍物。
3.1.1主板设计框图如图3.1,所需原件清单如表3.1。
图3.1 主板设计框图
表3.1 元件清单
3.2驱动电路(参考文献[4])
电机驱动一般采用H 桥式驱动电路,L298N 内部集成了H 桥式驱动电路,从而可以采用L298N 电路来驱动电机。通过单片机给予L298N 电路PWM 信号来控制小车的速度,起停。其引脚图如3.2,驱动原理图如图3.3。
图3.2 L298N 引脚图
图3.3 电机驱动电路
3.3信号检测模块
小车循迹原理是小车在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。
红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收
不到信号,再通过LM324作比较器来采集高低电平,从而实现信号的检测。避障亦是此原理。电路图如图3.4。
市面上有很多红外传感器,在这里我选用TCRT5000型光电对管。
图3.4循迹原理图
3.4主控电路
本模块主要是对采集信号进行分析,同时给出PWM 波控制电机速度,起停。以及再检测到障碍报警等作用。其电路图如图5。
图3.5 主控电路
4. 软件设计
4.1主程序框图:
图4.1 主程序框图
4.2电机驱动程序
void goahead() { s1=1; s2=0; s3=1; s4=0; }
void goback() { s1=0; s2=1; s3=0; s4=1; }
void turnleft() { s3=1; s4=0; }
void turnright() { s1=1; s2=0; } void stop() { en1=0; en2=0; }
4.3循迹模块
循迹框图:
图4.2 循迹框图
循迹程序: void xunji() {
if((left_red==1)&(right_red==1)) { en1=1; en2=1; goahead(); delay(150); en1=0; en2=0; delay(50); }
else if((left_red==0)&(right_red==1)) { en1=0; en2=1; turnleft();
delay(150);
P0_0=!P0_0;
en1=1; en2=0; delay(50); }
else if((left_red==1)&(right_red==0)) { en1=1; en2=0; P0_1=!P0_1; turnright(); delay(150); en1=0; en2=1; delay(50); } else { stop(); } }
4.4避障模块
避障框图:
图4.3 避障框图
避障程序:
void bizhang() { en1=1; en2=1; goback(); mid_red=0; baojing(); goback(); for(i=0;i
en2=1;
智能循迹避障小车
摘 要:本设计是一种基于单片机控制的简易自动寻迹小车系统,包括小车系统构成软硬件设计方法。小车以STC89C52单片机为控制核心, 用L298N 驱动小车的两个直流电动机,用单片机产生PWM 波,控制小车速度。利用红外对管对路面黑色轨迹和障碍物进行检测, 并将路面检测信号反馈给单片机。单片机对采集到的信号予以分析判断, 及时控制驱动直流电机以调整小车转向, 从而使小车能够避开障碍物沿着黑色轨迹自动行驶, 实现小车自动寻迹的目的。
关键词:智能小车;STC89C52单片机; L298N ;红外对管
Intelligent tracking and obstacle-avoid car
(Electrical Engineering College, Longdong University, Qingyang 745000, Gansu, China) Abstract :This design is a kind of automatic tracing based on single-chip microcomputer control system used, including trolley systems hardware and software design method. Car STC89C52 single chip microcomputer to control the core, L298N driving two DC motors for car, monolithic integrated circuit PWM wave, controlling car speed. Using infra-red tube black track and detect obstacles on pavement and pavement detection signal back to the MCU. MCU on the collected signals analysis, control drive DC motors to adjust the car turning in a timely manner, so as to enable the car to avoid the obstacles along the black path automatically, achieve the purpose of car automatic tracing.
Keywords : Smart Car; STC89C52 MCU; L298N; Infrared Emitting Diode
1. 引言 .................................................................................................................................................. 3
2. 方案设计与论证 .............................................................................................................................. 3
2.1 主控系统 .............................................................................................................................. 3
2.2 电机驱动模块 ...................................................................................................................... 4
2.3 循迹模块 .............................................................................................................................. 5
2.4 避障模块 .............................................................................................................................. 6
2.5 机械系统 .............................................................................................................................. 7
2.6电源模块 ............................................................................................................................... 7
3. 硬件设计 .......................................................................................................................................... 7
3.1总体设计 ............................................................................................................................... 7
3.2驱动电路(参考文献[4]) . ................................................................................................. 8
3.3信号检测模块 ....................................................................................................................... 9
3.4主控电路 ............................................................................................................................. 10
4. 软件设计 ........................................................................................................................................ 11
4.2电机驱动程序 ..................................................................................................................... 11
4.3循迹模块 ............................................................................................................................. 12
P0_0=!P0_0; ....................................................................................................................................... 13
P0_1=!P0_1; ....................................................................................................................................... 14
4.4避障模块 ............................................................................................................................. 14
5. 制作安装与调试 ............................................................................................................................ 18
5.1 PCB的设计制作与安装 ..................................................................................................... 18
结束语 ................................................................................................................................................ 18
参考文献 ............................................................................................................................................ 19
1. 引言
随着机械自动化的不断发展,人们在生活的各个方面都希望能够利用自动化的操作 来提高工作效率,使生产发展能够得到不断的提高。近来在轨迹跟踪方面的话题研究不 断引起人们的更多关注,国内外更是开展了一系列的智能轨迹跟踪系统的竞赛活动。在 实际应用中,具有智能化的机器人在人们无法触及的工作场合下更是大显身手,如各种 军事机器人、勘探机器人等。和我们日常生活更为接近的有各种医疗机器人、汽车自动 泊位系统、自动驾驶系统等等。
轨迹跟踪系统的设计在机器人领域有着重要的地位,可以说是机器人实现智能化的 一个重要指标。任何一个机器人想要实现智能化就必须能够实现对外部环境的自我感知 判断并作出相应反应,最终完成人们布置的任务。
本设计通过对轨迹跟踪问题的分析,制作了一辆能够自动跟踪地面上的黑色轨迹的 小车。
2. 方案设计与论证
根据要求,确定如下方案:在现有玩具电动车的基础上,加装光电检测器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
2.1 主控系统
根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。据此,拟定了以下两种方案并进行了综合的比较论证,具体如下:
方案一:
选用一片CPLD (如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD 具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL 语言进行编写开发。但CPLD 在控制上较单片机有较大的劣势。同时,CPLD 的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU 就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案,进而提出了第二种设想。
方案二:
采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就
显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。
针对本设计特点——多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。根据这些分析, 我选定了P89C51RA 单片机作为本设计的主控装置,51单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K ,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。
在综合考虑了传感器、两部电机的驱动等诸多因素后,我们决定采用一片单片机,充分利用STC89C52单片机的资源。
2.2 电机驱动模块
方案一:
采用继电器对电动机的开或关进行控制, 通过开关的切换对小车的速度进行调整. 此方案的优点是电路较为简单, 缺点是继电器的响应时间慢, 易损坏, 寿命较短, 可靠性不高。 方案二:
采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。
方案三:
采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 H 型桥式电路(如图2.1) 。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H 型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM 调速技术。现市面上有很多此种芯片,我选用了L298N(如图2.2) 。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。
图2.1 H桥式电路
图2.2 L298N
2.3 循迹模块
方案一:
采用简易光电传感器结合外围电路探测,但实际效果并不理想,对行驶过程中的稳定性要求很高,且误测几率较大、易受光线环境和路面介质影响。在使用过程极易出现
问题,而且容易因为 该部件造成整个系统的不稳定。故最终未采用该方案。 方案二:
采用两只红外对管(如图2.3) ,分别置于小车车身前轨道的两侧,根据两只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,测试表明,只要合理安装好两只光电开关的位置就可以很好的实现循迹的功能。(参考文献[3])
方案三:
采用三只红外对管,一只置于轨道中间,两只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。现场实测表明,小车在寻迹过程中有一定的左右摇摆不定,虽然可以正确的循迹但其成本与稳定性都次与第二种方案。
通过比较,我选取第二种方案来实现循迹。
图2.3 红外对管
2.4 避障模块
方案一:
采用一只红外对管置于小车中央。其安装简易,也可以检测到障碍物的存在,但难以确定小车在水平方向上是否会与障碍物相撞,也不易让小车做出精确的转向反应。 方案二:
采用二只红外对管分别置于小车的前端两侧,方向与小车前进方向平行,对小车与障碍物相对距离和方位能作出较为准确的判别和及时反应。但此方案过于依赖硬件、成本较高、缺乏创造性,而且置于小车左方的红外对管用到的几率很小,所以最终未采用。
方案三:
采用一只红外对管置于小车右侧。通过测试此种方案就能很好的实现小车避开障碍物,且充分的利用资源而不浪费。(参考文献[3])
通过比较我采用方案三。
2.5 机械系统
本题目要求小车的机械系统稳定、灵活、简单,而三轮运动系统具备以上特点。 驱动部分:由于玩具汽车的直流电机功率较小,而小车上装有电池、电机、电子器件等,使得电机负担较重。为使小车能够顺利启动,且运动平稳,在直流电机和轮车轴之间加装了三级减速齿轮。
电池的安装:将电池放置在车体的电机前后位置,降低车体重心,提高稳定性,同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。简单,而三轮运动系统具备以上特点。
2.6电源模块
方案一:
采用实验室有线电源通过稳压芯片供电,其优点是可稳定的提供5V 电压,但占用资源过大。
方案二:
采用4支1.5V 电池单电源供电,但6V 的电压太小不能同时给单片机与与电机供电。 方案三:采用8支1.5V 电池双电源分别给单片机与电机供电可解决方案二的问题且能让小车完成其功能。
所以,我选择了方案三来实现供电。
3. 硬件设计
3.1总体设计
智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,后轮是万象轮,起支撑的作用。将循迹光电对管分别装在车体下的左右。当车身下左边的传感器检测到黑线时,主控芯片控制左轮电机停止,车向左修正,当车身下右边传感器检测到黑线时,主控芯片控制右轮电机停止,车向右修正。
避障的原理和循线一样,在车身右边装一个光电对管,当其检测到障碍物时,主控芯片给出信号报警并控制车子倒退, 转向,从而避开障碍物。
3.1.1主板设计框图如图3.1,所需原件清单如表3.1。
图3.1 主板设计框图
表3.1 元件清单
3.2驱动电路(参考文献[4])
电机驱动一般采用H 桥式驱动电路,L298N 内部集成了H 桥式驱动电路,从而可以采用L298N 电路来驱动电机。通过单片机给予L298N 电路PWM 信号来控制小车的速度,起停。其引脚图如3.2,驱动原理图如图3.3。
图3.2 L298N 引脚图
图3.3 电机驱动电路
3.3信号检测模块
小车循迹原理是小车在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。
红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收
不到信号,再通过LM324作比较器来采集高低电平,从而实现信号的检测。避障亦是此原理。电路图如图3.4。
市面上有很多红外传感器,在这里我选用TCRT5000型光电对管。
图3.4循迹原理图
3.4主控电路
本模块主要是对采集信号进行分析,同时给出PWM 波控制电机速度,起停。以及再检测到障碍报警等作用。其电路图如图5。
图3.5 主控电路
4. 软件设计
4.1主程序框图:
图4.1 主程序框图
4.2电机驱动程序
void goahead() { s1=1; s2=0; s3=1; s4=0; }
void goback() { s1=0; s2=1; s3=0; s4=1; }
void turnleft() { s3=1; s4=0; }
void turnright() { s1=1; s2=0; } void stop() { en1=0; en2=0; }
4.3循迹模块
循迹框图:
图4.2 循迹框图
循迹程序: void xunji() {
if((left_red==1)&(right_red==1)) { en1=1; en2=1; goahead(); delay(150); en1=0; en2=0; delay(50); }
else if((left_red==0)&(right_red==1)) { en1=0; en2=1; turnleft();
delay(150);
P0_0=!P0_0;
en1=1; en2=0; delay(50); }
else if((left_red==1)&(right_red==0)) { en1=1; en2=0; P0_1=!P0_1; turnright(); delay(150); en1=0; en2=1; delay(50); } else { stop(); } }
4.4避障模块
避障框图:
图4.3 避障框图
避障程序:
void bizhang() { en1=1; en2=1; goback(); mid_red=0; baojing(); goback(); for(i=0;i
en2=1;