基于51单片机的多功能蓝牙循迹避障测距小车_第1页
基于51单片机的多功能蓝牙循迹避障测距小车_第2页
基于51单片机的多功能蓝牙循迹避障测距小车_第3页
基于51单片机的多功能蓝牙循迹避障测距小车_第4页
基于51单片机的多功能蓝牙循迹避障测距小车_第5页
已阅读5页,还剩14页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于51单片机的多功能蓝牙循迹避障测距小车的设计与制作摘要:无线遥控的机器人小车在危险环境作业、人员搜集等应用中可发挥特殊的作用。本次设计选择基于蓝牙遥控的多功能智能小车为对象。设计了该系统的硬件电路原理图,控制系统以STC89C52单片机为主控芯片,采用BTS7970为电机驱动芯片、蓝牙无线串口模块、红外光电传感器模块、舵机模块、超声波发射与接收模块等构成外围扩展电路。将自制的控制电路、控制程序和四轮小车机械结构相结合,制作多功能机器人小车。实验调试实现了智能小车的蓝牙无线遥控、自动避障、自动循迹、自动三向测距等功能。 关键词:单片机 ;蓝牙遥控 ;舵机;光电传感器 目录 第一章 前言 .

2、3 第二章 方案比较与论证 .32.1总体方案设计 .3 2.2无线模块设计 . 4 2.3显示模块设计 . 4 2.4循迹模块设计 . 5 2.5避障模块设计 . 5 第三章 智能车机结构分析 .5 第四章 控制系统电路设计 . 6 4.1 MCU的选型 . 6 4.2 电机驱动电路设计 . 6 4.3 红外传感器模块设计.74.4 蓝牙模块设计 .7 4.5 舵机模块设计.74.6 超声波模块设计.84.7 电源电路设计 .8 第五章 调试结果分析 .8 5.1 各模块功能调试.8 5.2 总结 .9 致谢 .10参考文献 .11附录 部分程序.12第一章前言随着汽车工业的迅速发展,关于汽

3、车的研究也就越来越受人关注。遥控小车起源于美国,由于政府对无线遥控小车研发的资助以及相关资助的推动作用,日本、美国、德国等工业大国在遥控小车技术上占据着明显优势。我国的无线遥控小车研究工作始于20世纪中后期,在国家的863、973等技术发展计划的重点支持下,国内已大范围地进行无线遥控小车的研究。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,但是与国际先进还存在一定的差距。可见其研究意义很大。本设计就是在这样的背景下提出的。设计的智能小车能够实现无线遥控,串口通讯,循迹,避障碍等功能。无线遥控实现方法包括蓝牙、红外、射频几种,其中蓝牙技术具有一定优

4、势,目前在信息家电方面应用正在铺设。各种家电共用遥控,并可组网与公众互联网相接,共享有用信息。目前蓝牙技术实现无线遥控的短板在于传输距离短和芯片价格高方面。但随着科技发展,这些问题正在逐步得以解决。 无线遥控机器人有着广阔的应用前景。 根据题目的要求绘制电路原理图,制作电路板;在Keil C编译环境下编写控制程序并调试,确定如下方案:在蓝牙无线遥控的基础上,加装光电红外传感器、超声波传感器、舵机,实现对小车的位置、运行状况的实时监测,并将测量数据传送至单片机进行处理,然后由单片机根据所检测到的各种数据,对电动车经行对应的控制并将计算出的数据送至上位机显示,实现真正的实时监控。 本次设计可以对电

5、动车的运动状态进行实时监控,可满足对系统的各项要求。本设计采用STC系列中的STC89C52单片机。以单片机为控制核心,利用传感器检测道路上的各种信息,控制小车的无线遥控、自动避障、自动寻迹、三向测距等功能。第二章 方案比较与论证本次设计主要是针对无线遥控智能车进行分析、设计和制作。本次设计以STC89C52单片机为主控芯片,实现了智能车的蓝牙遥控功能、自动避障功能、自动循迹功能、多方向距离检测功能等。2.1总体方案设计图2.1系统原理框图本小车是以STC89C52为主控制器。开始由手机发送蓝牙无线信号来启动小车,由超声波传感器或红外光电传感器进行障碍检测,通过单片机控制小车行驶、测距、避障和

6、循迹。智能车使用4WD驱动,以提高整车运动的平稳性;在智能车进驶过程中,通过红外光电传感器实现自动避障,自动循迹等功能;通过舵机、超声波传感器实现多方向测距;最后通过蓝牙无线传输功能将智能车的行驶信息实时地传送给上位机,以实现实时监控功能。当然也可通过蓝牙无线遥控来控制小车的行驶状态。这就是本设计的总体设计思路。2.2无线模块设计无线控制是为了能够实现对智能车的远程遥控,使小车可以在遥控状态下代替人类完成一些危险项目。目前短距离无线数据传输技术主要有两大类,一类是基于IrDA红外无线通信技术,另一类是基于ISM(Industrial Scientific Medical)频段射频通信技术。较为

7、主流的几种通信技术之间既存在着相互竞争,但又在某些实际应用领域内相互补充、相互配合,究竟选择何种技术更优越,需要由具体的工作环境来决定。表2.1所示为四种短距离无线通讯技术主要性能参数。表2.1 几种典型无线传输方案比较蓝牙技术红外技术WiFi技术通信距离100m10m300m通信速率10Mb/s16Mb/s11Mb/s通信频率或波长2.4GHz0.75um-24um2.4GHz方案:通过表格可以看出,他们在近距离通讯领域都可以提供可靠的通信服务,但是同时他们的应用有着各自的技术架构的限制。在以上的几种中,我最终选择了蓝牙无线传输方式。2.3显示模块设计显示模块的主要功能是显示小车所测得的距离

8、等信息。常用显示器件有1602LCD显示器、5110LCD显示器等。根据此次设计需要我提出了以下实现方案。方案一:采用1602LCD显示器(或5110LCD显示器)显示。此方案采用集成显示模块,硬件电路更加简单,并且液晶显示器消耗电流小,更节能,同时软件实现也简单。方案二:手机上位机显示。通过上位机的串口软件来监控智能车的行驶信息。软件实现简单,无需其他的外部硬件设计。表2.2 几种典型显示方式比较LCD显示手机上位机显示模块成本低高观察方式繁琐方便方案:通过表格可以看出,方案二更加简单方便,且在智能车行驶过程中,通过LCD来观察智能车行驶信息也不方便,所以我最终选择方案二为本设计中的显示方案

9、。2.4循迹模块设计探测路面黑线的原理:光线照射到路面并反射,由于黑线和白线的反射系数不同,可根据接收到的反射光的强弱来判断传感器和黑线相对位置。采用反射式红外发射接收器。直接用直流电压对发射管进行供电,其优点是实现简单,对环境光源的抗干扰能力强,在要求不高时可以使用。2.5避障模块设计方案:红外式探测采用红外式发射、检测一体化模块。由于单个发射器的照射范围不能太小,因此不使用激光管。用波瓣较宽的脉冲调制型红外发射管和接收器。其优点是电路实现简单,但抗干扰性较弱。第三章 智能车机械结构分析在本次设计中,小车使用四轮驱动。四轮驱动式的结构中因为后轮的转动力矩的增大,所以在横向上的轮胎阻力要大于2

10、轮驱动式的,因此四轮驱动式的车子不易发生方向偏移。而且四轮驱动的车子动力更大,爬坡能力更强。但存在一些不足,如:四轮驱动式的车子更加耗电,而且车体比一般的2轮驱动式的车体重。从整体的性能来看四轮驱动式结构的优势是很明显的。图3.1 智能小车电机安装图车身是车体的主要部件。同时也是用来固定车子零部件的,车身上主要有红外传感器安装槽、舵机安装孔、电机定位槽和走线孔。电机的安装位置如图3.1所示。底板采用的是废旧PCB板。废物利用,结构可靠稳定。第四章 控制系统电路设计在本设计中包括的外围设备有电机驱动模块红外传感器模块、蓝牙模块舵机模块、超声波模块等,还要设计合适的接口电路。4.1 MCU的选型本

11、设计中使用的是STC89C52单片机。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。4.2 电机驱动电路设计图4.1 电机驱动电路图本次设计本想采用以上电路,由于自己手上刚好有两块集成的BTS7970电机驱动模块,所以就直接采用了该集成模块作为本次设计的电机驱动电路。4.3 红外传感器模块设计

12、4.3.1 循迹电路设计由光电管采集的信号经三极管单级放大之后,送入单片机,本次设计共设计了四路光电管采集电路,能够使小车平稳的沿黑线行驶。4.3.2避障电路设计避障采用的是红外发射接收一体化的光电传感器,基本不需要外围电路,只在信号输出端接了一个上拉电阻。4.4 蓝牙模块设计蓝牙模块主要是为了实现上位机与下位机的数据传输,本设计是通过蓝牙转串口模块,实现上位机与下位机的无线通讯功能,所以本质上使用的是单片机串口通信。串行通讯的特点是:数据按位顺序传送,最少仅需一根传输线即可完成,成本低但传送速度慢。串行通讯的距离可以从几米到几千米。 在本设计中采用HC-06蓝牙模块。通过手机发送指令来控制智

13、能车的前进、后退、转弯和其他功能。4.5 舵机模块设计、舵机的安装如下图所示4.6 超声波模块设计 本次设计将超声波模块置于舵机上面,可实现多方向测距。4.7 电源电路设计图4.2 电源电路图 如图4.2中,VP1为LM2940稳压芯片,VP2为LM7806稳压芯片,C2、C3、C4、C5、C10、C11、C12、C13为滤波电容。第五章调试结果分析5.1 各模块功能调试1、蓝牙遥控调试及结果分析在小车上电后HC-06蓝牙模块上的工作状态指示灯会快速闪烁,当与手机上位机配对成功进行通讯时,蓝牙模块上的连接指示灯常亮。在非开阔地的环境下对不同的距离的通讯情况经行测试,通过手机端串口工具控制小车直

14、行,观察小车的极限距离为多少。统计本次调试的结果表明,HC-06蓝牙模块的有效通讯距离为0m到25m,在此范围内电脑与小车通讯正常表5.1 距离对通讯的影响距离(M)5101520253035通讯状态正常正常正常正常正常无法通讯无法通讯2、 红外避障调试及分析在进行红外避障时,首先要调节红外传感器的灵敏度,如果发现传感器在距离障碍物很远时就检测到了障碍,就将滑动电阻调大些,降低红外线的发射频率;如果发现传感器在距离障碍物很近时才检测到了障碍,就将滑动电阻调小些,提高红外的发射频率。总之将传感器的检测范围调在20-30CM以内。上电运行后,放到没有障碍物的空地上,小车直走。当前方没有障碍物的的时

15、候车就一直直走。如果前方遇到障碍物,则小车做后退右转运动。直至前方没有障碍物,这时小车恢复直走。如果左方有障碍物,则小车右转。直至左边没有障碍物,这时小车恢复直走。如果右方有障碍物,则小车左转。直至右边没有障碍物,这时小车恢复直走。如果前面没有障碍物,则先执行直走。也就是说如果前方没有障碍物,即使其他任意方向都有障碍则小车依然直走。在调试时,小车发生没有发生误判断动作,3、 循迹功能调试及分析循迹功能中使用的是红外传感器,在调节传感器时,始终保持红外检测距离在4CM以内。上电后,当小车对着轨迹中间行驶时,左右传感器都没检测到黑线,小车高速直行;当小车偏轨道左侧时,左侧的传感器检测到黑线,小车低

16、速右转;当小车偏轨道右侧时,右侧的传感器检测到黑线,小车低速左转;当小车的左右红外传感器都检测到黑线时,小车停车。在进行循迹功能调试时,小车经常会冲出跑道。通过改变小车转弯方式,解决了这一问题5.2总结随着时间的流逝,我们的设计也接近尾声当然这次设计并不是非常完美,还有一些地方需要后续的改进,比如小车的测距方式可以改成实时测距的。当然车子可以在以后再做大些,在上面安装机械臂,这样就可以更加方便地控制小车进行一些生产作业。当然,没有任何事物可以做到完美无缺的,我相信只要我们不断努力去完善,那做出来的产品才会更出色。致谢历时一个月左右的设计过程中,我首先边查资料,我感觉到即使是一个简单的电路,要想

17、很轻松的焊好,也不是很容易的事情。有时可能是阻值选错。这使我深深感受到理论与实际间的差距。通过这样的设计,提高了我的动手能力,使我软件调试知识也提高了。本设计采用的是STC89C52单片机,当然还可以采用其它系列的单片机。经过自己不断的搜索努力以及庞老师的耐心指导和热情帮助,本设计已经基本完成。庞老师的态度和热忱的工作作风令我十分钦佩,他的指导使我受益非浅。在此对庞艳荣老师表示深深的感谢。通过这次设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学三年的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这

18、一个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。参考文献1 何立民,单片机应用系统设计M,92京:航天航空大学出版社,44572 李广弟,单片机基础M,北京:北京航空航天大学出版社,2001年3 何希才,新型实用电子电路400例M,电子工业出版社,2000年4赵负图,传感器集成电路手册,第一版M,化学工业出版社,2004年5张毅刚,彭喜元,新编MCS-51单片机应用设计,第一版M,哈尔滨工业大学出版社,2003年,2427,4104166马长芳,资丽芳,通信原理M,北京:科学出版社,2005年

19、7陈万寿,通信电源系统M,北京:人民邮电出版社,2008年11月8富军,单片机开关电源,北京:电子工业出版社,2007年7月9Michael Miller,蓝牙技术起跳,北京:电子工业出版社,2002年1月10郭洁,蓝牙技术原理与协议,北京:北京交通大学出版社,清华大学出版社,2002年8月11李永龙,李祖枢,王牛.直流电机双闭环调速系统(DLM)的建模与辨识J,控制理论与应用,2008,25(6):78-8512王洪锋,夏明飞,王坚.单片机与微机的远距离串行通信J,电力自动化设备,2002,22(5),59-6713蔡自兴.智能控制及移动机器人研究进展J,中南大学学报,2005,36(5),

20、121-127附录 部分程序#include /*定义变量*/#define stop 0/停止#define front 1/前进#define away 2/后退#define left 3/左转#define bigleft 4/大左转#define right 5/右转#define bigright 6/大右转#define xj 7/循迹#define bz 8/避障#define dd 9/舵机#define cj 10/测距sbit llun1=P20;sbit llun2=P21;/左轮输入sbit rlun1=P22;sbit rlun2=P23;/右轮输入sbit lin

21、1=P10;/左外sbit lin2=P11;/左中sbit rin1=P12;/右外sbit rin2=P13;/右中/红外光电4个输入sbit llin1=P14;/左外sbit llin2=P15;/左中sbit rrin1=P16;/右中sbit rrin2=P17;/右外/红外光电收发4个输入sbit RX= P02;/ECHOsbit TX= P03;/TRIG /超声波模块sbit dj= P01;uchar ldata=0;uint time=0;float S=0;bit flag =0;/*串口初始化*/void SCI_init(void)TMOD=0X21;/设置定时器

22、1为模式2,做为波特率发生器/设T0为方式1,GATE=1;SCON=0x50; /串口方式2TL1=0xFb;/9600波特率的初值,板子使用18.432M晶振,初值=256-/32/12/9600TH1=0xFb;/自动重装初值TR1=1;/开启定时器/启动波特率发生/TH0=0;/TL0=0; ES=1;/开始串口中断EA=1;/开启总中断/*ms延时*/ void delayms(uint ms)uchar a,b;for(;ms;ms-) for(b=4;b0;b-) for(a=190;a0;a-);void delay500us(void) /误差 -0.7us unsigned

23、 char a,b; for(b=4;b0;b-) for(a=94;a0;a-);/*小车行走函数*/void go() /直走llun1=1;llun2=0;rlun1=1;rlun2=0;void turnleft() /左转llun1=1;llun2=1;rlun1=1;rlun2=0;void turnright()/右转llun1=1;llun2=0;rlun1=1;rlun2=1;void turnbigleft()/大左转llun1=0;llun2=1;rlun1=1;rlun2=0;void turnbigright()/大右转llun1=1;llun2=0;rlun1=0;

24、rlun2=1;void back() /后退llun1=0;llun2=1;rlun1=0;rlun2=1;void ting() /停车llun1=1;llun2=1;rlun1=1;rlun2=1;/*循迹函数*/void xunji()go();if(lin1=1&lin2=1&rin1=1&rin2=1)/直走go();if(lin1=0&lin2=0&rin1=1&rin2=1)/大转左turnbigleft();if(lin1=1&lin2=0&rin1=1&rin2=1)/转左turnbigleft();if(lin1=1&lin2=1&rin1=0&rin2=0)/大转右tu

25、rnbigright();if(lin1=1&lin2=1&rin1=1&rin2=0)/转右turnbigright();if(lin1=0&lin2=0&rin1=0&rin2=0)/停车ting();/*避障函数*/void bizhang()go();if(llin1=1&llin2=1&rrin1=1&rrin2=1)|(llin1=0&llin2=1&rrin1=1&rrin2=0)/直走go();if(llin1=0&llin2=0&rrin1=1&rrin2=1)|(llin1=0&llin2=0&rrin1=0&rrin2=1)|(llin1=0&llin2=1&rrin1=

26、1&rrin2=1)/大转右turnbigright();if(llin1=1&llin2=1&rrin1=0&rrin2=0)|(llin1=1&llin2=0&rrin1=0&rrin2=0)|(llin1=1&llin2=1&rrin1=1&rrin2=0)/大转左turnbigleft();if(llin1=0&llin2=0&rrin1=0&rrin2=0)|(llin1=1&llin2=0&rrin1=0&rrin2=1)/后退ting();/*超声波距离计算* void Conut(void) time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.8

27、7)/100; /算出来是CM if(flag=1) /超出测量 flag=0; printf(-n); printf(S=%fn,S); /*启动超声波* void StartModule() TX=1; /800MS 启动一次模块 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); /_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); TX=0; void juli(void) StartModul

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论