版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学 号01081237密 级哈尔滨工程大学本科生毕业论文遥控小汽车的设计研究院(系)名称:信息与通信工程学院 专业名称:电子信息工程学生姓名:张洪生指导教师:付永庆 教授2005年6月哈尔滨工程大学本科生毕业论文哈尔滨工程大学本科生毕业论文遥控小汽车的设计研究院 (系):信息与通信工程学院专学业:电子信息工程 号:01081237学生姓名:张洪生指导教师:付永庆 教授2005年6月1哈尔滨工程大学本科生毕业论文摘 要根据题目要求,本设计采用2片AT89C52单片机构成主从式的控制系统,双机采用串行口进行通信。红外遥控部分采用遥控车模专用编、解码芯片TX-2/RX-2,提高控制的可靠性;同时,在
2、遥控发射端加入了用凌阳61板做的语音识别系统,能够完成语音遥控功能。采用红外传感器进行里程检测;超声波传感器进行障碍识别;感光电阻辅以步进电机控制的转动机构进行光源方向的检测,并能用软件控制小车行驶到光源附近。采用步进电机对小车的转向进行精确的控制,同时用红外传感器对转向的角度进行校正。此外,采用四位LED数码管和若干LED发光二极管显示时间、行进的里程以及小车的各种状态;采用AT24C08串行EEPROM记录小车的行驶轨迹,并能按照所记录的轨迹自动行驶。本次设计基于完备的软硬件系统,很好的实现了小车语音遥控、任意曲线行驶、路线记录与重放、自动查找光源、自动避障,里程统计并发出指示信息等功能。
3、关键词:单片机;超声波传感器;红外遥控;语音识别;凌阳61板哈尔滨工程大学本科生毕业论文ABSTRACTAccording to the topic, my design needs to adopt two AT89C52 to form a control system of principal and subordinate. The communication between the two MCU is to adopt the serial port. Meanwhile, launch end join with insult male genital 61 sound reco
4、gnition system that board make remotely, can finish the remote control function of the pronunciation, and it adopts the infrared sensor to measure the mileage; The ultrasonic sensor carries on the obstacle to discern; Sensitization resistance complement in order to walk into whom electrical machiner
5、y control rotate organization carry on measuring, direction of the light source, The small car can go to the adjacent place of the light source with the software .The design adopts serial EEPROM of AT24C08 to write down the orbit of the car , and can repeat the route automatically which has been rec
6、orded.The Design is on the basis of the complete software and hardware system, and the small car has the function of sound remote control, following any curve, recording the route where it has gone, finding out the light source, etcKeywords: MCU; AT24C08; sensor; SPCE061A哈尔滨工程大学本科生毕业论文目 录第1章 绪论11.1概
7、述11.2设计要求及主要功能介绍11.2.1 手动控制功能21.2.2 自动寻找光源功能21.2.3 超声避障功能21.2.4 记录路线与重放路线功能21.2.5 声控功能31.2.6 其他功能31.3 MCS-51系列单片机简介31.4凌阳SPCE061A精简开发板简介5第2章 系统总体设计62.1系统功能模块的划分62.2单片机数目的选定62.3系统原理框图72.4系统软件主要特色72.4.1软件分层结构82.4.2多任务结构82.4.3消息驱动结构132.5本章小结15第3章 各模块的详细设计163.1 红外遥控模块的设计163.1.1 遥控模块的功能需求163.1.2 编解码芯片的选型
8、163.1.3 遥控模块原理图16哈尔滨工程大学本科生毕业论文3.1.4 遥控电路与语音识别模块的连接183.2 数码管、发光二极管显示模块的设计183.2.1 多位数码管扫描显示原理183.2.2 工作状态指示灯及转向灯的设计193.2.3 显示模块电原理图193.2.4 显示任务的软件设计203.3 声音提示功能的设计203.4 前轮转向模块的设计213.4.1 前轮转向的机械结构设计213.4.2 前轮转向中点校准功能的设计223.4.3 步进电机驱动芯片223.4.4 前轮转向任务的软件设计223.5 后轮驱动模块的设计243.5.1 直流电机驱动芯片L298N243.5.2 后轮驱动
9、任务的软件设计253.6 里程检测模块的设计253.6.1 探头的选型与安装253.6.2 软件消抖与硬件消抖的比较263.6.3 里程检测任务的软件设计263.7 超声测距模块的设计273.7.1 超声测距的理论依据273.7.2 超声发射电路273.7.3 超声接收电路283.7.4 超声测距任务的软件设计293.8 光源方向探测模块的设计303.8.1 旋转机构设计303.8.2 亮度检测电路的选型与设计31哈尔滨工程大学本科生毕业论文3.8.3 寻找光源方向任务的软件设计323.9 行驶路线的记录与重放模块的设计333.9.1 该模块的功能概述333.9.2 AT24C08串行EEPR
10、OM介绍333.9.3 存储记录的格式333.9.4 手动模式下记录行驶路线功能的软件设计333.9.5 重放行驶路线功能的软件设计343.10 双机串行通信模块的软件设计353.10.1 通信方式的选型353.10.2 双机串行通信的软件设计353.11 语音识别功能的设计363.11.1 凌阳语音压缩算法373.11.2 语音识别模块的软件设计373.12 本章小结37第4章 系统软件的设计394.1 单片机的C语言程序设计简介394.2 系统的三种工作模式394.3 手动模式的设计404.4 自动寻找光源模式的设计404.4.1 功能分析404.4.2 寻找光源的策略414.4.3 自动
11、寻找光源的软件设计414.4.5 该功能模块存在的一些问题414.5 走数字及路线重放模式的设计444.6 本章小结44第5章 系统的组装、调试和测试455.1 系统的组装、调试45哈尔滨工程大学本科生毕业论文5.2 遥控距离的测试455.3 时间显示功能的测试455.4 里程显示功能的测试465.5 超声测障碍功能的测试465.6 走数字功能的测试465.7 行驶路线记录与重放功能的测试475.8 自动寻找光源功能的测试475.9 语音识别功能的测试475.10 本章小结48 结论49 致谢50 参考文献51 附录52哈尔滨工程大学本科生毕业论文第1章 绪论1.1 概述单片机以其强大的控制能
12、力已经被广泛应用于诸多领域,配以各种接口传感器可以实现系统的智能化。无论是在工业控制领域、医疗卫生领域、还是在国防军事领域、航天航空领域,微控制器都起着举足轻重的作用。从最初的8位控制器到现在的16位、32位控制器都还有很大的发展和应用空间。目前市场上已有很多种用超声波传感器制作的产品,在汽车电子领域,用超声波传感器做的倒车雷达可以提高汽车行驶的安全性。对汽车驾驶员来说车身后方是一个视线的“死区”,倒车时得非常小心,倒车雷达的出现就解决了这一问题,当车身后方有障碍时能及时发出警告。语音识别技术也日趋完善,在机器人领域,要想用语言和机器人“交谈”,首先就要解决语音的识别问题。可以用语音识别技术做
13、成电话声控拨号、声控家电、儿童玩具等。语音识别技术还有待于进一步的发展。本设计中采用凌阳61板做的声控系统可以用语音控制小车的前进、后退、左转、右转、停止。1.2 设计要求及主要功能介绍根据题目要求,本设计需要完成的以下几项功能:(1)红外遥控功能,启停、自动或手动;(2)前或后直线行进;(3)任意曲线行进;(4)测距避障功能;(5)显示行进距离;(6)精确查找光源。1哈尔滨工程大学本科生毕业论文另外,在设计过程中又扩展了一些功能,比如声控功能、记录与重放行驶路线功能等。1.2.1 手动控制功能在手动控制模式下,可以控制小车的前进、后退、左转、右转、停止、漏粉、显示时间、显示里程,若在行驶过程
14、中遇到障碍小车将自动停止,并发出声光警告信号。同时,在转弯或后退时相应的转向灯和倒车灯会闪烁发光,小车接收到一个按键命令后除了执行相应的动作外蜂鸣器还会响一声,以告知操作者已收到了命令。在手动控制模式下,还设置了一个记录行驶路线的开关。操作者按下这个开关后,先选择这一次记录的路线的名称,此后对小车的控制命令将被存入EEPROM中,直至操作者再按下一次这个开关结束这次路线的记录。记录的路线可在重放路线模式下重放。1.2.2 自动寻找光源功能在自动寻找光源模式下,小车可以自动查找光源的方向,然后自动行驶到光源的附近。在自动行驶过程中若遇到障碍,小车将自动采取一些避障措施避开障碍。此外在寻找过程中操
15、作者若按下“显示模式切换键”数码管显示的内容将在时间和里程之间切换,若按下“停止”键,小车将立即停止寻找光源,然后等待切换到其他模式。1.2.3 超声避障功能在手动模式、自动寻找光源模式、重放路线模式下超声测障模块始终工作。在前进时发现前方有障碍,或在后退时发现后方有障碍小车都将立即停车,并发出声光报警信号告知操作者。障碍检测的距离调整在20厘米内,即只有在20厘米之内有障碍时小车才会做出避让动作,在这个范围之外的障碍小车不予处理。1.2.4 记录路线与重放路线功能在手动模式下打开记录路线开关,开始记录路线;在重放路线模式下选择重放的路线,开始重放指定的路线。在重放过程中遇到障碍 2哈尔滨工程
16、大学本科生毕业论文或操作者按下“停止”键将结束本条路线的重放,等待选择下一条需要重放的路线或选择另外一种模式。1.2.5 声控功能本设计采用凌阳61板做了声控系统。打开遥控器电源后开始训练语音命令,由于受到单片机内的SRAM容量的限制只能录制5条语音命令,分别是前进、后退、左转、右转、停止。当识别出某条语音命令时和直接按下相应的按键等价,红外发射电路都会给小车发出相应的命令。操作者在使用声控功能时有语音提示音,所以操作很简便、快捷。1.2.6 其他功能小车还具有走数字功能,即小车可按照事先由程序设置好的路线行走,并洒下粉末,显示出一个数字。除此之外,小车上还有左、右转向灯,倒车灯,障碍指示灯,
17、模式指示灯,蜂鸣器报警电路,小车状态一目了然。1.3 MCS-51系列单片机简介MCS51单片机的基本结构如图1.1所示,其基本结构包括: 8位CPU; 片内震荡器及时钟电路; 32根I/O口线; 外部存储器ROM和RAM寻址范围各为64KB; 2个16位定时器/计数器; 5个中断源,2个中断优先级;3哈尔滨工程大学本科生毕业论文 全双工串行口; 布尔处理器。8051单片机的存储器结构特点之一是程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式。这种结构的单片机称为哈佛结构单片机。8051单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器;片内数据存储器和片外数据存储器。805
18、1单片机有4个8位的并行接口,记作P0,P1,P2和P3,共32根口线,实际上它们就是SFR中的4个。这4个接口特性上主要差别是P0,P2和P3都还有第二功能,而P1口只能用做I/O口。4个口的驱动能力也是不相同。P1,P2和P3都能驱动3个LS TTL门,并且不需外加上拉电阻就能驱动MOS电路。P0能驱动8个LS TTL门,但驱动MOS电路时,若作为地址/数据总线,则可以直接驱动;而作为I/O口时,需外接上拉电阻才能驱动MOS电路。4哈尔滨工程大学本科生毕业论文1.4凌阳SPCE061A精简开发板简介凌阳61板是采用凌阳16位单片机为核心的开发系统,具有DSP处理功能和语音处理功能。利用该开
19、发板可方便的实现语音的录、放、识别等功能。SPCE061A凌阳16位单片机的结构框图如图1.2所示:SPECE061A的CPU工作速率为0.32MHZ-49.152MHZ;SRAM容量为2K字;程序存储器容量为32K字FLASH,使用凌阳音频压缩算法SACM_240方式(2.4Kbps),能容纳240秒语音数据;有两个16位的并行I/O接口;还具有ADC、DAC、麦克风放大器和AGC电路等。由于IDE自带了很多有关语音录放、语音识别的API函数,所以采用61板来做声控系统比较方便。图1.2 SPCE061A结构框图5哈尔滨工程大学本科生毕业论文第2章 系统总体设计2.1系统功能模块的划分按照设
20、计要求,系统可以分为以下几个基本功能模块:遥控模块、显示模块、前轮转向模块、后轮驱动模块、超声测距避障模块、寻找光源模块、记录与重放路线模块、里程检测模块等。有些模块的功能是由硬件完成,有些模块的功能由软、硬件配合完成,有些模块则是由软件、硬件、机械三部分共同完成。将系统拆分成以上的这些基本功能模块后,再根据各个模块所要完成的功能分别去设计,也就是按照“逐步求精”的思想去设计本系统,这将使设计工作细化,也有助于制定进度安排。2.2单片机数目的选定由于系统需要完成的功能较多,CPU的负荷也较重,再加之单片机内的定时器/计数器、中断、I/O口等资源有限,如果选用一片单片机必将会给系统的设计带来一些
21、困难。所以可以考虑采用两个单片机构成主从式的结构,各分担一部分控制与运算功能,这样两个单片机可同时工作。所谓主从式结构是指从单片机片机根据主单片机发出的命令来完成某项功能,并且把结果报告给主单片机,这样的结构在某种程度上可以简化系统。主单片机负责红外遥控接收、显示、小车的运动以及处理遥控命令等功能;从单片机则主要负责超声测距、检测光源方位这两项比较费时的功能,在探测到障碍或探测到光源时将有关信息报告给主单片机进行处理,并由主单片机来采取相应的措施。本设计中采用了两片AT89C52单片机,通过串行接口通信。因为两个单片机之间的距离很近,所以串行口可以工作在较高的波特率上,可以让串行口工作在方式2
22、,其特点是其波特率高,并且波特率可以直接从晶振32分频、或64分频而得到,不需要占用定时器资源。 6哈尔滨工程大学本科生毕业论文2.3系统原理框图系统原理框图如图2.1所示:图2.1 系统原理框图2.4系统软件主要特色软件在一个智能系统中扮演着举足轻重的作用,软件设计的好坏直接关系着整个系统的性能。目前已经有很多种嵌入式实时多任务操作系统,如:Linux、RTX51及UC/OS等,可以更有效的利用系统的各种资源,简化编程,缩短开发周期。签于本系统采用AT89C52单片机为控制器,本身的各种资源都很有限,引入一个操作系统代价太大,所以考虑直接来优化系统的软件结构,同样可以达到“多任务”、“实时”
23、等要求。2.4.1软件分层结构为了便于编程,将逻辑控制层和具体的硬件相分离开是很有必要 7哈尔滨工程大学本科生毕业论文的。硬件驱动层的软件负责直接操作硬件,并且给上层的软件提供一定的接口,这样有助于上层的软件实现更复杂的功能,并且系统的硬件有所改动时也只需改动相应的驱动模块即可。本系统中的LED显示模块、前轮转向模块、后轮驱动模块、AT24C08存取模块、寻光源转动机构都做成了一些独立的模块,并且给外部提供了一些接口函数,来实现对这些硬件或机械部件的高级操作。分层结构如图2.2所示:软件的分层结构是很多系统中普遍采用的一种软件结构,比如TCP/IP协议就是一种典型的分层结构。WINDOWS、L
24、INUX等系统中也几乎把所有的系统硬件进行了抽象,这样上层的软件就不必关心硬件的细节,可以调用相应的模块提供的服务即可,这样可把更多的精力放在高级功能的实现上。2.4.2多任务结构为了充分利用单片机的CPU,内存等资源,本系统中引入了多任务的软件结构,即从宏观上来看单片机同时在做多件事情。分析一般的多任务系统的软件结构,系统的核心是任务调度器,在适当的时候任务调度器将保存当前任务的现场,并且恢复将要运行的任务的现场,并让其投入运行。简单的说,一般的多任务系统是任务调度器循环的调用各个需要执行的任务,进而可以更有效的利用系统的各种资源。从这里得到启发,可以用定时器每隔一定的时间中断一次,在中断处
25、理函数中依次调用一次各个任务所对应的函数,并且各个函数都8 图2.2 软件分层结构示意图哈尔滨工程大学本科生毕业论文能在一个较短的时间内返回,这样在某段时间内,各个任务所对应的函数都能够被执行到,就好像多个任务同时运行了。还有一点需要说明,就是各个任务是由一些函数和一些静态变量组成。函数由定时器中断处理函数定期的调用一次,并且有个前提就是这个函数能够在较短的时间内返回,否则其他任务将不能及时的被调用到,也就达不到“实时”这一要求。静态变量保存该任务的各种状态,并且其他模块和该任务进行通信也是通过置取这些静态变量来实现的。本系统中软件的多任务结构如图2.3所示:可以说定时器中断处理函数就是本设计
26、中多任务的核心,即任务调度器。以下是定时器0中断处理函数的程序清单:/图2.3 多任务结构示意图/定时器0中断处理函数/每4毫秒中断一次/产生时钟节拍9哈尔滨工程大学本科生毕业论文/负责维护一个系统时间变量和任务调度/#define TIME_OVERLOAD 3960 /定时器计数初值 /记录时间的结构的定义typedef structuchar t_ms; /毫秒数0-99uchar t_100ms; /100毫秒数0-9 uchar t_sec; /秒数0-59uchar t_min; /分钟数,0-255TIME;TIME time; /记录系统时间的全局变量 void timer0(
27、void) interrupt 1/重装定时器0的计数初值TH0=(65536-TIME_OVERLOAD)/256; TL0=(65536-TIME_OVERLOAD)%256; /维护系统时间time.t_ms+=4;if(time.t_ms>99)time.t_ms=0;if(+time.t_100ms>9)time.t_100ms=0; if(+time.t_sec>59) 10哈尔滨工程大学本科生毕业论文time.t_sec=0;time.t_min+;/大约每50毫秒调用一次蜂鸣器任务/并且只有在需要发声时才调用/n_beep全局变量表示需要发出几声if(n_be
28、ep)&&(!(time.t_ms%52)beep2();/每4毫秒调用一次显示任务led_disp();/每16毫秒调用一次后轮直流电机驱动程序if(!(time.t_ms&0x0f)dianji();/每32毫秒调用一次里程检测任务if(!(time.t_ms&0x1f)licheng();/每16ms调用一次前轮转向电机驱动函数if(!(time.t_ms&0x0f)gw_dianji();以上的这段程序代码就是实现了任务的调度,和一般的多任务系统相比较有几点不同:(1) 任务之间的切换是通过函数的调用与返回实现的,当以上的这几个任务全调用一次之后
29、将进入主任务执行,主任务即main()函数所对应的任务。(2) 相应的任务上、下文的保存与恢复也不是由任务调度器实现的,而是由C语言编译器在函数调用时自动保存与恢复了主任务的上、下文;其他的任务不用保存上、下文,每次进入执行都是从相应函数的第一行开始,寄存器值也不用保存。11哈尔滨工程大学本科生毕业论文总之,采用以上这种软件结构,也可以实现多个任务并发运行,在timer0()函数中可以加进更多的任务,只要各个任务都能在一个较段的时间内执行一次并返回到timer0()函数中就可以。此外,关于RAM的分配是在编译的时候完成的,各个任务一般要用一些全局的静态变量来标识自身状态。在主控单片机上有以下几
30、个任务:(1) 主任务:main()开始的任务,很多功能都要在该任务中完成;(2) 蜂鸣器发声任务:beep2(),全局变量n_beep表示需要发出几个“嘀”声;(3) LED显示任务:led_disp(),LED数码管和LED发光二极管显示任务;(4) 后轮电机驱动任务:dianji(),目前只实现了电机的正、反转和停止功能,以后可以在该任务中加入PWM调速功能;(5) 前轮转向任务:gw_dianji(),控制步进电机让前轮转到指定的角度;(6) 里程检测任务:licheng(),检测小车的行驶里程。在从单片机上有四个任务:(1) 寻找光源方向任务:该任务作为从单片机的背景任务,由main
31、()函数调用,然后一直循环的执行;(2) 前超声测障任务:chaosheng_qian(),由从单片机的定时器中断处理函数timer0()每隔64毫秒调用一次;(3) 后超声测障任务:chaosheng_hou(),每64毫秒调用一次,和chaosheng_qian()的调用相差32毫秒;(4) 旋转机构转动任务:driver_dianji(),将寻找光源方向的转动机构旋转到指定的角度。2.4.3消息驱动结构考虑到系统中无论是操作者按下一个按键,还是遇到障碍或是寻 12哈尔滨工程大学本科生毕业论文找到光源,这些事件都有一个共同点,就是系统要对这些事件做出相应的处理或采取相应的措施。所以为了简化
32、编程,让这些事件在主任务中能得到统一的处理,可以给这些事件编上号,然后由一个消息搜集模块去等待各种消息。一旦某个事件发生,该模块马上给主任务返回该事件的编号,即消息值,让主任务按照消息值分类去处理消息。在消息搜集模块的头文件中定义了如下若干个消息:/消息的结构为:高三位,消息分类码,可以加快消息处理的速 /度;低五位,消息值。#define NULL 0/按键消息的定义#define MSG_K_QIAN 0x01#define MSG_K_HOU 0x02#define MSG_K_ZUO 0x03#define MSG_K_YOU 0x04#define MSG_K_TING 0x05#d
33、efine MSG_K_MODE 0x06#define MSG_K_FEN 0x07#define MSG_K_REC 0x08 /“前进”按键消息 /“后退”按键消息 /“左转”按键消息 /“右转”按键消息 /“停止”按键消息 /“模式选择”按键消息 /“漏粉”按键消息 /“记录路线”按键消息/“显示切换”按键消息 #define MSG_K_DISPMODE 0x09/超声避障消息#define MSG_QIANZHANG 0x14#define MSG_HOUZHANG 0x15 /前方出现障碍消息 /后方出现障碍消息#define MSG_NOQIANZHANG 0x16 /前方障碍
34、消失消息#define MSG_NOHOUZHANG 0x17/光源消息#define MSG_NOTFOUND 0x28#define MSG_FOUND 0x2913 /后方障碍消失消息 /没有发现光源消息 /发现光源消息哈尔滨工程大学本科生毕业论文/主从机之间的控制消息#define MSG_BEGINFIND 0x31#define MSG_ENDFIND 0x32extern uchar getmsg(void);extern uchar imgetch(void);消息搜集模块对外提供了两个接口函数:getmsg()函数一直等待到有消息时返回消息值;imgetch()函数立即返回按
35、键值,这是为了某些地方使用上的灵活而设置的。有了这个消息搜集模块后,主任务执行的大部分时间就会停留在getmsg()函数内等待消息,当有按键命令或遇到障碍时返回消息值,主任务对其进行相应的处理。主任务处理消息可以设计成如下结构:while(1)switch(getmsg() /消息分类处理 /消息循环 /开始寻找光源命令消息 /停止寻找光源消息case MSG_K_QIAN:break;case MSG_K_HOU:break;case 14 /“前进”按键消息处理 /“后退”按键消息处理哈尔滨工程大学本科生毕业论文2.5本章小结本章将系统拆分成了若干个功能模块,并且采用两个AT89C52单片
36、机来各分担一部分功能。在软件方面通过对结构的特殊设计,基本上实现了多任务并发运行,并且通过软件的分层结构将功能实现和具体的硬件分离开,再加上消息驱动的结构,这将给后续的各模块软件的设计带来方便。15哈尔滨工程大学本科生毕业论文第3章 各模块的详细设计3.1 红外遥控模块的设计3.1.1 遥控模块的功能需求遥控模块采用红外遥控方式,因为采用红外遥控抗干扰能力强,且不会对周围的无线电设备产生干扰电波,接口简单;但是红外方式遥控的距离比较有限,一般在几米之内。鉴于本设计不需要远距离遥控,所以综合考虑之下采用红外遥控较为合适。本设计中要求能用遥控器控制小车的前进、后退、左转、右转、停止、记录路线、寻找
37、光源等很多种功能;遥控距离在几米之内即可;并且要在遥控发射模块加入语音识别模块,能够实现声控功能。3.1.2 编解码芯片的选型由于在遥控端的按键数目有多个,而红外通道传输的只能是由0、1组成的串行代码,所以需要在发射端对按键进行“并-串”编码,在接收端相应的要进行“串-并”解码。码的波特率在收、发两端应该是一致的。方案一,使用MC145026、MC145027编解码芯片,其特殊的编码方式保证了信息的可靠传输,但是外围器件参数的选定较为烦琐,并且不能利用到其所提供的地址功能,也就是说传输的信息当中地址码部分是多余的,这就降低了信道的利用率。方案二,采用台湾瑞昱公司生产的专用于遥控车模的CMOS大
38、规模集成电路TX-2/RX-2,该编解码芯片具有5种控制功能,使用方便,所以本设计中采用了该方案。3.1.3 遥控模块原理图遥控模块发送部分原理如图3.1所示。TX-2的11脚和12脚之间接的电阻决定振荡频率;3脚接地;10脚接3-5V电源;14脚、1脚、4脚、5脚、6脚分别为5路发射控制端;9脚为发射指示端,当有按 16哈尔滨工程大学本科生毕业论文键按下时LED1发光提示;7脚为带载波的编码信号输出端,即编码信号已经内调制到38KHZ的载波上,该脚的信号通过一个NPN型三极管放大后可直接驱动红外发射二极管发射信号;8脚为不带载波的编码信号输出端。3.1.3 遥控发射端按键数目的扩展图3.1
39、遥控发射原理图图3.2 遥控接收电路图遥控接收电路如图3.2所示。RX-2的4脚和5脚之间接的电阻阻值要和TX-2的11脚、12脚间的电阻阻值接近,相差在20%之内方可正确的解码,本设计中这两个电阻都选用150K;2脚接地;13脚接3-5V电源;3脚接输入信号,由一体化红外接收头1838输出的信号 17哈尔滨工程大学本科生毕业论文需要加一个反向器才是正确的编码信号;6脚、7脚、10脚、11脚、12脚为5路遥控命令的输出端,分别和TX-2的5路输入端的状态相对应。另外,为了方便操作,将TX-2的5路功能扩展成9功能,即在遥控发射端可以接9个按键。这是通过对原先的5路输入进行组合得到的。3.1.4
40、 遥控电路与语音识别模块的连接语音识别模块采用凌阳61板,可以将SPCE061A单片机的输出引脚直接接到TX-2的输入端,与按键实现“线与”功能,这样遥控发射端的按键和凌阳单片机都可以通过遥控电路给小车发送命令。3.2 数码管、发光二极管显示模块的设计3.2.1 多位数码管扫描显示原理LED数码管是常用的显示器件,数码管的结构如图3.3所示。每一段相当于一个发光二极管,各个发光二极管的阳极或阴极接在一起,分别称作共阳极数码管和共阴极数码管。本设计中采用的是共阴极数码管。对于多个数码管的显示,有静态方式和动态扫描方式。本设计中用了4个共阴极数码管,并采用动态扫描方式显示。扫描显示的原理是将各个数
41、码管的段码端口分别并联在一起,由位选端口轮流选通各个数码管,并让每个数码管分别显示几毫秒,由于人眼的视觉惯性,看到的将是多个数码管同时在显示。3.2.2 工作状态指示灯及转向灯的设计为了直观的显示出小车的各种状态,设计了若干发光二极管指示 18 图3.3 LED数码管结构哈尔滨工程大学本科生毕业论文灯,有模式指示灯、漏粉指示灯、记录行驶路线指示灯、障碍指示灯、转向指示灯、倒车指示灯。3.2.3 显示模块电原理图显示模块原理如图3.4所示:显示任务由主单片机完成。P0.0和P0.1分别接到74LS164的串行数据输入端和移位脉冲端,产生数码管选通信号。P0.2接到74LS273的时钟端,锁存P2
42、口给出的段码数据。在完成锁存后由P2口直接驱动8个LED发光二极管,作为小车的状态指示。为了在74LS273锁存数据时避免状态指示灯的闪烁,用P1.2控制状态指示灯的选通。在74LS273锁存数据期间P1.2置高电平,全部熄灭状态指示灯;在锁存结束后,P2口给出正确的电平后再置P1.2低电平。同样在4个数码管扫描显示的过程中也应避免数码管的闪烁。3.2.4 显示任务的软件设计数码管的扫描显示和状态指示灯的显示流程如图3.5所示。由定时器0中断处理函数timer0()每隔4毫秒调用一次。这样每个数码管 19 图3.4 显示模块原理图哈尔滨工程大学本科生毕业论文轮流显示4毫秒,扫描一遍共需16毫秒
43、,也就是闪烁的频率大概是60Hz,人眼看到的就是4个数码管同时在显示了。图3.5 显示流程图3.3 声音提示功能的设计和状态指示灯的设计目的一样,给小车加入声音提示功能也是为了更直观地显示各种状态。在操作者通过遥控器给小车发出命令后,蜂鸣器将响一声,及时的提示操作者已经收到命令。这是挺有必要的,因为红外遥控方式并不是很可靠,有时操作者发出的遥控命令小车可20哈尔滨工程大学本科生毕业论文能是收不到的,因此操作者几乎处于“盲操作”状态。加入了声音提示功能后,小车有没有接收到遥控命令很容易就能知道了。此外,当小车遇到障碍时也会给出声音报警信号。本设计中所采用的蜂鸣器使用很简便,只需给其正负端加上5V
44、左右的电压就能够发出声音,在其内部已经含有一个振荡电路。工作电流大约10mA,因此可以用P0口的某一位直接驱动。声音提示功能被设计成一个单独的任务,原因是为了能让蜂鸣器响若干声,而同时单片机又能做其他的事情。其他模块通过beep(n)函数设置静态变量n_beep,告诉声音提示模块需要响n声,大约50毫秒响一声后自动会将n_beep减去1,一直减到0后不再发声。3.4 前轮转向模块的设计3.4.1 前轮转向的机械结构设计图3.6 遮挡校准方案前轮的机械结构如图3.6所示。通过步进电机来控制前轮转到一定的角度,并且采用了一个遮挡型的红外对管来检测转向的中点,以便在开机时能自动找到转向的中点。而且在
45、一定程度上可以校准由步进电机的失步带来的角度误差。3.4.2 前轮转向中点校准功能的设计21哈尔滨工程大学本科生毕业论文如图3.7所示,在红外发射管和接收管之间无遮挡时,电压比较器输出低电平;当之间有遮挡时,电压比较器输出高电平。当前轮转到中点时,细杆正好能遮挡住红外对管,此时电压比较器输出一个高电平;当前轮偏离中点时,输出低电平。3.4.3 步进电机驱动芯片本设计中前轮的转向电机是从废弃的软驱上拆卸下来的步进电机,体积小、性能好、使用方便,并且有专门的驱动芯片。驱动芯片引脚如图3.8所示,输入、输出信号如图3.9所示。当控制信号的周期为40Hz左右时,步进电机工作在最佳状态。3.4.5 前轮
46、转向任务的软件设计前轮转向设计成一个单独的任务,由定时器0中断处理函数每16毫秒调用一次。其他模块可以调用函数setdegree()设置需要转到的角度,然后由转向任务负责转到所指定的角度,在转向期间,单片机可以做其他的事情;其他模块还可以调用getnowdegree()取得当前转到的角度。22 图3.7 红外对管检测电路哈尔滨工程大学本科生毕业论文A-CH inB-CH in 图3.8 步进电机驱动芯片A BB图3.9 步进电机控制时序23哈尔滨工程大学本科生毕业论文3.5 后轮驱动模块的设计3.5.1 直流电机驱动芯片L298N后轮采用直流电机来驱动,和步进电机相比较直流电机驱动力大,电源利
47、用率高。因为直流电机的转速很高,所以必须加入齿轮箱进行减速,减速后驱动力变大,转速降低。小车的行驶速度大概在20cm/s左右。为了控制直流电机的正反转来实现小车的前进和后退,采用了直流电机驱动芯片L298N,引脚连接如图3.10所示。前进时5脚输入方波占空比为100%(即持续高电平),7脚为低电平;后退时5脚为低电平,7脚输入方波占空比为100%。另外,改变方波的占空比可以实现对直流电机的调速,由于本设计中小车速度已调整到较低水平,所以无需再调速。 100n100n图3.10 直流电机驱动芯片L298N24哈尔滨工程大学本科生毕业论文3.5.2 后轮驱动任务的软件设计本设计中只需控制后轮的正、
48、反转,无需调速,所以后轮驱动模块的设计要比前轮转向模块简单很多,并且不建立后轮驱动任务也能实现,因为只需要在改变小车的行进状态的时候改变单片机和L298N相连的I/O口电平状态即可。而本设计中将后轮驱动模块也设计成一个单独的任务是考虑到以后功能扩展的方便。以后可以通过PWM方式对后轮直流电机进行调速,那就必须把后轮驱动模块设计成一个单独任务了。目前本模块对其他模块主要提供了以下几个接口函数。setspeed(n),n>0时,小车前进;n<0时,小车后退;n=0时,小车停止。getspeed(),前进时返回1;后退时返回-1;停止时返回0。imstop(),该函数实现反电动势刹车功能
49、。3.6 里程检测模块的设计3.6.1 探头的选型与安装可以用这样的思路来设计里程检测模块,在车轴上安装一个圆盘,圆盘上均匀的开一些缺口,如图3.11所示:图3.11 里程检测遮光圆盘的设计车轮每转过一圈圆盘将把红外对管遮挡4次,小车匀速行驶时检测电路输出占空比为50%的方波。检测电路如图3.7所示。25哈尔滨工程大学本科生毕业论文3.6.2 软件消抖与硬件消抖的比较从检测电路输出的方波在其上升和下降沿处是不稳定的,有抖动,统计里程的原理是检测上升和下降沿的个数,抖动必将引起里程统计的误差,因此要考虑消抖。消抖的方法有多种,用硬件电路可以实现消抖功能,例如加一级施密特触发器或加一级单稳态触发器
50、都可以在一定程度上消除抖动。硬件消抖后的信号可以直接接到单片机的计数器引脚,利用单片机内部的计数器来统计里程,但这样的方法硬件代价比较大,而且需要使用单片机的计数器或中断才能实现。所以考虑用软件的方法来消除抖动。软件消抖的思路是每隔T1对原信号采样一次,假设抖动的时间宽度为T2,高、低电平的宽度为T,则只要满足T2<T1<(T-T2),采样后的信号上升和下降沿的个数就是正确的。每次采样的时候兼做沿的个数统计,将总数存放在静态变量li_cheng中,再乘上一个常数即是小车行驶的里程值。软件消抖的原理如图3.12所示:图3.12 软件消抖示意图3.6.3 里程检测任务的软件设计里程检测
51、模块被设计成一个独立的任务,由定时器0的中断处理函数每隔32毫秒调用一次,也就是说采样的时间间隔为32毫秒,这 26哈尔滨工程大学本科生毕业论文基本上能够满足T2<T1<(T-T2)的关系。该模块对外提供了以下几个接口函数:void licheng(void):里程检测任务函数,由定时器0的中断处理函数调用,完成采样和上升沿、下降沿的个数统计;unsigned int getlicheng(void):获取里程值函数,单位为上升和下降沿的个数,后轮每转过1/8圈对应一个上升或下降沿;unsigned int getlichenglimi(void):该函数也是获取里程值,单位是厘米
52、;void setlicheng(unsigned int lc):设置里程值函数。由于记录里程值的变量是unsigned int型,所以表示的里程值范围为:0-65535(沿个数),大约是1366米,对于本设计而言,这个范围是足够了。3.7 超声测距模块的设计3.7.1 超声测距的理论依据超声测距的依据是超声波在空气中以一定的速度传播,遇到障碍后声波反射回来,被超声波接收传感器检测到,根据发射和接收到回波之间的时间差t就可以计算出障碍的距离,计算公式是:S=·t/2。图3.12 超声测距原理图3.7.2 超声发射电路发射电路要求能给出40KHz的方波,可以由硬件电路振荡产生,27哈尔滨工程大学本科生毕业论文也可以用软件产生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 港口集装箱装卸区施工合同
- 铁路桥梁外墙保温施工合同范本
- 2024年度农田水利工程进度与质量监控合同3篇
- 矿井安全监测系统拉管施工合同
- 2024年度汽车贷款贷后信用评级及动态调整合同3篇
- 建筑隔音劳务分包合同模板
- 烟草制品行业伤害处理规范
- 校园防恐安全协议
- 2025汽车购销合同协议
- 广西壮族自治区河池市十校协作体2024-2025学年高一上学期第二次联考数学试题(解析版)
- 五年级上册英语人教PEP版课件书面表达
- 中国常用汉字大全
- PPT:增进民生福祉提高人民生活品质
- 开具红字发票情况说明
- 2022 年奥赛希望杯二年级培训 100题含答案
- 水利工程建设汇报材料(通用3篇)
- 10篇罪犯矫治个案
- 中央企业商业秘密安全保护技术指引2015版
- 艾草种植基地建设项目可行性研究报告
- 留守儿童一生一档、联系卡
- GB/T 2007.2-1987散装矿产品取样、制样通则手工制样方法
评论
0/150
提交评论