智能小车的设计.docx
- 文档编号:9667407
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:14
- 大小:508.71KB
智能小车的设计.docx
《智能小车的设计.docx》由会员分享,可在线阅读,更多相关《智能小车的设计.docx(14页珍藏版)》请在冰豆网上搜索。
智能小车的设计
智能循迹小车
侯晓伟刘晔朱朋克
摘 要:
利用红外对管检测黑线,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹的功能。
其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM波控制。
关键词:
智能小车;STC89C52单片机;L298N;红外对管;舵机。
Intelligenttrackingcar
HouXiaoweiLiuYeZhuPengke
Abstract:
Basedinfrareddetectionofblacklinesandtheroadobstacles,anduseaSTC89C52MCUasthecontrollingcoreforthespeedanddirection,Aelectronicdrived,whichcanautomatictrack,wasdesignedandfabricated.Inwhich,thecarisdrivedbytheL298Ncircuit,itsspeediscontrolledbytheoutputPWMsignalfromtheSTC89C52.
Keywords:
SmartCar;STC89C52MCU;L298N;InfraredEmittingDiode
一、方案设计与论证
根据要求,确定如下方案:
在现有玩具电动车的基础上,加装光电检测器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。
这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
1.主控系统
采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。
充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。
这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。
因此,这种方案是一种较为理想的方案。
针对本设计特点——多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。
根据这些分析,我选定了STC89C52单片机作为本设计的主控装置,52单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是52单片机价格非常低廉。
在综合考虑了传感器、两部电机的驱动等诸多因素后,我们决定采用一片单片机,充分利用STC89C52单片机的资源。
2.电机驱动电路的设计
我们采用电机驱动芯片L298N作为电机驱动,
L298N的5、7、10、12四个引脚接到单片机上,通过对单片机的编程就可以实现两个直流电机的PWM调速以及正反转等功能。
这里的二极管作用是释放电机线圈的自感电能
电容c3起缓冲作用,经过试验在调速时下方的电机接收的是一个高脉冲的电流,由于直流电机灵敏性不是很好,我们也考虑用周期长的脉冲,综合考虑,我们选择接电容起缓冲作用。
L298N
3.循迹模块
采用5只红外对管,一只置于轨道中间,4只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。
现场实测表明,小车在寻迹过程中有一定的左右摇摆不定,
通过比较,我选取了此方案。
二、机械系统
1.电源模块
采用12V蓄电池通过稳压芯片7812给电机供电,用7805给单片机及芯片供电,其优点是可稳定的提供5V电压。
2.总体设计
智能小车采用后轮驱动,前轮用舵机控制小车转向,调制后面两个轮子的转速起停从而达到控制速度的目的。
将循迹光电对管装在车体前下的左右,左一、右一传感器比跑道略宽。
当只有中间传感器在黑线上时小车前进,当左一传感器偏进黑线时它将不能反射红外线从而向单片机输出低电平,通过单片机控制舵机使小车左转,右转同理。
当传感器全部处于反射红外线时(即小车进站)通过向单片机发送信号控制小车停靠5秒再前进,当左一、中间、右一全都不亮时(即进入减速区时)这三个传感器发出高电平,其他两个仍是低电平,单片机通过判断来控制电机的减速来实现。
左二左一中间右一右二
传感器示意图
避障的原理和循线一样,在车身右边装一个光电对管,当其检测到障碍物时,主控芯片给出信号报警并控制车子倒退,转向,从而避开障碍物。
3.主板设计框图如图,所需原件清单如表。
主板设计框图
元件清单
元件
数量
元件
数量
元件
数量
直流电机
1只
电阻
若干
集成电路芯片
若干
单片机
1块
二极管
若干
电容
若干
红外对管
3只
舵机
1只
电位器
若干
12M晶振
1只
杜邦线
若干
玩具小车
1个
排针
若干
4.驱动电路
电机驱动一般采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而可以采用L298N电路来驱动电机。
通过单片机给予L298N电路PWM信号来控制小车的速度,起停。
其引脚图如下。
图L298N引脚图
5.信号检测模块
小车循迹原理是小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。
笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。
红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。
在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号,再通过LM324作比较器来采集高低电平,从而实现信号的检测。
避障亦是此原理。
电路图如图3.4。
市面上有很多红外传感器,在这里我选用TCRT5000型光电对管。
图循迹原理图
6.主控电路
本模块主要是对采集信号进行分析,同时给出PWM波控制电机速度,起停。
三、软件设计
6.1主程序框图:
主程序:
voidmain()
{
init();
while((l2&&mid&&r2)||(!
l2&&!
mid&&!
r2))
{}
while
(1)
{
fw();
}
}
6.2电机驱动程序:
voidtimer1(void)interrupt3
{
count2++;
if(count2 ena=1; else ena=0; if(count2==100) count2=0; TH1=0XFf;//0.1ms TL0=0X9c; } 6.3循迹模块 循迹框图: 循迹程序: voidfw() { uintz; if(l1&&! mid&&! r1) { for(z=0;z<100;z++); if(l1&&! mid&&! r1) tl(); } else if(! l1&&! mid&&r1) { for(z=0;z<100;z++); if(! l1&&! mid&&r1) tr(); } else if(! l1&&! mid&&! r1) { for(z=0;z<100;z++); if(! l1&&! mid&&! r1) pause(); } else if(l2&&l1&&mid&&r1&&r2) { for(z=0;z<100;z++); if(l2&&l1&&mid&&r1&&r2) { for(z=0;z<300;z++); stop(); } } else gs(); } voidgs() { num1=15; num2=50; } voidtl() { num1=18; num2=45; while(! mid) {} } voidtr() { num1=12; num2=45; while(! mid) {} } 6.4舵机控制程序: voidtimer0(void)interrupt1//舵机控制 { count1++; if(count1 dj=1; else dj=0; if(count1==200) count1=0; TH0=0XFF;//0.1ms TL0=0X9C; } 结束语 整个系统的设计以单片机为核心,利用了传感器,将软件和硬件相结合。 本系统能实现如下功能: (1)自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。 若有偏离,能够自动纠正,返回到预设轨道上来。 通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我们在人生上又进了一步。 也认识到很多的不足。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 小车 设计