本科毕业设计---基于距离感知的自动玩具小车系统的设计实现.doc
《本科毕业设计---基于距离感知的自动玩具小车系统的设计实现.doc》由会员分享,可在线阅读,更多相关《本科毕业设计---基于距离感知的自动玩具小车系统的设计实现.doc(53页珍藏版)》请在咨信网上搜索。
合肥学院 2015届 毕 业 论 文(设计) 论文(设计)题目 基于距离感知的自动跟踪玩具小 车系统的设计与实现 院系名称 计算机科学与技术系 专业(班级) 计算机科学与技术 2011级本科1班 姓名(学号) 俞林峰 (1104013013) 指导教师 肖 连 军 系负责人 袁 暋 完成时间 2015-5-10 基于距离感知的自动玩具小车系统的设计实现 中 文 摘 要 随着时代的不断发展进步,上班族越来越多,家长基本没多少时间陪他们的小孩玩耍,买智能玩具也许就会成为好多家长送给小孩的最大安慰,如今玩具车的智能化已经越来普遍,对于距离感知的玩具也是多不胜数,基于距离感知的自动跟踪玩具车由此诞生。可以给那些天真可爱的小孩带来无穷无尽的乐趣。 本设计下位机系统是一个52单片机作为控制核心,所使用的CPU型号为STC12C5A60S2,配合传感器有一个超声波传感器HC-SR04,2个红外循迹传感器LM393,还有一个结合2路电机驱动和电源稳压模块于一体的模块,其中双电机驱动模块采用的是全新原装L298N驱动芯片,稳压模块采用的是稳压精度高的5V稳压块AMS1117-5V,还有舵机Futaba S3003用来全方位的距离感知,小车的控制机构由两个直流电机以及L298N驱动芯片组成的两驱四轮小车,这样直流电机的输入口可由STC12C5A60S2的IO口直接控制。 基于以上传感器设计的小车,结构简单成本较低,设计的空间巨大,在玩具市场占据较大份额,所以相关设计较多,取材容易。还有其他领域对超声波传感器应用的比较广泛,未来玩具智能化是必然的社会趋势! 关键词:STC12C5A60S2;传感器;舵机;距离感知 Design and implementation of automatic toy car system based on distance perception ABSTRACT With continuous development and progress of the times, more and more office workers, parents didn't much time to accompany their children to play, buy a smart toy might become a lot of parents to give children the greatest comfort, now intelligent toy car has become widespread, the perceived distance toy is numerous, based on the perceived distance automatic tracking toy car was born. For those lovely child brought inexhaustiblefun. This is perhaps the ultimate purpose why some parents always buy some fun toys for their children!! The design of the lower computer system is a 52 microcontroller as the control core, the use of CPU model for STC12C5A60S2, with the sensor has an ultrasonic sensor HC-SR04,2 infrared tracking sensor LM393, and a combination of 2 motor drive and power supply module in one module, the dual motor drive module adopts the new original L298Nthe driver chip, using the 5V voltage regulator module block AMS1117-5V high precision regulator, and steering Futaba S3003 used to the full range of distance perception, control mechanism of car is composed of two DC motors and L298N driver chip consists of two drive four wheel car, so DC motor can be directly controlled by the STC12C5A60S2 input port IO port. Based sensor design of car, simple structure, low cost, space design great. In the toy market occupies a larger share of, so many related design, drawing is easy. There are other areas of ultrasonic sensors are widely applied, the future of intelligent toys is an inevitable trend of society! KEY WORDS: STC12C5A60S2;Sensors; Steering engine; 目 录 中文摘要 I Abstract II 目 录 III 第一章 绪论 1 1.1课题的背景和意义 1 1.2系统的设计与基本组成 1 第二章 Android蓝牙开发与移动控制的设计与实现 3 2.1 Android系统简介 3 2.2 Android蓝牙开发 3 2.2.1 Android蓝牙编程 3 2.2.2 蓝牙设备搜索界面设计与实现 5 2.3 移动控制界面设计与实现 8 2.4 指令发送与数据包接收的实现 11 第三章 下位机与控制机构的设计与实现 13 3.1单片机的简介 13 3.2 52单片机硬件结构 13 3.3 单片机基本电路设计 15 3.4 下位机硬件设计与连接 16 3.4.1 环境感知传感器的选择与设计 17 3.4.2 环境感知传感器的硬件连接 22 3.4.3 小车的运动控制机构设计 23 3.4.4 蓝牙模块的使用 23 3.5 下位机程序设计 25 3.5.1 程序的主要组成部分 25 3.5.2 程序文件的结构 28 第四章 系统整体调试 29 4.1 上位机程序调试 29 4.2 下位机调试 29 4.2.1 硬件调试 29 4.2.2 软件调试 31 第四章 系统测试与分析 32 4.1 测试过程 32 4.2 测试结果 32 4.3 结果分析 35 结 论 36 参考文献 37 致谢 38 48 合肥学院计算机科学与技术系毕业论文 第一章 绪论 1.1课题的背景和意义 如今上班族的社会化,导致好多小孩一个人在家,或者与自己的父母相处的机会少,有些父母就通过购买一些心仪的好玩的玩具给他们的小孩,以弥补自己没事时间陪自己的小孩玩耍的快乐,近年来,玩具智能化,人性化越来越成为大众主流产品,基于距离感知的追踪小车应运而生,给市场玩具带来了生机,也是如今玩具市场的一次革命! 中国的留守儿童高居世界第一,国家也一直把未来祖国的花朵教育和身心健康安全作为工作之重,所以给予了高度的关注。在我国好多儿童动画片都会推出相应的玩具以满足如今的小孩对玩具快乐的追求,智能追踪小车的设计与实现对那些好奇心比较强的小孩尤为热门,因为玩具小车的每一个反应都是和他有关系的,小孩前进,小车跟着前进,小孩后退小车也跟着后退,小孩转弯小车跟着转弯,始终对小孩的行为作出相应的反应,趣味性极强,同时可以开发小孩的无限想象空间,无意识的对小孩大脑的开发起到关键的作用,尤其是好奇心重的小孩,可以说非常适合那些上班族买个小孩玩具的不二之选,小车追踪的设计对玩具市场和开发小孩脑力具有重要的推动作用,具有非常重要的意义。 1.2系统的设计与基本组成 本小车系统的具体设计思路非常简单,控制芯片选用型号为STC12C5A60S2的常用单片机,传感器主要用到超声波传感器HC-SR04和红外循迹传感器E18-D50NK,还有一个舵机伺服器Futaba S3003,还有一个电机驱动模块L298N和稳压模块78M05集成在一起的模块,以下下统一称为电机驱动模块,基本设计思路非常简单,2个外循迹传感器E18-D50NK分别安装在小车最前端的左右两边,用来感知前方物体的方位,通过细心的调试,可以确保能感知前方的物体一致性,正确性!超声波传感器HC-SR04安装在舵机伺服器Futaba S3003的转盘上上面通过舵机转盘的不断左右扫描带动超声波不断的对前方的物体位置加以再次的判断和却认达到更加精确的作出相应的反应,最后将单片机对信号的处理结果用软件语言组织起来通过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,本次开发环境为keil uVision4,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和Dynamixel AX-12+是机械机器人专用私服舵机,不同的是前者是国产的,后者是韩国生产的,两者都是金属齿的标称扭力 都在13kg 以上,但前者国产只是改改样子的模拟私服舵机,后者则是RS485 串口通信控制,具有位置反馈电路,而且还具有速度反馈功能与温度反馈功能的数字私服舵机,两者在性能以及价格上相差很大的。除了体积外,外形和扭力也有不同选择,私服舵机的反应速度以及虚位也要考虑进去,一般私服舵机的标称反应速度常见为 0.22 秒/60°和0.18 秒/60°,有些 好些的舵机有 0.12 秒/60°等的,数值越小反应就快。厂商所提供的私服舵机规格资料中, 一般都会包含有外形尺寸大小(mm)、 扭力(kg/cm)、 速度(秒/60°)、测试供电电压选择(V)及私服舵机重量(g)等基本参考资料。扭力的基本单位是 kg/cm,意思是在摆臂长度为 1 CM处时,能吊起多少公斤重的物体。这就是力臂大小的观念,因此摆臂长度愈长,就会导致扭力愈小。速度的单位一般是 sec/60°,意思是舵机转动 60°所需要 的 作用时 间 。 电 压 也会 直 接 影 响 舵 机 转动的 性 能 , 例如 Futaba S-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初始化 ------------------------------------------------*/ void TIM0init(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,其中定义单片机引脚sbit pwm=P0^2;//PWM信号输出口,所以单片机P0.2会产生一个随角度标识angle值变化的PWM信号,从而达到控制控制小车私服舵机转向的目的! void Time1_Int() interrupt 1//舵机 { TH0=0xff; //定时器0高位重新赋值,因为定时中断溢出导致寄存器的值清零 TL0=0xa3; //低位 if(count<angle)//判断0.5ms次数是否小于角度标识 pwm=1;//确实小于,pwm输出高电平 else pwm=0;//大于则输出低电平 count=(count+1);//0.5ms次数加1 count=count%40;//次数始终保持为40即保持周期为20ms } 2.1.5.5、舵机 Futaba S3003使用说明 经过对本设计的功能要求的评估采用Futaba S3003 型舵机,能很好的完成相关设计功能, 此舵机主要用于实现小车的转向功能 , 如下图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- -2 t2)/2 ( t1 为开始计时时间 , t2 为停止计时时间 ,注意距离为一边的距离 , 所以时间应该除以 2) 2.2.5 超声波编程思路要点 2.2.5.1 当触发控制端 Trig 给出 10us 以上的高电平后, 模块内部会就会产生8 个 40kHZ 的脉冲电平信号 ,此时由模块内部自动产生的 ,对于编程控制时不用管 ( 其实此模块上自身集成了一块单片机用于脉冲的产生)。 2.2.5.2 使用时 , 触发控制端 Trig 的高电平测量周期建议 60ms 以上 , 以防止发射信号对回响信号的干扰 。而且不利于近距离的多个使用干扰很大! 2.2.6 超声波模块的编程 由以上设计基础之后可以很方便的编写出相应的代码如下所示: void DelayUs2x(uchar t) { while(--t); } 以上为US级的延时函数,因为晶振的为11.0592MHz,一个机器周期大概为1us;一个while语句的执行好几个us,所以DelayUs2x(10)函数延时大于10US;通过专门的延时编程软件可以编写出相对准确的延时函数,本设计只需大概延时即可,对延时要求精度不是太高,这里就不详细介绍精确的延时函数了! void DelayMs(uchar t) { while(t--) { //大致延时1mS DelayUs2x(245); DelayUs2x(245); } } 以上为MS级的延时函数,中间调用了US级的延时函数,t=1时,大概延时1MS; void chaoshengbo() { TRIG=1;//触发信号是高电平脉冲,宽度大于10us DelayUs2x(10);延时10US以上 TRIG=0; while(!ECHO);//等待高电平 TR1=1; while(ECHO);//等待低电平 TR1=0; S=TH1*256+TL1;//取出定时器值高8位和低8位合并 S=S/58; //为什么除以58等于厘米, Y米=(X秒*344)/2 // X秒=( 2*Y米)/344 -> X秒=0.0058*Y米 -> 厘米=微秒/58 if(S>=25) //如果测量的距离大于25厘米 {n=1;} //标志位n值赋值1,响应结果是控制小车前进 if(S<25&&S>20) //如果测量的距离在20-25CM之间 {n=0;} //标志位n值赋值0,响应结果是控制小车停止 If(S<20) //如果测量距离小于20厘米 {n=-1;} //标志位n值赋值-1,响应结果是控制小车后退 TH1=0; TL1=0;//清除定时器0寄存器中的值用于下一次的再次测量 } 超声波传感器测距的主要作用是用来通过测量小车与物体之间的距离,从而判断小车是前进,后退,还是停止! 2.3 小车的移动设计与实现 小车的移动设计离不开电机驱动模块对电机的驱动所以有必要介绍一下小车的电源模块和小车的电机驱动模块,由于这两个模块是集成在一起的以下统称为电机驱动模块! 2.3.1电机驱动模块简介 本设计选择的 L298N 驱动模块,采用 ST 公司生产的原装全新的 L298N 芯片,采用SMT进口工艺稳定性高,采用高质量的铝电解电容,使电路更加稳定工作。可以直接驱动2路 3-16V 的直流电机,并提供了稳压5V 输出接口(输入最低只要 6V) ,可以给 5V 52单片机系统供电 (低纹波系数) ,可以很方便的控制直流电机速度和方向,也可以控制两相步进电机,五线四相步进电机,是智能小车必备利器。 2.3.2电机驱动模块实物介绍 L298N电机驱动芯片 左电机OUT1 OUT2 右电机OUT3OUT4 从左到右依次为5V,GND,电池+7V 从左到右依次为IN4,IN3,IN2,IN1 图2-11电机驱动模块 OUT1 ,OUT2 连接左电机 OUT3, OUT4 连接右电机 VDD 和 GND 连接电池或是外部供电 (注意充电电池,正负一定不能接反了, 一接反会烧掉模块,即 VDD 接电池正极,GND 接电池的负极) 78M05 图2-12 驱动模块原理图 2.3.3控制电机设计与编程 IN1 IN2 IN3 IN4分别与单片机IO口相连。 只要置相应单片机机IO IN1 =0 ; IN2=1对应电机即可正转转 IN1 =0 ; IN2=0对对应电机即可反转 同理: IN3 =0 ;IN4=1对应电机即可正转 IN3 =0 ;IN4=0对应电机即可反转 下面是软件编程实现电机正反转以及停止: sbit in1=P1^4; sbit in2=P1^5; sbit in3=P1^6; sbit in4=P1^7; 定义电机驱动对应的管脚,实现单片机IO控制 void go()//前进 { in1=1; in2=0; in3=1; in4=0; } 前进过程控制只需要将IN1 IN3置1,IN2和IN4置0即可 void back()//后退 { in1=0; in2=1; in3=0; in4=1; } 后退过程控制只需要将IN1 IN3置0,IN2和IN4置1即可,与前进刚好相反! void turnleft()//左转 { in1=0; in2=1; in3=1; in4=0; } 左转控制就是左边电机前进转,右边电机后退转,导致一个整体的左转效果! void turnright()//右转 { in1=1; in2=0; in3=0; in4=1; } 右转控制就是右边电机后退转,左边电机后前进转,导致一个整体的右转效果! void stop()//停车 { in1=0; in2=0; in3=0; in4=0; } 停车函数的设计实现是将4个信号都拉低,导致两个电机都不转,最后导致停车的效果! 2.4 小车的转向设计与实现 前面已经设计了小车的前进与后退的移动设计,还差一个转向检测控制,那用什么来实现呢?经过反复的斟酌与筛选最后选择了用两个红外循迹传感器来检测物体的左右移动,下面来具体的介绍! 2.4.1红外循迹传感器简介 +5V 信号指示灯 可调电阻 发射管 接收管 电源指示灯 GND 信号 图2-13 LM393 红外传感器模块实物说明 2.4.2 LM393 红外传感器模块检测原理 检测原理为当发射管照射在黑白分明的物体时 ,由于黑色吸光作用 ,当红外发射管照射到黑色物体上时导致反射回来的光就较少 ,导致接收管接收到的红外光就较少 ,表现为电阻大变大 ;同理 ,当照射在白色物体时发射的红外线就比较多 ,表现为 接收管的电阻变小,此时通过其他电路就把电阻变化信号变成大小不一电压变化信号 然后通过一个比较器转换成 相应的高低电平信号,再将此送到52单片机的 I/O 口 , 单片机就可以判断是物体靠近还是远离 , 进而完成相应的检测功能 ,如循迹 、避障等 2.4.3原理图说明及编程须知 图2-14 红外循迹传感器原理图 根据上面原理图 , 循迹 时 , 当照在 白色路面( ( 避障 时为前方 有障碍物) ) , out 输出低电平0, 指示灯亮; ; 当照在 黑色路面( ( 避障 时为前方 无障碍物) ) , out 输出高电平1 。 2.4.4传感器的安装调试 左右对称安装固定传感器后 , 须对两个传感器进行调试. 方法为: ① 小车头部的2对红外对管分别照射在物体上,移动物体,测量距离 ② 调节滑动变阻 ③ 当照射在白色物体时 , 信号指示灯亮 ( 低电平 ), 照在黑色物体时指示灯熄灭即可 . 2.4.5软件编程与实现 sbit y=P3^4;//定义单片机连接循迹板右边光电管的引脚 sbit z=P3^5;//定义单片机连接循迹板左边光电管的引脚 void zuo()//左右轮协同左转子函数 { you1=1; you2=0; zuo1=0; zuo2=1; delay(10-5);//pwm调速 you1=0; you2=0; zuo1=0; zuo2=0; delay(5); } void you()//左右轮协同右转子函数 { you1=0; you2=1; zuo1=1; zuo2=0; delay(10-5);//pwm调速 you1=0; you2=0; zuo1=0; zuo2=0; delay(5); } while((z==0)&&(y==1))//判断当左边光电管遇到障碍, { zuo();//调用左转函数前进过程中 } while((z==1)&&(y==0))//判断当右边光电管遇到障碍, { you();//调用右转函数前进过程中 } 左右转向控制还有一个逆向过程就是在超声波在检测到距离小于一定的距离时,小车处于后退状态是调用的左右后转函数要换过来!下面会有具体的软件设计! 第三章 软件的设计与实现 3.1单片机的简介 单片机从上个世纪70年代创造出来以后,因其极高的性价比和可操作性受到了人们的高度重视和关注,所以各种单片机的发展速度很快,应用也很广泛。单片机的优点有重量很轻,体积很小,抗干扰能力很强,价格也很便宜,可靠性很高,灵活性很好,开发起来较为容易。可操作性比较强! 那单片机具体是什么呢?个人理解为单片机就是在一块半导体硅片上把CPU,各种存储器,引脚I/O等集成在一起成为一块可控芯片,其中,CPU是单片机执行各种指令进行控制和运算的核心,存储器是协调CPU存储相关信息的部件,单片机与外部设备之间的控制及数据传输是通过引脚I/O实现的。别看这块芯片很小,但是它具备了计算机所需的大部分属性,因此其也被称为单片微小型计算机。 3.2 52单片机硬件结构 本次小车设计使用的是52系列的单片机。在使用52单片机前必须要了解52单片机内部硬件相关结构,其结构图总图如下图3-1: ROM/EPROM 微处理器 (运算器) (控制器) 特殊功能寄存器 (SFR) 数据存储器 RAM P0 P2 程序存储器 8 8 串行口 P1 定时器/ 计数器 中断- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 基于 距离 感知 自动 玩具 小车 系统 设计 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文