智能循迹避障小车设计报告z.docx
- 文档编号:5400922
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:8
- 大小:846.07KB
智能循迹避障小车设计报告z.docx
《智能循迹避障小车设计报告z.docx》由会员分享,可在线阅读,更多相关《智能循迹避障小车设计报告z.docx(8页珍藏版)》请在冰豆网上搜索。
智能循迹避障小车设计报告z
智能循迹避障小车设计报告
学院名称:
专业班级:
学生姓名:
学生学号:
2014年7月
第一章绪论
智能小车的意义和作用
当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。
现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。
作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:
一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。
无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:
亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。
但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为机电一体化学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。
为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:
通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。
所以立“智能循迹小车”一题作为尝试。
此项设计是在以杨老师提供的小车为基础上,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。
智能小车的现状
现智能小车发展很快,从智能玩具到其它各行业都有实质成果。
其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几节的电子设计大赛智能小车又在向声控系统发展。
比较出名的飞思卡尔智能小车更是走在前列。
我此次的设计主要实现循迹和避障。
第二章硬件设计
根据要求,确定如下方案:
在现有履带车的基础上,加装红外反射式传感器,实现对履带车的运动方向、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对履带车的智能控制。
这种方案能实现对履带车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
主控系统及所需主要元件
根据设计要求,拟定出设计方案:
采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。
充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。
这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。
因此,这种方案是一种较为理想的方案。
51单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。
主控系统由STC12C5A60S2单片机负责,通过接收并分析信号模块传输过来的信号对各模块下达指令,使各模块能持续并稳定地共同工作,形成有机的整体,从而实现小车的各种功能。
所需主要元件:
STC12C5A60S2单片机,减速电机,红外对管等。
机械系统
机械系统由专门的小车底盘及减速电机构成。
小车底盘由亚克力材料制作,易改造且较轻便。
电机是小车专用的减速电机,操作简单灵活。
小车和电机是一套的,组装十分方便。
小车地盘图片
电机驱动模块
采用功率三极管作为功率放大器的输出控制直流电机。
线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路(如图2)。
用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。
现市面上有很多此种芯片,因时间和个人能力有限,我直接选用了带有L298N芯片的驱动模块(如图1)。
图1
图2
循迹模块
方案一:
采用简易光电传感器结合外围电路探测,但实际效果并不理想,对行驶过程中的稳定性要求很高,且误测几率较大、易受光线环境和路面介质影响。
在使用过程极易出现问题,而且容易因为该部件造成整个系统的不稳定。
故最终未采用该方案。
方案二:
采用两只红外对管,分别置于小车车身前轨道的两侧,根据两只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,测试表明,只要合理安装好两只光电开关的位置就可以很好的实现循迹的功能。
现场实测表明,小车在寻迹过程中有一定的左右摇摆不定,虽然其正确的循迹的成本较高但其稳定性最佳。
故选择本方案。
避障模块
方案一:
采用一只红外传感器置于小车中央。
其安装简易,也可以检测到障碍物的存在,但难以确定小车在水平方向上是否会与障碍物相撞,也不易让小车做出精确的转向反应。
方案二:
采用二只红外传感器分别置于小车的前端两侧,方向与小车前进方向平行,对小车与障碍物相对距离和方位能作出较为准确的判别和及时反应。
方案二过于依赖硬件、成本较高、稳定性略高一些,故选用方案一。
第三章软件设计
主程序框图:
程序如下:
#include
#defineSIGNALP1//P2口的低两位为循迹传感器输入口。
#defineSHELVES25//速度总档数。
#defineBACK0xC6//后退#defineFORWARD0xA5//前进sbitPWM_R=P0^7;//右电机PWM输入口sbitPWM_L=P0^2;//左电机PWM输入口voidtimer_init(void);//定时器初始化函数。
voidright(void);//右转弯函数。
voidleft(void);//左转弯函数。
voidforward(void);//前进函数。
ucharpercent_l=0;//左轮占空比ucharpercent_r=0;//右轮占空比ucharrun_time=0;//车轮运行一步的时间/********************************************************************函数名:
timer_init()功能:
初始化定时器0**********************************************************************/voidtimer_init(void){TMOD=0x02;//定时器0工作在方式2,定时值自动重载,启动仅受TR0的控制。
TH0=256-200;//定时周期为200us*SHELVESTL0=256-200;EA=1;//开总中断。
ET0=1;//开定时器0中断。
TR0=1;//启动定时器0。
}/********************************************************************函数名:
right()功能:
小车右转说明:
通过控制左右轮不同的占空比,实现左右转。
***********************************************************************/voidright(void){//timer_init();//初始化定时器0。
MOTOR_C=FORWARD;//方向向前percent_r=1;//右轮速度慢。
percent_l=4;//左轮速度快。
}/********************************************************************函数名:
left()功能:
小车左转说明:
通过控制左右轮不同的占空比,实现左右转。
***********************************************************************/voidleft(void){//timer_init();//初始化定时器0。
MOTOR_C=FORWARD;//方向向前percent_r=4;//右轮速度快。
percent_l=2;//左轮速度慢。
}/********************************************************************函数名:
forward()功能:
小车前进***********************************************************************/voidforward(void){//timer_init();//初始化定时器0。
MOTOR_C=FORWARD;//方向向前percent_r=3;//右轮同速度。
percent_l=3;//左轮同速度。
}/********************************************************************函数名:
stop()功能:
停车***********************************************************************/voidstop(void){//timer_init();//初始化定时器0。
MOTOR_C=FORWARD;//方向向前percent_r=0;//右轮零速度。
percent_l=0;//左轮零速度。
}/********************************************************************函数名:
ucharcheck_sig()功能:
检测信号,并返回信号代码。
***********************************************************************/ucharcheck_sig(void){uchartemp=0;temp=SIGNAL&0x03;//信号输入口就只有低两位,得到信号码。
returntemp;}/********************************************************************函数名:
tack()功能:
实现循迹功能。
说明:
对采集的信号进行分析,转换为对电机的控制。
***********************************************************************/voidtrack(void){ucharsig=0;//存储采集的信号timer_init();//初始化定时器0while
(1){run_time=0;//清计时器,重新开始。
sig=check_sig();//存储信号码switch(sig){case0:
//两探头都没检测到信号。
forward();break;case1:
//右边检测到信号。
right();break;case2:
//左边检测到信号。
left();break;case3:
//两边同时检测到信号。
stop();break;default:
break;}while(run_time<3);//运行一步,时间为3*5ms}}/********************************************************************voidtimer_zero(void)interrupt1{staticuchartemp=0;//中断次数计数,EA=0;//关总中断,屏蔽其他中断。
if(temp {if(temp {temp=0;run_time++;}EA=1;//开总中断。 }/********************************************************************voidmain(void){track(); 第四章调试过程 小车调试 小车的调试还是比较顺利的,刚开始由于引脚的接线问题导致一直不能很好的执行循迹的功能,经过检查之后便轻松解决了这个问题。 比较难以实现的是避障的问题,始终不能很好的解决最后关于黑线的检测。 于是,我们便换了一种较为简单直接的方式进行避障。 但对于对于弯道的障碍还是不能解决。 结束语 整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。 本系统能实现如下功能: 自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。 若有偏离,能够自动纠正,返回到预设轨道上来。 当小车探测到前进前方的障碍物时,可以躲避障碍物,从无障碍区通过。 小车通过障碍区后,能够自动循迹 此次的课程学习提高了我们的动手实践的能力,同时,这次实践也锻炼了我们团队合作的能力,从组装到完成设计,从零件到整车的运行,大家共同努力,共同体验劳动的成果,顺利圆满的完成了此次的任务。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 循迹避障 小车 设计 报告