大学毕业设计基于距离感知的自动玩具小车系统的设计实现.docx
- 文档编号:15686624
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:54
- 大小:3.32MB
大学毕业设计基于距离感知的自动玩具小车系统的设计实现.docx
《大学毕业设计基于距离感知的自动玩具小车系统的设计实现.docx》由会员分享,可在线阅读,更多相关《大学毕业设计基于距离感知的自动玩具小车系统的设计实现.docx(54页珍藏版)》请在冰点文库上搜索。
大学毕业设计基于距离感知的自动玩具小车系统的设计实现
合肥学院
2015届毕业论文(设计)
论文(设计)题目
基于距离感知的自动跟踪玩具小
车系统的设计与实现
院系名称
计算机科学与技术系
专业(班级)
计算机科学与技术
2011级本科1班
姓名(学号)
俞林峰(1104013013)
指导教师
肖连军
系负责人
袁暋
完成时间
2015-5-10
基于距离感知的自动玩具小车系统的设计实现
中文摘要
随着时代的不断发展进步,上班族越来越多,家长基本没多少时间陪他们的小孩玩耍,买智能玩具也许就会成为好多家长送给小孩的最大安慰,如今玩具车的智能化已经越来普遍,对于距离感知的玩具也是多不胜数,基于距离感知的自动跟踪玩具车由此诞生。
可以给那些天真可爱的小孩带来无穷无尽的乐趣。
本设计下位机系统是一个52单片机作为控制核心,所使用的CPU型号为STC12C5A60S2,配合传感器有一个超声波传感器HC-SR04,2个红外循迹传感器LM393,还有一个结合2路电机驱动和电源稳压模块于一体的模块,其中双电机驱动模块采用的是全新原装L298N驱动芯片,稳压模块采用的是稳压精度高的5V稳压块AMS1117-5V,还有舵机FutabaS3003用来全方位的距离感知,小车的控制机构由两个直流电机以及L298N驱动芯片组成的两驱四轮小车,这样直流电机的输入口可由STC12C5A60S2的IO口直接控制。
基于以上传感器设计的小车,结构简单成本较低,设计的空间巨大,在玩具市场占据较大份额,所以相关设计较多,取材容易。
还有其他领域对超声波传感器应用的比较广泛,未来玩具智能化是必然的社会趋势!
关键词:
STC12C5A60S2;传感器;舵机;距离感知
Designandimplementationofautomatictoycarsystembasedondistanceperception
ABSTRACT
Withcontinuousdevelopmentandprogressofthetimes,moreandmoreofficeworkers,parentsdidn'tmuchtimetoaccompanytheirchildrentoplay,buyasmarttoymightbecomealotofparentstogivechildrenthegreatestcomfort,nowintelligenttoycarhasbecomewidespread,theperceiveddistancetoyisnumerous,basedontheperceiveddistanceautomatictrackingtoycarwasborn. Forthose lovely child brought inexhaustiblefun. Thisisperhapsthe ultimatepurpose why someparents always buysome fun toysfortheir children!
!
Thedesignof thelowercomputersystem isa52microcontroller asthecontrolcore, theuseof CPU modelforSTC12C5A60S2, withthe sensorhas anultrasonicsensorHC-SR04,2 infrared trackingsensor LM393, anda combinationof 2 motordriveand powersupply module inone module, the dualmotordrive moduleadoptsthe neworiginalL298Nthedriverchip, usingthe5V voltage regulatormodule blockAMS1117-5V highprecisionregulator, and steeringFutaba S3003usedto thefullrangeof distanceperception, controlmechanismof car iscomposedoftwoDCmotors andL298Ndriver chipconsistsof twodrive four wheelcar, so DCmotor canbedirectlycontrolled bytheSTC12C5A60S2 inputport IOport.
Basedsensordesignofcar,simplestructure,lowcost,spacedesigngreat.Inthetoymarketoccupiesalargershareof,somanyrelateddesign,drawingiseasy. Thereareotherareas of ultrasonicsensors arewidelyapplied, thefuture ofintelligent toys is aninevitabletrendof society!
KEYWORDS:
STC12C5A60S2;Sensors;Steeringengine;
第一章绪论
1.1课题的背景和意义
如今上班族的社会化,导致好多小孩一个人在家,或者与自己的父母相处的机会少,有些父母就通过购买一些心仪的好玩的玩具给他们的小孩,以弥补自己没事时间陪自己的小孩玩耍的快乐,近年来,玩具智能化,人性化越来越成为大众主流产品,基于距离感知的追踪小车应运而生,给市场玩具带来了生机,也是如今玩具市场的一次革命!
中国的留守儿童高居世界第一,国家也一直把未来祖国的花朵教育和身心健康安全作为工作之重,所以给予了高度的关注。
在我国好多儿童动画片都会推出相应的玩具以满足如今的小孩对玩具快乐的追求,智能追踪小车的设计与实现对那些好奇心比较强的小孩尤为热门,因为玩具小车的每一个反应都是和他有关系的,小孩前进,小车跟着前进,小孩后退小车也跟着后退,小孩转弯小车跟着转弯,始终对小孩的行为作出相应的反应,趣味性极强,同时可以开发小孩的无限想象空间,无意识的对小孩大脑的开发起到关键的作用,尤其是好奇心重的小孩,可以说非常适合那些上班族买个小孩玩具的不二之选,小车追踪的设计对玩具市场和开发小孩脑力具有重要的推动作用,具有非常重要的意义。
1.2系统的设计与基本组成
本小车系统的具体设计思路非常简单,控制芯片选用型号为STC12C5A60S2的常用单片机,传感器主要用到超声波传感器HC-SR04和红外循迹传感器E18-D50NK,还有一个舵机伺服器FutabaS3003,还有一个电机驱动模块L298N和稳压模块78M05集成在一起的模块,以下下统一称为电机驱动模块,基本设计思路非常简单,2个外循迹传感器E18-D50NK分别安装在小车最前端的左右两边,用来感知前方物体的方位,通过细心的调试,可以确保能感知前方的物体一致性,正确性!
超声波传感器HC-SR04安装在舵机伺服器FutabaS3003的转盘上上面通过舵机转盘的不断左右扫描带动超声波不断的对前方的物体位置加以再次的判断和却认达到更加精确的作出相应的反应,最后将单片机对信号的处理结果用软件语言组织起来通过IO口驱动电机转动作出正确的相应,可以画出系统组成框图如下图1-1所示:
单
片
机
超声波传感器
红外循迹传感器1
红外循迹传感器2
舵机转向
图1-1系统组成结构图
其中,电机驱动模块还是整个系统供电模块,供电能力远远满足系统所需功率的最大要求。
第二章系统分析
2.1系统需求分析
对本系统整体思路的考量可知,发现玩具小车在开发小孩智力方面有着非常重要的作用。
就像某某公司做出来的一款可以跟小孩捉迷藏的玩具一样是非常有意义的,纵观本课题系统设计可知,主要具备的功能有一下几点:
(1)小车可以根据小孩的前后移动,自然的作出前进后退的动作
(2)小车还可以根据小车的左右移动,小车还可以根据移动方位判断是左转弯还是右转弯,而且要具有灵活的相应。
(3)小车的设计一定要美观,可观赏性强。
一个基本的距离感知小车系统必须具备上述几个功能。
2.2系统可行性分析
小车的设计可以根据不同的功能选用相应的器件,首先,由小车可以前进后退,还能停止可知,小车必须具有对具体距离可以探知的能力,一般的光电开关只能在距离调节好之后对固定的距离作出相应,就是要么距离大于设定的距离要么小于设定的距离,只有两种状态,而本设计有3种判断状态,分别是前进停止后退,所以选一般的循迹开关,光电开关是不行的,在这种情况下我们选择了超声波传感器HC-SR04,作为距离的精确探知。
本想设计成由三个HC-SR04组成的能带转弯控制的,结果调试发现有好多不确定因素,而且抗干扰能力差,就是一个超声波传感器的发射波可能作为另一个传感器的接收器的接受信号,导致对具体距离的测量有误,从而导致小车作出错误的相应,再次设计背下选用不同的传感器进行左右感知的光电开关应运而生,在网上查阅相关的资料最后选用了E18-D50NK,具有很强的距离感知能力,光电开关左右各放一个而且呈现八字型摆放,抗干扰能力还是很强的。
对于其它基本功能的实现,传感器对距离感知信号可由51单片机DIP40的,然后做数据处理。
51单片机的程序开发很方便,而且可用资源较多,完全具有开发下位机的能力。
2.3开发环境简介
上位机程序属于Android应用程序的开发。
Android程序开发环境目前比较流行的是Eclipse,这个软件的功能强大,并且可以将不同版本的Android的API集成。
本次设计上位机程序开发用到的环境就是Eclipse。
下位机程序主要是51单片机的程序开发。
51单片机的开发环境一般都是keil,本次开发环境为keiluVision4,keil开发51单片机程序时可以使用汇编或者C51语言,本次使用的是C51,因为汇编程序需要了解不同单片机的指令集,而C51不需要,会更方便。
第二章舵机扫描测距与移动控制的设计与实现
2.1舵机模块设计实现
2.1.1舵机系统简介
舵机又名伺服电机,最早用于大型船舶上实现其转向功能,由于可以通过程序编程连续控制其转动角度,因此被广泛设计应用智能小车玩具以实现转向以及多控机器人各类关节运动中。
图2-1舵机用于智能机器人
本设计舵机是小车转向带动超声波扫描的控制机构,具有体型小、力矩大、小车外部机械设计简单、小车稳定性高等特点,无论是在硬件小车设计还是软件编程设计,舵机设计是小车控制扫描部分重要的组成部分,图2-1为舵机的外形图。
图2-2舵机外形图
2.1.2舵机组成:
一般来讲,私服舵机主要由以下几个部分构成,舵盘、减速齿轮组、位置反馈电位计、直流电机、控制电路等,如图7、图8所示
图2-3舵机的组成示意图
图2-4舵机组成
私服舵机的输入线总共有三条,如图2-5所示,红色信号线中间,是舵机电源线,一边黑色的是舵机地线,这两根供电线给舵机提供最基本的电保证,主要是小型电机的转动消耗。
电源电压有两种规格,一种是4.8V,另一个是6.0V,分别有不同的转矩标准,即输出力矩大小不同,6.0V对应力矩的要大一些,更强劲一些,具体看应用条件(本设计舵机用来带动超声波来回转动扫描,对转动力矩的要求没有那么高,4.8V就足够了);另外一根信号线是控制信号线,Futaba的一般为白色的,JR的一般为桔黄色信号线。
另外要值得注意的是,SANWA的有些型号的舵机引线电源线在排线边上而不是中间,使用的时候需要辨认,不要搞错。
但记住一般红色为电源线,黑色为GDN地线,一般都是这样设计的。
下图2-5为输出线的实物图和信号线的说明:
图2-5舵机的输出线
2.1.3舵机工作原理
舵机内部控制电路板模块接受来自信号线PWM的控制信号,控制小型电机转动,电机带动一系列的齿轮组,减速后传动至舵机输出舵盘。
私服舵机的输出轴与位置反馈电位计是相连通的,私服舵盘转动的同时,也带动位置反馈电位计变化,电位计同时将输出一个模拟电压信号到舵机控制电路板中,进行负反馈作用,然后控制舵机电路板根据所在方位决定电机输出转齿转动的方向和速度变化,从而达到转动目标的角度停止。
其一般工作流程为:
控制信号输入→控制电路板接受→导致电机转动→齿轮组减速传动→导致舵盘转动→位置反馈电位计协调→控制电路板反馈作用。
最终达到转动某一个角度的目标!
2.1.4舵机选购
市场上的私服舵机有塑料齿的、标准尺寸的、小尺寸的、金属齿的、大尺寸的,另外还有很薄的标准尺寸舵机用在一些特殊的场合,及低重心的型号特殊型号。
小舵机一般被称为微型私服舵机,扭力都相对较小,市面上所见到的2.5g,3.7g,4.4g,7g,9g等私服舵机指的是私服舵机的重量分别是多少克重,相应的体积和扭力也是逐渐增大的。
微型私服舵机内部大多数都是塑料齿的,9g私服舵机有金属齿的型号也有塑料齿型号的,扭力一般比塑料齿的要大些。
型号为:
futabaS3003和辉盛MG995是标准私服舵机,体积与标准的差不多,但前者是塑料齿的,后者金属齿的,两者标称的扭力也差很多的。
春天sr403p和DynamixelAX-12+是机械机器人专用私服舵机,不同的是前者是国产的,后者是韩国生产的,两者都是金属齿的标称扭力都在13kg以上,但前者国产只是改改样子的模拟私服舵机,后者则是RS485串口通信控制,具有位置反馈电路,而且还具有速度反馈功能与温度反馈功能的数字私服舵机,两者在性能以及价格上相差很大的。
除了体积外,外形和扭力也有不同选择,私服舵机的反应速度以及虚位也要考虑进去,一般私服舵机的标称反应速度常见为0.22秒/60°和0.18秒/60°,有些好些的舵机有0.12秒/60°等的,数值越小反应就快。
厂商所提供的私服舵机规格资料中,一般都会包含有外形尺寸大小(mm)、扭力(kg/cm)、速度(秒/60°)、测试供电电压选择(V)及私服舵机重量(g)等基本参考资料。
扭力的基本单位是kg/cm,意思是在摆臂长度为1CM处时,能吊起多少公斤重的物体。
这就是力臂大小的观念,因此摆臂长度愈长,就会导致扭力愈小。
速度的单位一般是sec/60°,意思是舵机转动60°所需要的作用时间。
电压也会直接影响舵机转动的性能,例如FutabaS-9001在4.8V时平均扭力在为3.9kg/cm左右、速度平均为0.22秒/60°,在6.0V时扭力平均为5.2kg/cm、速度平均为0.18秒/60°。
若无特别注明,JR的私服舵机都是以4.8V为供电测试电压,Futaba则是以6.0V作为供电测试电压。
速度响应快、扭力很大的舵机,除了价格贵外,还会伴随着高耗电的特点。
因此在使用高级的舵机时,一定必搭配高品质的、高容量的好电池,能提供稳定且充裕的电量。
如今市面上的私服舵机鱼龙混杂,总的来说仿品不如正品好,便宜的不如贵的好,塑料齿的不如金属齿的好,老的不如新的好,国内的不如外国的好等等,大家不必过于追求极致根据自身的设计满足要求即可,根据自身购买力选择够用的就行了。
2.1.5舵机控制原理及编程方法
2.1.5.1、供电说明:
常用私服舵机的额定工作电压一般为6V,可以使用LM1117等稳压芯片提供6V的电压,如果为了简化硬件电路的设计直接使用7805稳压芯片稳压5V的供电影响也不是很大,但最好与单片机进行分开的供电,否则会造成单片机无法正常工作。
因为私服舵机启动电流很大会影响同一个电路中的电流变化!
2.1.5.2、PWM信号连接说明:
一般来说可以将私服舵机信号线连接至52单片机的任意引脚,对于52单片机需通过定时器模块输出PWM才能进行控制转动。
但是如果连接电路像飞思卡尔之类的芯片那样,由于飞思卡尔内部带有PWM模块控制,可以直接输出PWM信号大小,此时应将PWM信号线连于专用的PWM输出引脚上。
2.1.5.3、控制原理:
舵机的控制信号周期为S为20MS的脉宽调制(PWM)信号,其中脉冲宽度((占空比))从0.5--2.5MS,与之相对应的舵盘位置为0-180度,呈线性的变化。
即私服舵机控制转动时,需要给周期为S为20MS的PWM(方波))信号输入,改变脉冲宽度变化((占空比)),就可以改变其转动的角度变化。
下图2-6即为对应的PWM信号所对应的相应转动的角度。
图2-6舵机输出转角与输入脉冲的关系
2.1.5.4、编程产生PWM信号的方法:
由于52单片机不像飞思卡尔那些更加高端的控制芯片有自己单独的引脚来专门产生PWM信号,所以52单片机只能通过定时器来模拟产生相应的所需求的PWM信号,以下软件编程定时器产生一个5MS的定时,每隔5MS产生一个中断,通过中断处理子函数编程控制达到PWM的产生!
/*------------------------------------------------
定时器01初始化
------------------------------------------------*/
voidTIM0init(void)
{
TMOD|=0x11;//定时器1工作方式1(超声波),定时器0私服舵机
TH1=0x00;
TL1=0x00;
TH0=0xff;
TL0=0xa3;//11.0592MHz晶振,0.5ms
ET1=1;
ET0=1;
EA=1;
TR0=1;//定时器开始
IE=0x82;
}
中断处理函数产生相应的PWM,其中定义单片机引脚sbitpwm=P0^2;//PWM信号输出口,所以单片机P0.2会产生一个随角度标识angle值变化的PWM信号,从而达到控制控制小车私服舵机转向的目的!
voidTime1_Int()interrupt1//舵机
{
TH0=0xff;//定时器0高位重新赋值,因为定时中断溢出导致寄存器的值清零
TL0=0xa3;//低位
if(count pwm=1;//确实小于,pwm输出高电平 else pwm=0;//大于则输出低电平 count=(count+1);//0.5ms次数加1 count=count%40;//次数始终保持为40即保持周期为20ms } 2.1.5.5、舵机FutabaS3003使用说明 经过对本设计的功能要求的评估采用FutabaS3003型舵机,能很好的完成相关设计功能,此舵机主要用于实现小车的转向功能,如下图2-7所示. 图2-7舵机选用型号 2.1.5.6、舵机接线图 图2-8实物连接图 2.2超声波模块的设计与实现 2.2.1超声波模块简介 当今社会超声波的使用非常广泛,超声波测距也是应用到了极致,海洋领域对超声波的应用大多数是通过超声波测量海底深度等,汽车行业对超声波的应用也是相当的广泛的,利用超声波测量前后车之间的距离,报警感知汽车的安全状态等等! 本次设计使用使用超声波主要是用来对小车前方物体的感知,从而达到追踪的目的。 设计开始时想用3个超声波模块放在小车的前端用来对每一个方位的小车进行控制,但是发现相互之间存在严重的干扰,最后只采用一个超声波和2个红外传感器来实现最终的设计! 首先来了解一下超声波的具体工作原理和编程方法。 2.2.2超声波模块引脚说明 图2-9超声波实物图 GND: 电源负极Trig: 控制端接 Echo: 接收端VCC: 电源正极 2.2.3超声波测距原理 超声波传感器设计主要由发射器和接收器两大部分组成,大家都知道超声波在空气中传播的速度为340m/s,本设计只需要计算出从发射开始到接收完成之间的时间差就可以通过计算算出距离。 具体的作法为超声波发射器向某个方向发射超声波,在发射时刻的同时计时开始,超声波在空气中传播过程中,途中碰到障碍物就立即返回来一个波,超声波接收器一旦收到反射波就立即停止计时。 (超声波在空气中的传播速度大概为340m/s,根据计时器记录出的时间t,就可以计算出发射点距障碍物的距离s,即: s=340t/2)。 2.2.4超声波传感器时序图 目前市面上有好多专门的集发射和接收于一体的超声波传感器,此次设计用HC-SR04型传感器,左边为接收头,右边为发射头,共引出4个引脚,一个电源正极(5V),一个电源地GND,Trig为触发信号触发控制端口,Echo为回响信号端口。 下面介绍一个超声波传感器的时序图2-10。 图2-10超声波时序图 通过时序图可以看到,在使用时,触发控制端Trig首先必须送出一个10us以上的高电平,然后等待发射头声波信号开始输出,一旦有信号输出了,回响信号端会产生一个高电平,此刻开始计时。 随后声波信号处在空气中传播,一旦遇到障碍物会反射一部分回来,当反射回来的信号到达接收头后,此时回响信号端会由高电平变为低电平,停止计时。 此时我们就可以算出检测物体与车之间的距离S=340*(t1--2t2)/2(t1为开始计时时间,t2为停止计时时间,注意距离为一边的距离,所以时间应该除以2) 2.2.5超声波编程思路要点 2.2.5.1当触发控制端Trig给出10us以上的高电平后,模块内部会就会产生8个40kHZ的脉冲电平信号,此时由模块内部自动产生的,对于编程控制时不用管(其实此模块上自身集成了一块单片机用于脉冲的产生)。 2.2.5.2使用时,触发控制端Trig的高电平测量周期建议60ms以上,以防止发射信号对回响信号的干扰。 而且不利于近距离的多个使用干扰很大! 2.2.6超声波模块的编程 由以上设计基础之后可以很方便的编写出相应的代码如下所示: voidDelayUs2x(uchart) { while(--t); } 以上为US级的延时函数,因为晶振的为11.0592MHz,一个机器周期大概为1us;一个while语句的执行好几个us,所以DelayUs2x(10)函数延时大于10US;通过专门的延时编程软件可以编写出相对准确的延时函数,本设计只需大概延时即可,对延时要求精度不是太高,这里就不详细介绍精确的延时函数了! voidDelayMs(uchart) { while(t--) { //大致延时1mS DelayUs2x(245); DelayUs2x(245); } } 以上为MS级的延时函数,中间调用了US级的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 毕业设计 基于 距离 感知 自动 玩具 小车 系统 设计 实现