基于ATmega128的智能小车.docx
《基于ATmega128的智能小车.docx》由会员分享,可在线阅读,更多相关《基于ATmega128的智能小车.docx(13页珍藏版)》请在冰豆网上搜索。
基于ATmega128的智能小车
摘要
本设计是基于ATmega128最小系统,能够实现自动追光、寻迹、避障和停车等功能的智能小车。
整个系统由驱动,寻光寻迹、避障和金属检测等模块组成。
本小车系统采用L298多功能驱动板;利用红外对管的收发和红外避障传感器分别实现寻迹和避障功能;通过光敏电阻的特性实现寻光功能;利用接近开关的特殊功能完成对金属物体的探测;系统还使用12864液晶对小车行驶时的时间距离等参数的进行显示。
最后经过系统测试,各项指标均达到设计要求。
关键词:
自动寻迹;金属探测;红外避障;自动寻光
1、系统总体设计
设计并制作一个智能电动车,根据题目要求该小车具有寻迹,寻光,避障,检测金属,声光报警和显示等多种功能。
系统原理图如下
图1系统原理图
2、系统方案论证和比较
本小车系统可以实现很多功能—寻迹、寻光、避障、金属探测等,但对于本系统来说,最难的部分是寻光和避障模块,因为前半段寻迹部分小车都有引导线,但后半部分寻光避障部分完全靠小车自己,实现起来较困难,因此在接下来的方案论证中将围绕这两点重点介绍分析。
2.1避障模块
避障模块是用来判断小车前方是否有障碍物并确定小车与障碍物之间的距离、障碍物的位置。
为了确保小车在行驶过程中避免撞到障碍物,系统需要利用传感器检测出障碍物与小车之间的距离,使小车做出正确的动作,避免与障碍物相撞。
避障模块有以下几种方案
方案一:
用红外发射与接收管自制光电对管传感器。
红外发射管发出的红外光照射到前面的障碍物,则反射回来,接收管将障碍物反射回来的信号反馈给单片机,使小车作出相应变化。
方案二:
采用激光传感器,工作原理与方案一基本一样,但激光传感器的制作比较精细。
灵敏度高。
方案三:
采用红外避障传感器。
它是集发射与接受于一体的光电传感器,发射光经过调制后发出,接收头对反射光进行解调输出,有效的避免可见光的干扰。
利用障碍物对光束反射,从而判断前方是否有障碍物。
综上所述:
方案一由于是自制的,稳定性较差、抗干扰性不强,故不选用方案一;方案二由激光传感器制作比较精细使其价格过高,且处理过程复杂,所以不符合我们的要求;方案三,采用红外避障传感器体积小,抗干扰能力强、能实时监测且具有短路保护能力。
所以我么选用方案三。
2.2寻光模块
寻光模块的作用是将路面的光信号转化为单片机可以接受的电信号。
为此,本模块利用灵敏度高的光敏电阻组成的电路作为接收端。
当光照强度不同时,光敏电阻阻值不同,电路输出不同的电压值。
单片机接收信号有如下两种方式。
方案一:
经过电压比较器之后,输出电压变成高低两种电平,再将输出高低电压输入单片机,单片机根据高低电平执行相应程序。
方案二:
用A/D转换电路采集光敏电阻电路输出电压并将其转化为数字量,再将其输入单片机,单片机在执行相应程序。
有上述可知,方案一输入单片机的只有两种值,光照强度的识别度不高,但简单易行,但用A/D转换电路采集就大不相同。
它能识别很小的光照强度的变化,他的识别度高,灵敏度高,但实施起来难度较大,根据自身实际情况。
选用方案一。
3、理论分析和参数计算
在本小车系统中最基础的部分是寻迹和寻光。
因此在理论分析和参数计算这部分将围绕这两点展开。
3.1寻迹原理(这只是原理介绍,没有电路图,电路图另有分析)
本小车通过5个红外对管的循环检测来进行寻迹。
控制其循环发出检测指令,使装在车下的红外对管的发射管持续发射红外线信号。
当有检测到黑线,则发射管发射的光被黑线全部被吸收,接收管没有收到任何信号,检测模块输出端输出高电平1,小车便会做出相应的操作。
同理当没有检测到黑线,红外对管发射管发射的光到白纸光反射到接收端,检测模块输出端输出低电平0。
小车执行其他操作。
本系统采用5个TCRT5000红外对管用来接收地面的标识信息,而且本系统尽量将板子做长,让传感器的板子能比车轮更早的检测到路面的状况。
保证车子有足够的时间作出相应调整。
3.2寻光分析
寻光部分主要由高灵敏度的光敏电阻和比较器LM324组成,具体电路示意图如下所示:
图2寻光示意图
由上图可知,V2电压的计算公式
(1)
从上式中可知R6不变,有光照时R1变小,则V2变大;无光照R1变大,则V2变小。
1)有光照情况
光敏电阻R1变小,V2变大,假设V2=4.6V,V3电压为4V
V2>V3反向端大于同向端,根据比较器原理可知Vout输出低电平0给单片机识别。
2)无光照情况
光敏电阻R1变大,V2变小,假设V2=3.2V,V3电压不变还是4V
V24、电路与软件设计
4.1电路设计
就本小车系统,最主要的电路设计是电机驱动模快、寻迹和寻光电路,那么在接下来的电路设计模块将围绕这几点展开。
4.1.1驱动模块
本次小车电机驱动选用的是L298驱动模块,该模块采用SMT工艺稳定性高,采用高质量铝电解电容,使电路稳定工作。
可以直接驱动直流电机,并提供了5V输出接口(输入最低只要6V),可以给5V单片机系统供电(低纹波系数),可以方便的控制直流电机速度和方向。
4.1.2寻迹电路
寻迹电路主要由红外对管TCRT5000和比较器LM324组成,具体电路图如下所示:
图3寻迹电路图
从图中我们可知,
检测到黑线没接收到反射光了,比较器LM324反向端电压为5V,比较器同向端=3V,反向端大于同向端则Vout输出0;
没有检测到黑线接收到反射光了,比较器LM324反向端电压为0V,比较器同向端=3V,反向端小于同向端则Vout输出0。
4.1.3寻光电路
寻光部分主要由高灵敏度的光敏电阻和比较器LM324组成,具体电路图如下所示:
图4寻光电路图
从上电路图可知,通过感知不同的光照强度是光敏电阻组值发生变化,进而使得V2发生变化,最后再通过比较器和V3比较,从而输出0和1给单片机识别,单片机经过一系列处理后控制小车做出相应操作。
4.1.4避障模块
采用红外避障传感器,利用被障碍物对发射光束的遮挡,从而判断前方是否有障碍物,从而让小车作出相应状态调整,避开障碍物。
4.1.5金属探测及测速模块
根据题目要求需要测距和金属探测,故本系统采用用码盘测速仪测量小车行驶的距离,并用接近开关进行金属探测。
4.2软件设计
本次校车的软件设计分为两个阶段,前半段的寻迹和后半段的寻光避障。
前半段的寻迹部分主要是通过检测黑线沿着黑线前进,检测沿途的金属进行声光报警并记录下数目。
后半段寻光避障部分是通过检测光照强度来实现小车运动,并在前进过程中通过检测障碍物从而避开障碍物。
具体软件流程图如下所示:
图5寻迹软件流程图
图6寻光软件流程图
五、系统测试及数据分析
5.1测试条件与仪器
测试条件:
自制跑道、智能小车、金属硬币。
测试仪器:
万用表、米尺、秒表
5.2测试方法与测试结果
(1)测试方法:
将小车按照要求放在起点标志线处,启动开关,让小车运动前进到达终点,并记录时间。
(2)测试结果
主要测试表如下所示:
表1时间测试表
小车显示时间(s)
秒表记录时间(s)
第一次
30
29
完成情况
完成
表2距离测试表(有引导线部分)
小车显示距离(cm)
米尺测量实际距离(cm)
误差
第一个硬币
105
103
1.94%
第二个硬币
147
143
2.80%
第三个硬币
231
223
3.59%
第四个硬币
512
489
6.67%
从上述两表中可知,本小车在规定时间内完成了比赛并记录下了硬币到起点的路程。
5、总结
本设计是基于ATmega128最小系统,能够实现自动追光、寻迹、避障和停车等功能的智能小车。
小车还使用12864液晶对小车行驶时的时间距离等参数的进行显示。
最后经过系统测试,各项指标均达到设计要求。
参考文献
[1]李银花.电子线路设计指导.(第五版)[M].北京:
航空航天大学出版社.2005.6
[2]朱力恒.电子技术实验教程.(第五版)[M].北京:
北京电子工业出版社.2003.7
[3]康华光.电子技术基础.(第五版)[M].上海:
高等教育出版社.2003.4
[4]王志纲.现代电子线路.(第五版)[M].北京:
清华大学出版社.2003.7
附录
附录一:
电路图
图7比较器LM324
图8红外对管TCRT5000
附录二:
实物图
图9实物图
附录三:
部分程序
voidmain(void)
{
motor_init();
zd_init();
init();
timer0_init();
while
(1)
{
/*SearchLight();
mmm0=PINA;
mmm0=mmm0&0x1f;//11111
if(mmm0==0x00)
{
Stop();
}*/
SearchTrace();//寻迹函数
if(moneynum==4)
{
DisplayNum2(moneynum);
moneynum=0;
PortCStop();
break;
}
}
while
(1)
{
ShieldAvoidance();//蔽障函数
SearchLight();//寻光函数
mmm0=PINA;
mmm0=mmm0&0x1f;//11111
if(mmm0==0x00)
{
Stop();
delayms(1000);
TurnBack(400,400);
delayms(1000);
while
(1)
{
Stop();
}
}
}
}