避障小车课程设计目录1.绪论 (4)1.1课题背景41.2课题的目的和意义61.3设计要求61.4主要技术指标62.设计方案 (7)2.1 总体方案概述 (7)2.2 系统硬件电路设计方案 (8)2.3 电机模块 (9)2.4 超声波模块 (11)2.5 整体效果图 (13)3.设计思路 (13)3.1 学习熟悉基本模块驱动 (13)3.2 总体方案 (17)3.3 电机驱动与测距的结合方法 (18)3.4 系统软件流程图 (19)3.5存在的问题及解决办法 (20)4.设计结果及质量评价 (21)5.原件清单 (23)6.应用前景 (23)7.心得体会 (24)附录一参考文献 (25)附录二程序代码及注释 (26)1.绪论1.1课题背景机器人是先进制造技术和自动化装备的典型代表,是人造机器的“终极”形式。
它涉及到机械、电子、自动控制、计算机、人工智能、传感器、通讯与网络等多个学科和领域,是多种高新技术发展成果的综合集成,因此它的发展与众多学科发展密切相关,代表了高科技发展的前沿。
随着电子技术的不断发展人们发明了各式各样的具有感知,决策,行动和交互能力的机器人,自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等多个领域。
近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式,随着它在人类生活领域中的应用不断扩大,将会给人们的生产生活带来了巨大的影响。
在国外机器人的发展有如下趋势。
一方面机器人在制造业应用的范围越来越广阔,其标准化、模块化、网络化和智能化的程度越来越高,功能也越来越强,并向着技术和装备成套化的方向发展;另一方面,机器人向着非制造业应用以及微小型方向发展,如表演型机器人,服务机型器人,机器人玩具等。
国外研究机构正试图将机器人应用于人类活动的各个领域。
在我国机器人主要应用于工业制造领域,我国工业机器人现在的总装机量约为120000台,其中国产机器人占有量约为 1/3,即40000多台。
与世界机器人总装机台数7500万台相比,中国总装机量仅占万分之十六[1]。
对中国这样一个拥有13亿人口的大国来说,仅在机器人数量上就和发达国家有着很明显的差距。
因此大力发展我国的机器人事业刻不容缓。
智能小车可以理解为机器人的一种特例,它是一种能够通过编程手段完成特定任务的小型化机器人。
与普遍意义上的机器人相比智能小车制作成本低廉,电路结构简单,程序调试方便,具有很强的趣味性,为此其深受广大机器人爱好者以及高校学生的喜爱。
全国大学生电子设计竞赛每年都设有智能小车类的题目,由此可见国家对高校机器人研究工作的重视程度。
1.2课题的目的和意义本题目设计的是具有自动避障功能的智能小车,其设计思想与一些日常生活迫切需要的机器人(如测距机器人,搜索机器人,管道探伤机器人)类似。
由于采用了超声波传感器,它不受光照强弱和能见度的影响,能耗低,灵敏度高,即使在较复杂的环境内也可以工作。
智能小车系统的设计采用了模块化的设计方法,电路结构简单,调试方便,有很大的扩展空间,稍加改动便可应用于实际生产生活中,也可作为高校学生以及广大机器人爱好者学习研究使用。
1.3设计要求1.小车可以检测到前方障碍物2.小车可以自动躲避障碍物3. 小车能够显示距障碍物的距离1.4主要技术指标工作电压:5V工作电流:30mA典型,50mA最大工作频率:38.5KHz最大探测距离:1.8 m最小探测距离:3 cm输入触发器:上升沿触发回波脉冲:正TTL高电平脉冲宽度下一次测量的延时:20 ms2.设计方案2.1 总体方案概述本小车使用一台AT89S51单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,并且用数码管实时的显示出来,在小车与障碍物的距离小于安全距离(用软件设定)时,小车会发出“在距您车前方x(数码显示的实时距离)米的地方有一障碍物,请您注意避让”的语音提示,并且拐弯,以避开障碍物,同时会点亮相应侧边的发光二极管作为提示信号。
在避开障碍物后,小车会沿直线前进。
本系统设计的简易智能小车分为几个模块:单片机控制系统、超声波路面检测系统、前进、转弯控制电机以及方向指示灯系统。
它们之间的相互关系如下图1所示。
2.2 系统硬件电路设计方案系统硬件电路的设计采用了模块化的设计方法,系统硬件电路由超声波避障模块,单片机最小系统模块,显示模块,电源模块,电机驱动以及声光报警模块,电源模块七部分组成,各模块即可组合联调也可单独使用。
如图2所示为智能小车硬件设计方框图。
图2智能小车硬件设计方框图2.3 电机模块P1_0控制右边的伺服电机,P1_1控制左边的伺服电机,如下图3。
图3 电机引脚连接图控制电机运动转速的是高电平持续的时间。
高电平持续时间为1.5ms(零速度点)时,电机静止(标定以后),如图4。
图4 电机转速为零的控制信号时序图注:标定方法:通过发送一个校准信号到伺服电机,连续旋转伺服电机的零位信号为1.5ms。
如果电机还没有进行零点标定,如图3所示,用螺丝刀轻轻调节马达上的电位器,直到马达停止转动。
图5 伺服电机的标定高电平持续时间为1.3ms时,电机顺时针全速旋转,如图6。
图6 1.3ms的控制脉冲序列使电机逆时针全速旋转高电平持续时间1.7ms时,电机逆时针速旋转,如图7。
图7 1.7ms的控制脉冲序列使电机顺时针全速旋转高电平持续时间越靠近零速度点,速度越小,远离零点越大速度越大。
通过控制脉冲序列,可以实现小车的加速、减速、原地转弯、绕轴旋转、左转、右转等一系列的运行动作。
2.4 超声波模块VCC接+5V,GND接VSS,SIG接P15,如图8。
图8 超声波模块超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生震动产生,在碰到杂质或分界面会产生显著反射形成反射回波,超声波传感器就是根据超声波在物体界面上反射的反射、散射特性检测物体的存在与否。
超声波模块可以提供无接触的测量,从3厘米到1.8米的距离测量,可以用来辨别障碍物。
图9 超声波模块时序工作图如图9所示,从SIG管脚输出触发脉冲Tout 后,模块自动发射8个40kHz的超声波,紧接着把SIG置高电平,直到收到回声后才把SIG置低,如果超时,则模块自动复位。
模块工作频率:38.5KHz,即工作周期约26ms, 而整个模块实现一次测量的时间范围为tout+tholdoff+tin,约为0.8ms到19.3ms。
距离distance=time*Cair/2,其中Cair为超声波在空气中的传播速度,由于受空气温度影响,Cair=331.5+0.6*Tc;SIG的脉冲宽度即为超声波发射和接收的时间差time,范围115us 到18.5ms。
将数据代入计算出distance的范围恰好在3cm到1.8m,满足技术指标。
2.5 整体效果图图10 整体效果图3.设计思路3.1 学习熟悉基本模块驱动(1)实现小车前进、绕轴旋转转等基础运行动作。
/*小车前进*/void forward(){int j;for(j=0;j<20;j++){re=1;delay_nus(1300);re=0;delay_nus(20000);le=1;delay_nus(1700);le=0;delay_nus(20000); }}/*小车原地右转90度*/ void right90(){int j;for(j=0;j<17;j++){re=1;delay_nus(1640);re=0;delay_nus(20000);le=1;delay_nus(1700);le=0;delay_nus(20000); }}/*小车原地左转90度*/ void left90(){int j;for(j=0;j<17;j++){re=1;delay_nus(1300); re=0;delay_nus(20000); le=1;delay_nus(1360); le=0;delay_nus(20000); }}/*小车原地转180度*/ void right180(){int j;for(j=0;j<30;j++){re=1;delay_nus(1300);re=0;delay_nus(20000);le=1;delay_nus(1360);le=0;delay_nus(20000);}}(2)超声波传感器驱动的测距子程序。
void getx(unsigned char a){TH0=TL0=0;if(a){Sin=0;Sin=1;delay_nus(10);Sin=0;}while(Sin);while(!Sin);TR0=1;while(Sin);TR0=0;LTime=TL0;HTime=TH0;Time=HTime*256+LTime;Dis=Time/(2*29);}3.2 总体方案采用状态机模型,定义state=1为前行状态,state=2为左转状态,两状态转换条件为distance满足一定壁障范围,所以测距程序宜嵌入两状态中编写,如图9。
另外测距后进行显示,可以嵌入测距程序。
图11 整体方案--状态机模型3.3 电机驱动与测距的结合方法考虑到电机是靠高电平驱动的,低电平的时间对于驱动电机是无用的,可以用定时器控制低电平时间,让测距程序插入电机驱动程序的低电平时间(取代延时函数),从而节约了单片机等待时间,使单片机在这段低电平时间内执行完测距程序后可以执行其他程序(在最后扩展显示模块程序时,确实发现了这样做的方便之处)。
这里超声波模块实现一次测距的时间范围约为0.8ms 到19.3ms,所以不妨设置定时器定时30ms。
测距程序插入电机驱动程序的另一好处是可实现小角度动态旋转壁障,而不是旋转固定角度。
另外,定时器控制固定的低电平时间有利于小车的稳定运行。
因为若不这样(即低电平时间=固定的延时+不确定的测距时间),在壁障距离以外时,小车则会因为障碍物的越来越近而速度越来越快,无法输出稳定的速度。
具体时序图如下(这里能体现一个周期的运行):图12 电机驱动与测距结合时序图3.4图13程序本设计系统软件采用模块化结构,由主程序﹑定时子程序、电工及控制子程序(前进、原地左转、原地右转)、测距子程序构成。
主程序流程图如图13所示。
其中:避障中断服务子程序完成对超声波探测器产生的外部中断进行处理,如果超出预定的危险距离就左转进行避障。
3.5存在的问题及解决办法程序编写完毕后,小车无法启动,经最终排查认为,小车电机需要先输入多个脉冲来帮助小车启动,我将这段程序称为过渡段。
添加过渡段后,拿起小车,轮子能按规定动作运行,但一放到地上,就出现无法运行或运行一小段就停止的现象,这说明电机负载能力有限,应有意识增大电机高电平时间,增加驱动力。