毕业设计(论文)基于红外的自动导航系统设计.doc

上传人:文库蛋蛋多 文档编号:3981611 上传时间:2023-03-30 格式:DOC 页数:56 大小:1.11MB
返回 下载 相关 举报
毕业设计(论文)基于红外的自动导航系统设计.doc_第1页
第1页 / 共56页
毕业设计(论文)基于红外的自动导航系统设计.doc_第2页
第2页 / 共56页
毕业设计(论文)基于红外的自动导航系统设计.doc_第3页
第3页 / 共56页
毕业设计(论文)基于红外的自动导航系统设计.doc_第4页
第4页 / 共56页
毕业设计(论文)基于红外的自动导航系统设计.doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《毕业设计(论文)基于红外的自动导航系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于红外的自动导航系统设计.doc(56页珍藏版)》请在三一办公上搜索。

1、基于红外的自动导航系统设计通信工程 08A-3基于红外的自动导航系统设计摘要如今自动导航车在先进制造业、自动化仓储、现代物流场、太空探索等领域有广阔的应用前景。此外,自动导航车还可用于探险、危险品处理、导盲等。自动导航车通常以电池为动力,装备电磁或光学等自动导航装置,能够独立自动寻址,并通过计算机系统控制,实现自动沿需要路径将物料运送到目的地。传统的导航系统在可见光方法不能用或是达不到所要求数据的情况下,以及雷达精度降低时都会造成导航能力的下降。基于红外的自动导航系统正是应用红外辐射本身特性以弥补这些不足。光电传感器的显著特点是非接触、不受电磁干扰、灵敏度高、时间分辨率和空间分辨率高,可进行全

2、方位的测试。当然,单一传感器获得的信息非常有限,由于传感器受到自身性能的影响也带有不确定性。随着传感器种类的增多,一个强大的智能系统应该是一个多传感器系统 ,这也是信息感知的新的研究方向。自动导航车的运行、监测及各种智能化控制的实现,均需通过控制系统实现。控制器接受红外光电导航传感器的导航信息,经处理后控制驱动电动机,驱动导航车运行。本设计采用C51单片机作为主要控制系统,外接红外接收管,通过单片机的C语言编程,对遥控器发出的红外信息进行解码,驱动电机的运动,完成对于小车的导航任务。关键词:红外,导航,单片机Design of infrared automatic navigation sys

3、tem AbstractToday, the AGV has broad application prospects in the field of advanced manufacturing, automated warehousing, modern logistics field, and space exploration. In addition, the AGV can also be used for exploration, dangerous goods handling, guiding blind and so on. AGV is usually a battery-

4、powered, equipped with automatic navigation equipment such as electromagnetic or optical device, capable of independent automatic addressing. Through the computer system control, automatic material transport along the need to path to the destination.Traditional navigation systems will result in the

5、decline of the ability to navigate in the visible method cannot be used or less than the required data, as well as reduced radar accuracy. Based on infrared automatic navigation system is the application of the infrared radiation characteristics to compensate for these deficiencies. Significant char

6、acteristics of photoelectric sensor are non-contact, immune to electromagnetic interference, high sensitivity, high temporal resolution and spatial resolution can be a full range of tests. Of course, the information obtained by a single sensor is very limited, with uncertainty due to the sensor by t

7、he impact of their own performance. With the increase of the sensor types, a strong intelligence system is a multi-sensor system, which is also the perception of new research directions.The AGV run, monitor, and a variety of intelligent control, are required by control system. Controller accepts the

8、 navigation information of the infrared optical navigation sensors, after treatment to control the drive motor, drive navigation car run. This design uses a C51 SCM as the main control system, external infrared receiver tube, through C language programming, decoding the infrared information which is

9、 emitted by remote control, driving motor so that complete car navigation task.Keyword: infrared, navigation, MCU目 录目 录III1 绪论51.1研究的背景及意义51.2本设计的主要目的62 系统硬件设计82.1 系统硬件方框图82.2 红外模块的设计82.2.1红外遥控器原理82.2.2红外接收模块设计102.3 电机驱动模块设计112.4单片机系统介绍132.4.1 STC11/10xx系列单片机主要性能132.4.2单片机内部框图结构163 硬件模块的具体设计与实现173.1

10、 红外接收模块173.1.1红外接收模块电路连接图173.1.2红外接收模块功能实现183.2 电机驱动模块183.3 单片机系统214 系统软件设计224.1系统软件设计方案224.1.1软件开发环境介绍224.1.2系统软件设计234.2红外解码软件设计244.3单片机控制小车软件设计265 系统调试28结论29致谢30参考文献31附录33外文资料翻译(附原文)331 绪论1.1研究的背景及意义人们在长期以来不断认识和改造自然的过程中,一直渴望着能够制造出代替人类劳动的智能化机器,并为之不断努力。随着社会的进步和科学技术的发展,应用于机械、电子、冶金、交通、宇航、国防等领域的机器智能化水平

11、不断提高,并且迅速地改变着人们的生产生活方式。自动导航车因其在先进制造业、自动化仓储、现代物流场、太空探索等领域有着广阔的应用前景,被给予越来越多的关注。此外,自动导航车还可应用在探险、危险品处理、导盲等方面,为人们更好地解决生活中的实际问题。自动导航车通常以电池为动力,装备电磁或光学等自动导航装置,能够独立自动寻址,并通过计算机系统控制,实现自动沿需要路径将物料运送到目的地。目前依据定位方法的不同为导航系统进行了分类。1、磁性导航-采取在车道上埋设磁性标志来给车辆提供车道的边界信息。该方法可靠性高, 经济实用,但是需对道路设施做出较大的改动, 成本较高。2、机器视觉导航-是在自动导航车的行车

12、路线上建立色标,通过摄像机获得信息, 利用图像处理技术进行特征识别从而确定车的位置。机器视觉具有检测信息量大, 能够遥检等优点, 由于数据处理量大, 仍需要在道路上划线等工作, 灵活性差。3、高精度数字地图导航-利用GPS获得自身的位置信息, 实现智能车辆导航与定位跟踪。但其制作成本很高, 限制了其应用。4、主动信标的全向激光定位-通过计算激光束的传播时间获得车的当前位置。这种方法的定位精度较高, 但电路、算法复杂, 成本较高。此外,传统的导航系统在可见光方法不能用或是达不到所要求数据的情况下,以及雷达精度降低时都会造成导航能力的下降。基于红外的自动导航系统正是应用红外辐射本身特性以弥补这些不

13、足。光电传感器的显著特点是非接触、不受电的干扰、灵敏度高、时间分辨率和空间分辨率高,可进行全方位的测试。当然,单一传感器获得的信息非常有限,由于传感器受到自身性能的影响也带有不确定性。随着传感器种类的增多,一个强大的智能系统应该是一个多传感器系统 ,这也是信息感知的新的研究方向。控制系统是自动导航车的核心。自动导航车的运行、监测及各种智能化控制的实现,均需通过控制系统实现。控制器接受红外光电导航传感器的导航信息,经处理后控制驱动电动机,驱动导航车运行。作为控制系统的最佳选择-单片机凭借体积小、质量轻、价格便宜等优势,已经渗透到我们生活的各个领域:从军事上导弹的导航装置、飞机上各种仪表的控制,到

14、民用的各种智能IC 卡、程控玩具等等。红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。发送端采用脉冲调制方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去;接收端将接收到的光脉冲转换成电信号,在经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。1.2本设计的主要目的本课题采用C51单片机作为主要控制系统,通过使用C语言编写程序,将接收头发出的解调信号进行解码,分析出方向信息。由单片机的输出端口发出对伺服电机的控制指令,完成电机的转动,从而让小车追踪红外线,前进或旋转,改变其运动状态,完成导航任务。选用遥控器作为

15、红外源是因为遥控器已经广泛用于家用电器和工业控制之中,而且价格便宜,易于购买。将红外信息应用于导航系统之中可以使定位导航系统更加的完善,安全系数将会提高。红外导航系统降低了外围硬件设备的投资,无论是日常生活还是工业生产也都会随之更加的方便。本设计可应用于家用机器人吸尘器自动充电。家用机器人吸尘器以其智能清扫:机器启动后无需人工劳动和看守可自动完成家中的清扫工作,现已经被很多家庭使用。由于这种吸尘器大多使用的是镍氢电池,在充电后才能为机器提供电能。将本课题设计的红外导航系统嵌入到吸尘器中,在机器电池将要耗尽或者打扫工作完毕后自动关闭清洁功能,将配套的充电座作为红外线发射源,依照红外线的导航,返回

16、到充电器座充电,为下次的打扫做好准备。2 系统硬件设计2.1 系统硬件方框图图2.1 硬件方框图本设计的硬件方框图如图2.1所示,主要是由红外线接收模块和电机驱动模块两大部分组成。主要完成对红外编码信号的接收、轨迹检测和伺服电机运行的发生等功能。红外接收头安装在小车的上方,负责红外信号的采集。输出端将信息传输给C51单片机。单片机查询并分析被红外接收头采集到的由红外遥控器发出的红外信号,通过对信号进行解码,分析出方向信息,发出指令驱动小车点击的转动情况,从而完成对小车运动情况的控制。小车将会向红外线发出端运动,完成导航过程。2.2 红外模块的设计2.2.1红外遥控器原理本课题采用的遥控器就是日

17、常生活中经常方便购买到的万能遥控器,可用于电视机、DVD机、空调、机顶盒等等家用电器。之所以选用红外遥控器作为自动导航系统的信号发出设备是基于作为设备本身的输入控制具有操作简便、价格便宜等诸多好处。遥控器键盘上每个按键的键码是一个小于256的一个数值,按键后通过遥控器红外管产生脉冲发送出去。当红外接收器接收到脉冲后,对脉冲流进行分析,提取键码值,并按照键码值实现其遥控目的。红外遥控器发出的红外线波长约为950nm,由于发射端使用的频率是455kHz的晶振,需要进行整数分频,分频系数一般取12。因此以38KHz的载频进行调制。这样一来,提高了发射的效率,同时也降低了电源的功耗。目前比较常用的红外

18、遥控器主要采用脉冲宽度调试对信号进行编码。以脉宽为0.565ms、间隔0. 56ms、周期为1. 125ms 的组合表示二进制的“0”;以脉宽为0. 565ms、间隔1. 685ms、周期为2. 25ms 的组合表示二进制的“1”。在编写解码程序时通过判断脉冲的宽度,即可得到0或1。当我们按下遥控器的按键时,遥控器将发出如图2.2所示的一串二进制代码,称为一帧数据。根据各部分的功能,可将它们分为5部分,分别为引导码、地址码、地址码、数据码、数据反码。遥控器发射代码时均是低位在前。高位在后。当接收到引导码时,表示一帧数据的开始,单片机可以准备接收下面的数据。“0”、“1”组成的32位二进制码经过

19、38KHz的载频进行二次调制,然后通过红外发射二极管向外发射红外线。地址码由8位二进制组成,共256种,图中地址码重发了一次,主要是加强遥控器的可靠性。如果两次地址码不相同,则说明本帧数据有错应丢弃。引导码和地址码在一个遥控器发出的编码信号中是一致的,主要是用来识别不同的红外遥控设备。数据码为8位,也有256种状态,是信息的实际载体,代表实际所按下的键。也就是说会随按下的按键不同而改变。数据反码是数据码的各位求反,通过比较数据码与数据反码可判断接收到的数据是否正确。如果数据码与数据反码之间的关系不满足相反的关系,则本次遥控接收有误,数据应丢弃。数据码和数据反码若为十六进制,那么两者之和应为0F

20、FH。16位地址码的最短宽度:;16位地址码的最长宽度:。而8位数据代码及其8位反代码的宽度和不变:。所以可以得出,所有32位代码的宽度为(18ms+27ms)(36ms+27ms)。图2.2 红外遥控器发出的红外线编码2.2.2红外接收模块设计由于在我们所处的环境中,除了使用的红外遥控器,还存在很多其他红外源。太阳是最大的红外源,其它的比如灯泡,蜡烛,中央加热系统,甚至是我们的身体都是红外源。事实上,只要是发热的物体,就会发射红外线。这些红外源发射出的红外线会对遥控器发出的红外线造成干扰。因此本课题选用的红外接收头为TSOP1738,载波频率为38KHz,内部框图如图2.3所示,解调信号的输

21、出端直接与单片机相连。有红外编码信号发射时,输出为检波整形后的方波信号,并直接提供给单片机。红外线接收器有内置的光滤波器,除了需要检测的950 nm波长的红外线外,几乎不允许其它光通过。红外检测器还有一个电子滤波器,它只允许大约38 kHz 的电信号通过。换句话说,检测器只寻找每秒闪烁38,000次的红外光。这就防止了普通光源如太阳光和室内光对IR的干涉。太阳光是直流干涉(0Hz)源,而室内光依赖于所在区域的主电源,闪烁频率接近100或120 Hz。由于120 Hz在电子滤波器的38 kHz通带频率之外,它完全被红外检测器忽略。 图2.3 TSOP内部框图2.3 电机驱动模块设计小车的运动状态

22、是通过改变伺服电机的转动情况实现旋转改变的。控制伺服电机转动速度的信号是一系列的脉冲信号。其中电机转速为零的控制信号是高电平持续1.5ms 低电平持续20ms,然后不断重复的控制脉冲序列下如图2.4所示。将该脉冲序列发给经过零点标定后的伺服电机,伺服电机不会旋转,也就是说,此时小车是静止的状态。控制电机运动的是两个伺服电机转速的是高电平持续的时间,如图2.5和图2.6所示,当高电平持续时间为1.3ms 时,电机顺时针全速旋转,当高电平持续时间1.7ms 时,电机逆时针速旋转。将电机与C51连接时P1_0引脚的控制输出用来控制左的伺服电机,而P1_1 则用来控制右边的伺服电机。图2.4 电机转速

23、为零的控制信号时序图图2.5 1.3ms的控制脉冲序列使电机顺时针全速旋转图2.6 1.7ms的控制脉冲序列使电机逆时针全速旋转2.4单片机系统介绍单片机是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机,以其功能齐全、体积小、成本低价格等特点被广泛应用于各种电子系统中。传统的51系列单片机在访问片外64K数据总线都有ALE地址锁存信号输出,即使不访问时也会输出一个对系统时钟进行六分频后的时钟信号,这种信号对于不需要的系统而言无异于会产生干扰。STC11/10xx系列考虑到这一问题,将此干

24、扰源彻底切断,将ALE本不需要的时钟输出功能取消,继续保留了访问片外64K数据总线都有ALE地址锁存信号输出的功能。如此一来,降低了单片机内部时钟对外部的电磁辐射造成的干扰,提高了系统的可靠性和稳定性。如果需要获取时钟信号的输出时可通过相应的管脚获取。2.4.1 STC11/10xx系列单片机主要性能1.高速:1个时钟/机器周期,增强型8051,内核速度比普通8051快8-12倍,指令代码完全兼容传统80512. STC10Fxx系列电压:5.5V-3.8V/3.4V(5V单片机)3.工作频率:0-35MHz,相当于不同8051:0-420MHz4.STC10F/Lxx系列单片机用户应用程序空

25、间:2K / 4K / 6K / 8K /10K / 12K / 14K字节片,擦写次数10万次以上5. STC10系列单片机:RAM为512字节或256字节6.通用I/O口(40/36个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏。每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过100mA7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片8.有EEPROM功能9. 看门狗10.

26、内部集成MAX810专用复位电路(晶体频率在24MHz以下时,要选择高的复位门槛电压,如4.1V以下复位,晶体频率在12MHz以下时,可选择低的复位门槛电压,如3.7V以下复位,复位脚接1K电阻到地)11.内置一个对内部Vcc进行掉电检测的掉电检测电路,可设置为中断或复位。5V单片机掉电检测门槛电压为4.1V/3.7V附近,3.3V单片机掉电检测门槛电压为2.4V附近12.时钟源:外部高精度晶体/时钟,内部R/C振荡器。用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟。常温下内部R/C振荡器频率为:4MHz8MHz。精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂

27、,以实际测试为准13. 2个16位定时器(与传统8051兼容的定时器/计数器,16位定时器T0和T1) 1个独立波特率发生器(故不必用T2做为波特率发生器,详细使用方法请参考独立波特率发生器做串口通讯的相关使用说明及示例程序)14. 3个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟,独立波特率发生器可以在P1.0口输出时钟(部分型号无独立波特率发生器,详情请参阅单片机选型一览表)15.外部中断I/O口有5路,支持传统的下降沿中断或低电平触发中断 Power Down(掉电)模式可由外部中断唤醒,INT0/P3.2, INT1/P3.3, INT/T

28、0/P3.4, INT/T1/P3.5, INT/RxD/P3.0(或INT/RxD/P1.6)16. Power Down(掉电)模式可由内部掉电唤醒专用定时器唤醒(STC11xx系列有此功能,STC10xx无此功能), 也可由上面提到的外部中断口中断唤醒,由于INT/RxD支持下降沿中断,故也可支持远程通信唤醒17.一个独立的通用全双工异步串行口(UART),做主机时可以当2个串口使用RxD/P3.0,TxD/P3.1可以切换到RxD/P1.6,TxD/P1.7,通过将串口在P3口和P1口之间来回切换,将1个串口作为2个主串口分时复用,可低成本实现2个串口,当然有其局限性18.工作温度范围

29、:-40 - +85(工业级) / 0 - 75(商业级)19.封装:SOP16/DIP16/DIP18/SOP20/DIP20/LSSOP20/PDIP-40/LQFP-44/ PLCC44 (暂时尽量不要选PLCC44) SOP16/DIP16有12个I/O口,SOP20/PDIP20/LSSOP20有16个I/O口,LQFP44有40个I/O口,PDIP40有36个I/O口2.4.2单片机内部框图结构3 硬件模块的具体设计与实现3.1 红外接收模块该模块主要完成对有红外遥控器发出的红外编码信号进行接收和发送。选用的红外接收头型号为TSOP1738,集放大,接收,解调于一体,无需调试和屏蔽

30、。对于以前使用的红外接收二极管来说,由于红外发光二极管发射功率一般都比较小(100mW左右),所以接收到信号就比较微弱,因此需要增加高增益放大电路。但是选用一体化的红外接收头不需要复杂调试和外壳屏蔽,使用方便。TSOP1738采用塑料封装,有三个引脚,分别是Vs、GND和数据输出OUT。它与单片机的连接非常方便,Vs连接系统电源正极(+5V),GND连接系统地线,OUT连接到单片机的相应P1管脚上,作为单片机的输入信号。3.1.1红外接收模块电路连接图图3.1 红外接收模块电路图红外接收模块电路如图3.1所示该模块使用一体化红外接收头TSOP1738,考虑到导航的准确性,在此模块中使用了3个同

31、型号的红外接收头,有角度的差异的置于面包板的一侧。为保证正常接收和发送红外线,每个接收头都应先完成如图3.2.1所示的电路连接,之后将数据输出端口与单片机的输入端口连接。由于接收头内集成了放大电路,而放大器的增益很大容易产生震荡,所以在接收头连接电源的管脚处增加一4.7F的去耦电容,用来耦合电源线上产生的噪声。在电源线上串联100的电阻目的也是为了更好地抑制其他电路产生的噪声。OUT即是解调信号的输出端,直接与单片机的P1管脚相连有红外编码信号发射时,输出为检波整形后的方波信号,并直接提供给单片机。3.1.2红外接收模块功能实现当TSOP1738接收到由红外遥接收器控器发出的38KHz的红外编

32、码信号时输出端输出低电平,否则输出高电平。这样一来,红外信号由遥控器发出再经过红外接收头的处理后输出到单片机的信号相反的。参考遥控器发出的红外线编码波形图可以得到如图3.2所示的接收头输出端信号。图3.2 红外线接收头输出信号3.2 电机驱动模块本课题采用的运动小车为C51单片机的机器人,如图3.3所示。该机器人已经组装好该机器人的机械套件和伺服电机,小车的两个轮子通过齿轮分别连接到了两个伺服电机上,通过电机的转动完成轮子的转动。通常使用五号碱性电池给机器人电机和单片机供电,在继续下面的任务前,需在机器人底部电池盒内装好电池,并将电源通过电源线与单片机相连,保证有正常的电压输出。图3.3 采用

33、C51单片机的机器人控制机器人不同的运动情况,如静止、直行和转动,都是通过单片机的输入/输出(I/O)口输出不同的脉冲序列使伺服电机发生不同的转动而完成的。将单片机的P1_0和P1_1口作为单片机的输出端口,输出控制伺服电机运动的脉冲序列。将机器人两个伺服电机的控制线与否C51 单片机教学板的两个专用电机控制接口上正确连接,如图3.4所示。图3.4 伺服电机与教学底板的连线原理图由图3.2.1可知,目前使用的C51单片机机器人的每个伺服电机的一端连接机器人的轮子而另一端则需要连接到单片机的引脚上。单片机将控制电机转动的脉冲序列通过引脚输出给电机,从而完成对小车的运动情况的控制。将电机与C51连

34、接时P1_0引脚的控制输出用来控制左的伺服电机,而P1_1 则用来控制右边的伺服电机,实际接线示意图如图3.5所示。当小车处在静止状态即轮子不转动的时候电机也是不发生转动的;当小车需要转弯的时候可以通过让一个轮子不动而另一个旋转来解决,也就是说,如果小车需要左转那么就应保持左轮不动而右轮从前面顺时针旋转即左电机不转右电机顺时针旋转,如果想让小车从前面向右旋转只需停止右轮同时左轮从前面逆时针旋转即右电机不转左电机逆时针旋转。图3.5 伺服电机与单片机实际接线示意图3.3 单片机系统本设计选用51系列单片机,型号为STC10F08XE(工作电压为5V),管脚排列如图3.6所示。STC10xx系列单

35、片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成高可靠复位电路,针对高速通信,智能控制,强干扰场合。图3.6 STC10XX系列单片机管脚排列STC10F08XE相应技术指标如下:1. 工作电压:5.5V-5.8V/3.2V2. 8K Flash程序存储字节3. SRAM字节:5124. EPROM:5K5. 有定时器T0,T16. UART串口有独立波特率发生器1-2个7. DPTR:28. 中断优先级:29. 有内部低压中断10. 支持掉电唤醒外部中断5个11. 有内置复位并可

36、选择复位门槛电压12. 有看门狗13. 封装40-Pin36个I/0:PDIP14. 封装44-Pin40个I/0:LQFP/PLCC4 系统软件设计 4.1系统软件设计方案4.1.1软件开发环境介绍Keil C51是当前使用最广泛的基于80c51单片机内核的软件开发平台之一,由美国Keil Software公司推出,当前已被ARM公司收购,集汇编、编译、仿真于一体,支持汇编语言和C语言的程序设计。C51编译器的功能不断增强,可以更加贴近CPU本身,及其它的衍生产品。通过此软件可以完成将编写的C语言的源程序变为CPU可执行的机器码。uVision是C51 for Windows的集成开发环境,

37、可以完成编辑、编译、连接、调试、仿真等整个开发流程。本设计软件工作环境使用的是Keil uVision2。Keil uVision2是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期。此外,还能可以在关键的位置嵌入汇编,使程序达到接近于汇编的工作效率。采用集成卡法环境本身的编辑器编辑C源文件。编译之后生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件

38、(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。4.1.2系统软件设计根据系统硬件设计,要完成课题要求的关键部分在于红外信号的接收和电机运动的控制。所以系统软件设计的思路也主要分为两大模块:红外解码模块和小车控制模块。红外解码部分主要完成检测红外接收头发出的红外编码信号的接收,单片机分析后,识别出具体是哪个红外接收头接收到了红外信号。控制小车运动的部分主要是单片机依据提取到的方向信息,发出相应的指令,控制小车电机的转动。由于电机与车轮是通过齿

39、轮连接在一起的,改变伺服电机的转动就可以完成小车直行或转弯等运动情况的改变。 将程序下载到单片机后,完成系统初始化。红外接收头将检测到红外遥控器发出的编码后的红外信息传递给单片机。单片机对接收到的数据进行解码,提取相应的方向信息,产生PWM脉冲波形,实现对伺服电机的控制(当脉冲宽度发生改变时,电机转轴的角度发生改变,角度变化与脉冲宽度的变化成正比),从而实现对小车的导航。软件设计框图如图4.1所示。图4.1 系统软件设计流程图在所有的程序模块中,只有几个关键模块直接影响到系统的设计与实现,其他关于硬件驱动、引脚定义、函数定义的头文件虽然也跟整个系统密不可分,但是它们并不直接参与系统的控制和运行

40、,所以在这里只对红外解码模块和控制电机模块进行详细的说明。 4.2红外解码软件设计由于遥控发射器采用不同的芯片会产生不同的传送信号编码, 但绝大多数红外信号的码值由两部分构成: 一部分为客户码, 为定值, 以区别不同的红外遥控系统; 另一部分为数据码, 它随按键的不同而不同, 是信息的实际载体。红外解码部分的软件设计思路就是用来解决红外遥控信号的识别问题。红外遥控信号的识别主要是指了解红外信号的脉冲波形特征,了解其编码规律。由于红外遥控器发出的红外信号是经过编码处理的,接收头将接收到的红外信号做相应的调制和放大处理后才发送给单片机,所以正常接收后,单片机需要对接收到的信号做出解码处理。在此用软

41、件设计的方法从分析脉冲的高、低电平宽度入手完成对脉冲流的分析。单片机的输入信号来自于红外接收头的输出管脚。如果没有接收到红外信号,接收头的输出端口OUT保持高电平,即向单片机输出高电平。一旦红外接收头检测到遥控器发出的红外信号的时候,接收头将把接收到的信号转换成脉冲序列输入到CPU。此时单片机通过检测低电平的持续时间,判断是否为正常接收。若为正常接收,即正常接收到引导码后,单片机需要逐位对接收到的编码信号中的数据位信息进行分析。从位的定义我们可以看出“0”和“1”的区别在于脉冲宽度的不同。单片机识别出数据码中的“0”和“1”,判断出遥控器的按键情况,完成解码。完成8位数据码的接收和解码后,单片

42、机将解码后的信息存储,依据定义红外接收管的接收情况为单片机控制小车做好准备。红外解码软件设计流程图4.2所示。图4.2 红外解码软件设计流程图 4.3单片机控制小车软件设计红外接收头将红外信号的接收情况通过输出管脚作为输入信号输入单片机。单片机对红外信号进行解码分析出红外接收头的接收情况,提取方向信息后通过输出管脚输出 PWM脉冲波形,控制伺服电机的转动,从而完成对小车运动的控制。在设计初期,考虑到本系统可应用于家用机器人吸尘器自动充电,所以在小车的控制上只设计完成了依据红外接收头接收到的红外导航信息前进,转弯的功能,并没有遥控或自动避障的功能。图4.3中所示的直行、左转等运动情况都是以小车为

43、对象,并不是伺服电机和车轮的转动情况。 控制伺服电机转动速度的是在系统硬件设计中提到的脉冲信号,通过改变高电平的持续时间,可以完成转动情况的改变。单片机编程发给伺服电机的高、低电平必须是精确的时间。因为单片机只有整数,没有小数,所以要生成伺服电机的控制信号,要求具有比delay_nms()函数的时间更精确的函数。图4.3 控制小车软件设计流程图5 系统调试1.在进行测试前,首先应对红外接收头加装保护罩。由于TSOP1738一体化红外接收头非常敏感,在不加保护罩的情况下无论遥控器发射红外线的角度如何,3个接收管的输出端连接示波器观察后总是显示红外编码脉冲。红外线发射角度的改变并不影响红外接收头输

44、出的结果,这样一来,单片机接收到的输入信号总是3个接收头都已接收到红外信号,会使得单片机输出的控制电机转动的程序保持不变,小车会一直直行,即使遥控器在小车的后方发出红外线小车的运动情况也不会改变。这样小车无法追踪红外线也就失去了导航的意义。对每一个红外接收头都加装一个用黑色胶带做好遮光措施的保护罩就可以避免这种问题的出现。当改变遥控器发射红外线的角度时。可通过示波器连接红外接收头输出端查看是否还会出现3个都接收到红外信号的情况。2.在机器人小车底部电池盒内装好电池,并将电源通过电源线与单片机相连,保证有正常的电压输出后将通过STC官方烧录工具将生成的可执行文件下载到单片机中。因为在没有遥控器发

45、射红外线时,单片机会发出令伺服电机保持不转动的脉冲序列。此时由于机器人的机械套件和伺服电机都已经连好,车轮也应该是处在静止不转的。如果出现车轮的转动,则需要调试机器人伺服电机的零点,使其不发生转动。3.由于本设计完成的是机器人小车对于红外遥控器发出的红外线进行追踪,实现导航功能。在调试完机器人伺服电机的零点后,使用遥控器在红外接收模块周围的不同角度发射红外线,先要用示波器观察红外接收头输出端输出的红外编码信号,之后观察车轮转动情况。如果车轮转动的情况出现错误或偏差则需从改动控制小车运动部分的程序。结论本文在对红外接收和导航技术进行深入研究的基础上,详细地阐述了基于红外的自动导航系统设计的目的和

46、实现方法。通过系统方框图、硬件电路图和软件流程图的表示,全面、具体地阐述了系统中各个部分的原理和功能。设计简单易懂,可应用于家庭生活之中特别是机器人吸尘器自动充电系统中。当然也可应用于其他工业导航系统之中,辅助可见光或其他导航设备,提高导航的可靠性、稳定性和准确性。系统设计将红外遥控的接收和软件解码方法成功的应用于车辆导航系统,降低了硬件投资,适用性强,思路新颖,原理简单,无需外围芯片。由于系统是将是红外遥控器和软件解码研究结合在一起,可方便应用于各种红外遥控场合,组成通用的操作模块。由于本设计是采用单片机作为核心处理芯片,具有编程灵活、易于控制、稳定性好、扩展方便的优点。整个系统采用模块化设

47、计,使得系统具有良好的可升级性和扩展性。本设计仍有许多地方存在不足。为了进一步提高系统的导航能力,可以在本论文设计的基础上做些改动,让整个的导航系统更加完善和智能。如对系统添加红外遥控功能,通过红外遥控器的不同按键控制机器人小车的运动情况。这样能人为控制小车的运动方向,使得小车的运动更加灵活也能躲避障碍物,完成用户更多的需求。根据实际情况对本设计进行功能上的改进可以让红外导航系统达到更加实用的效果。致谢经过将近一个学期的努力,终于如期完成了本次毕业设计。首先我要感谢我的毕设导师杨扬老师,从选题到整个毕设的进行过程中,杨老师不但为我们创造了良好的学习环境提供了毕业设计的设备,而且一直悉心教导并推

48、荐给我们很多毕设需要的相关文献资料供我们参考。论文行文过程中,杨老师也多次帮助我分析思路,开拓视角,给予了我很大的帮助和鼓励。从杨老师那里我不仅学习到了知识,他严谨求实的治学态度,踏实坚韧的工作精神,也将使我终生受益。在此,谨向周老师致以诚挚的谢意和崇高的敬意。 感谢北方工业大学信息工程学院为我们提供了做毕业设计的实验室,也感谢信息工程学院所有帮助过我、指导过我的老师,是他们细心的指导和耐心的教诲,让我学到了很多,懂得了很多。我还要特别感谢刘红,王玉花,肖珂老师对我毕业设计提出的宝贵建议和指导,我的毕业设计能够顺利完成,衷心感谢他们的帮助和支持。另外还要感谢通信08A-3班的所有同学。在与他们共同学习,共同生活的四年里,我们一同经历了四年的风风雨雨,与他们的交流和讨论,扩展了我的思路,锻炼了我的能力,对论文的完成颇有益处。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号