遥控小汽车的设计研究6.21.doc

电气电子毕业设计134哈尔滨工程大学遥控小汽车的研究设计

收藏

资源目录
跳过导航链接。
电气电子毕业设计134哈尔滨工程大学遥控小汽车的研究设计.rar
网站
论文
遥控小汽车的设计研究
遥控小汽车的设计研究6.21.doc---(点击预览)
遥控小汽车程序
压缩包内文档预览:(预览前20页/共61页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:516737    类型:共享资源    大小:200.15KB    格式:RAR    上传时间:2015-11-12 上传人:QQ28****1120 IP属地:辽宁
3.6
积分
关 键 词:
毕业设计论文
资源描述:
电气电子毕业设计134哈尔滨工程大学遥控小汽车的研究设计,毕业设计论文
内容简介:
学 号 01081237 密 级 哈尔滨工程大学本科生毕业论文 遥控小汽车的设计研究 院 (系 )名 称 : 信息与通信工程学 院 专 业 名 称 : 电子信息工 程 学 生 姓 名 : 张洪 生 指 导 教 师 : 付永 庆 教授 2005 年 6 月nts哈尔滨工程大学本科生毕业论文 1 哈尔滨工程大学本科生毕业论文 遥控小汽车的设计研究 院 (系 ): 信息与通信工程学 院 专 业 : 电子信息工程 学 号 : 0 1 0 8 1 2 3 7 学 生 姓 名 : 张洪 生 指 导 教 师 : 付永 庆 教授 2005 年 6 月 nts哈尔滨工程大学本科生毕业论文 摘 要 根据题目要求,本设计采用 2 片 AT89C52 单片机构成主从式的控制系统,双机采用串行口进行通信。红外遥控部分采用遥控车模专用编、解码芯片 TX-2/RX-2,提高控制的可靠性;同时,在遥控发射端加入了用凌阳 61 板做的语音识别系统,能够完成语音遥控功能。采用红外传感器进行里程检测;超声波传感器进行障碍识别;感光电阻辅以步进电机控制的转动机构进行光源方向的检测,并能用软件控制小车行驶到光源附近。采用步进电机对小车的转向进行精确的控制,同时用红外传感器对转向的角度进行校正。此外,采用四位 LED 数码管和若干 LED 发光 二极管显示时间、行进的里程以及小车的各种状态;采用 AT24C08串行 EEPROM 记录小车的行驶轨迹,并能按照所记录的轨迹自动行驶。 本次设计基于完备的软硬件系统,很好的实现了小车语音遥控、任意曲线行驶、路线记录与重放、自动查找光源、自动避障,里程统计并发出指示信息等功能。 关键词: 单片机;超声波传感器;红外遥控;语音识别;凌阳 61 板 nts哈尔滨工程大学本科生毕业论文 ABSTRACT According 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 recognition 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 machinery 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 recorded. 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, etc Keywords: MCU; AT24C08; sensor; SPCE061A nts哈尔滨工程大学本科生毕业论文 目 录 第 1 章 绪论 1 1.1 概述 1 1.2 设计要求及主要功能介绍 1 1.2.1 手动控制功能 2 1.2.2 自动寻找光源功能 2 1.2.3 超声避障功能 2 1.2.4 记录路线与重放路线功能 2 1.2.5 声控功能 3 1.2.6 其他功能 3 1.3 MCS-51 系列单片机简介 3 1.4 凌阳 SPCE061A 精简开发板简介 5 第 2 章 系统总体设计 6 2.1 系统功能模块的划分 6 2.2 单片机数目的选定 6 2.3 系统原理框图 7 2.4 系统软件主要特色 7 2.4.1 软件分层结构 8 2.4.2 多任务结构 8 2.4.3 消息驱动结构 13 2.5 本章小结 15 第 3 章 各模块的详细设计 16 3.1 红外遥控模块的设计 16 3.1.1 遥控模块的功能需求 16 3.1.2 编解码芯片的选型 16 3.1.3 遥控模块原理图 16 nts哈尔滨工程大学本科生毕业论文 3.1.4 遥控电路与语音识别模块的连接 18 3.2 数码管、发光二极管显示模块的设计 18 3.2.1 多位数码管扫描显示原理 18 3.2.2 工作状态指示灯及转向灯的设计 19 3.2.3 显示模块电原理图 19 3.2.4 显示任务的软件设计 20 3.3 声音提示功能的设计 20 3.4 前轮转向模块的设计 21 3.4.1 前轮转向的机械结构设计 21 3.4.2 前轮转向中点校准功能的设计 22 3.4.3 步进电机驱动芯片 22 3.4.4 前轮转向任务的软件设计 22 3.5 后轮驱动模块的设计 24 3.5.1 直流电机驱动芯片 L298N 24 3.5.2 后轮驱动任务的软件设计 25 3.6 里程检测 模块的设计 25 3.6.1 探头的选型与安装 25 3.6.2 软件消抖与硬件消抖的比较 26 3.6.3 里程检测任务的软件设计 26 3.7 超声测距模块的设计 27 3.7.1 超声测距的理论依据 27 3.7.2 超声发射电路 27 3.7.3 超声接收电路 28 3.7.4 超声测距任务的软 件设计 29 3.8 光源方向探测模块的设计 30 3.8.1 旋转机构设计 30 3.8.2 亮度检测电路的选型与设计 31 nts哈尔滨工程大学本科生毕业论文 3.8.3 寻找光源方向任务的软件设计 32 3.9 行驶路线的记录与重放模块的设计 33 3.9.1 该模块的功能概述 33 3.9.2 AT24C08 串行 EEPROM 介绍 33 3.9.3 存储记录的格式 33 3.9.4 手动模式下记录行驶路线功能的软件设计 33 3.9.5 重放行驶路线功能的软件设计 34 3.10 双机串行通信模块的软件设计 35 3.10.1 通信方式的选型 35 3.10.2 双机串行通信的软件设计 35 3.11 语音识别功能的设计 36 3.11.1 凌阳语音压缩算法 37 3.11.2 语音识别模块的软件设计 37 3.12 本章小结 37 第 4 章 系统软件的设计 39 4.1 单片机的 C 语言程序设计简介 39 4.2 系统的三种工作模式 39 4.3 手动模式的设计 40 4.4 自动寻找光源模式的设计 40 4.4.1 功能分析 40 4.4.2 寻找光源的策略 41 4.4.3 自动寻找光源的软件设计 41 4.4.5 该功能模块存在的一些问题 41 4.5 走数字及路线重放模式的设计 44 4.6 本章小结 44 第 5 章 系统的组装、调试和测试 45 5.1 系统的组装、调试 45 nts哈尔滨工程大学本科生毕业论文 5.2 遥控距离的测试 45 5.3 时间显示功能的测试 45 5.4 里程显示功能的测试 46 5.5 超声测障碍功能的测试 46 5.6 走数字功能的测试 46 5.7 行驶路线记录与重放功能的测试 47 5.8 自动寻找光源功能的测试 47 5.9 语音识别功能的测试 47 5.10 本章小结 48 结论 49 致谢 50 参考文献 51 附录 52nts哈尔滨工程大学本科生毕业论文 1 第 1 章 绪论 1.1 概述 单片机以其强大的控制能力已经被广泛应用于诸多领域,配以各种接口传感器可以实现系统的智能化。无论是在工业控制领域、医疗卫生领域、还是在国防军事领域、航天航空领域,微控制器都起着举足轻重的作用。从最初的 8 位控制器到现在的 16 位、 32 位控制器都还有很大的发展和应用空间。 目前市场上已有很多 种用超声波传感器制作的产品,在汽车电子领域,用超声波传感器做的倒车雷达可以提高汽车行驶的安全性。对汽车驾驶员来说车身后方是一个视线的“死区”,倒车时得非常小心,倒车雷达的出现就解决了这一问题,当车身后方有障碍时能及时发出警告。 语音识别技术也日趋完善,在机器人领域,要想用语言和机器人“交谈”,首先就要解决语音的识别问题。可以用语音识别技术做成电话声控拨号、声控家电、儿童玩具等。语音识别技术还有待于进一步的发展。本设计中采用凌阳 61 板做的声控系统可以用语音控制小车的前进、后退、左转、右转、停止。 1.2 设计 要求及主要功能介绍 根据题目要求,本设计需要完成的以下几项功能: ( 1)红外遥控功能,启停、自动或手动; ( 2)前或后直线行进; ( 3)任意曲线行进; ( 4)测距避障功能; ( 5)显示行进距离; ( 6)精确查找光源。 nts哈尔滨工程大学本科生毕业论文 2 另外,在设计过程中又扩展了一些功能,比如声控功能、记录与重放行驶路线功能等。 1.2.1 手动控制功能 在手动控制模式下,可以控制小车的前进、后退、左转、右转、停止、漏粉、显示时间、显示里程,若在行驶过程中遇到障碍小车将自动停止,并发出声光警告信号。同时,在转弯或后退时相应的转向灯和倒车灯会闪 烁发光,小车接收到一个按键命令后除了执行相应的动作外蜂鸣器还会响一声,以告知操作者已收到了命令。 在手动控制模式下,还设置了一个记录行驶路线的开关。操作者按下这个开关后,先选择这一次记录的路线的名称,此后对小车的控制命令将被存入 EEPROM 中,直至操作者再按下一次这个开关结束这次路线的记录。记录的路线可在重放路线模式下重放。 1.2.2 自动寻找光源功能 在自动寻找光源模式下,小车可以自动查找光源的方向,然后自动行驶到光源的附近。在自动行驶过程中若遇到障碍,小车将自动采取一些避障措施避开障碍。此外在寻找过程 中操作者若按下“显示模式切换键”数码管显示的内容将在时间和里程之间切换,若按下“停止”键,小车将立即停止寻找光源,然后等待切换到其他模式。 1.2.3 超声避障功能 在手动模式、自动寻找光源模式、重放路线模式下超声测障模块始终工作。在前进时发现前方有障碍,或在后退时发现后方有障碍小车都将立即停车,并发出声光报警信号告知操作者。障碍检测的距离调整在 20 厘米内,即只有在 20 厘米之内有障碍时小车才会做出避让动作,在这个范围之外的障碍小车不予处理。 1.2.4 记录路线与重放路线功能 在手动模式下打开记录路线开关, 开始记录路线;在重放路线模式下选择重放的路线,开始重放指定的路线。在重放过程中遇到障碍nts哈尔滨工程大学本科生毕业论文 3 或操作者按下“停止”键将结束本条路线的重放,等待选择下一条需要重放的路线或选择另外一种模式。 1.2.5 声控功能 本设计采用凌阳 61 板做了声控系统。打开遥控器电源后开始训练语音命令,由于受到单片机内的 SRAM 容量的限制只能录制 5 条语音命令,分别是前进、后退、左转、右转、停止。当识别出某条语音命令时和直接按下相应的按键等价,红外发射电路都会给小车发出相应的命令。操作者在使用声控功能时有语音提示音,所以操作很简便、快捷。 1.2.6 其他功能 小车还具有走数字功能,即小车可按照事先由程序设置好的路线行走,并洒下粉末,显示出一个数字。 除此之外,小车上还有左、右转向灯,倒车灯,障碍指示灯,模式指示灯,蜂鸣器报警电路,小车状态一目了然。 1.3 MCS-51 系列单片机简介 MCS51 单片机的基本结构如图 1.1 所示,其基本结构包括: 8 位 CPU; 片内震荡器及时钟电路; 32 根 I/O 口线; 外部存储器 ROM 和 RAM 寻址范围各为 64KB; 2 个 16 位定时器 /计数器; 5 个中断源, 2 个中断优先级; nts哈尔滨工程大学本科生毕业论文 4 全双工串 行口; 布尔处理器。 8051 单片机的存储器结构特点之一是程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式。这种结构的单片机称为哈佛结构单片机。 8051 单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器;片内数据存储器和片外数据存储器。 8051 单片机有 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 电路。 时钟电路 ROM RAM 定时器 /计数器 CPU 并行接口 串行接口 中断系统 TXD RXD INT0 INT1 P0P3 T0 T1 图 1.1 8051 单片机的基本结构 nts哈尔滨工程大学本科生毕业论文 5 1.4 凌阳 SPCE061A 精简开发板简介 凌阳 61 板是采用凌阳 16 位单片机为核心的开发系统,具有 DSP处理功能和语音处理功能。利用该开发板可方便的实现语音的录、放、识别等功能。 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 结构框图 nts哈尔滨工程大学本科生毕业论文 6 第 2 章 系统总体设计 2.1 系统功能模块的划分 按照设计要求,系统可以分为以下几个基本功能模块:遥控模块、显示模块、前轮转向模块、后轮驱动模块、超声测距避障模块、 寻找光源模块、记录与重放路线模块、里程检测模块等。 有些模块的功能是由硬件完成,有些模块的功能由软、硬件配合完成,有些模块则是由软件、硬件、机械三部分共同完成。 将系统拆分成以上的这些基本功能模块后,再根据各个模块所要完成的功能分别去设计,也就是按照“逐步求精”的思想去设计本系统,这将使设计工作细化,也有助于制定进度安排。 2.2 单片机数目的选定 由于系统需要完成的功能较多, CPU 的负荷也较重,再加之单片机内的定时器 /计数器、中断、 I/O 口等资源有限,如果选用一片单片机必将会给系统的设计带来一些困难。所以可 以考虑采用两个单片机构成主从式的结构,各分担一部分控制与运算功能,这样两个单片机可同时工作。所谓主从式结构是指从单片机片机根据主单片机发出的命令来完成某项功能,并且把结果报告给主单片机,这样的结构在某种程度上可以简化系统。 主单片机负责红外遥控接收、显示、小车的运动以及处理遥控命令等功能;从单片机则主要负责超声测距、检测光源方位这两项比较费时的功能,在探测到障碍或探测到光源时将有关信息报告给主单片机进行处理,并由主单片机来采取相应的措施。 本设计中采用了两片 AT89C52 单片机,通过串行接口通信。因为两个单 片机之间的距离很近,所以串行口可以工作在较高的波特率上,可以让串行口工作在方式 2,其特点是其波特率高,并且波特率可以直接从晶振 32 分频、或 64 分频而得到,不需要占用定时器资源。 nts哈尔滨工程大学本科生毕业论文 7 2.3 系统原理框图 系统原理框图如图 2.1 所示: 2.4 系统软件主要特色 软件在一个智能系统中扮演着举足轻重的作用,软件设计的好坏直接关系着整个系统的性能。目前已经有很多种嵌入式实时多任务操作系统,如: Linux、 RTX51 及 UC/OS 等,可以更有效的利用系统的各种资源,简化编程,缩短开发周期。 签于本系统采用 AT89C52 单片机为控制器,本身的各种资源都很有限,引入一个操作系统代价太大,所以考虑直接来优化系统的软件结构,同样可以达到“多任务”、“实时”等要求。 2.4.1 软件分层结构 为了便于编程,将逻辑控制层和具体的硬件相分离开是很有必要主控单片机 从单片机 遥控接收 显示模块 里程检测 路线记录 漏粉控制 前轮转向 超声探测障碍 光源方向探测 后轮驱动 串行通信 遥控发射 语音识别 图 2.1 系统原理框图 按键 nts哈尔滨工程大学本科生毕业论文 8 的。硬件驱动层的软件负责直接操作硬件,并且给上层的软件提供一定的接口,这样有助于上层的软件实现更复杂的功能,并且系统的硬件有所改动时也只需改动相应的驱动模块即可。 本系统中的 LED 显示模块、前轮转向模块、后轮驱动模块、 AT24C08 存取模块、寻光源转动机构都做 成了一些独立的模块,并且给外部提供了一些接口函数,来实现对这些硬件或机械部件的高级操作。 分层结构如图 2.2 所示: 软件的分层结构是很多系统中普遍采用的一种软件结构,比如 TCP/IP 协议就是一种典型的分层结构。 WINDOWS、 LINUX等系统中也几乎把所有的系统硬件进行了抽象,这样上层的软件就不必关心硬件的细节,可以调用相应的模块提供的服务即可,这样可把更多的精力放在高级功能的实现上。 2.4.2 多任务结构 为了充分利用单片机的 CPU,内存等资源,本系统中引入了多任务的软件结构,即从宏观上来看单片机同时在做 多件事情。分析一般的多任务系统的软件结构,系统的核心是任务调度器,在适当的时候任务调度器将保存当前任务的现场,并且恢复将要运行的任务的现场,并让其投入运行。简单的说,一般的多任务系统是任务调度器循环的调用各个需要执行的任务,进而可以更有效的利用系统的各种资源。从这里得到启发,可以用定时器每隔一定的时间中断一次,在中断处理函数中依次调用一次各个任务所对应的函数,并且各个函数都逻辑控制层 硬件驱动层 硬件设备 置、取全局变量 图 2.2 软件分层结构示意图 操作硬件 nts哈尔滨工程大学本科生毕业论文 9 能在一个较短的时间内返回,这样在某段时间内,各个任务所对应的函数都能够被执行到,就好像多个任务同时运行了。还有一点需要说明,就是各个任务 是由一些函数和一些静态变量组成。函数由定时器中断处理函数定期的调用一次,并且有个前提就是这个函数能够在较短的时间内返回,否则其他任务将不能及时的被调用到,也就达不到“实时”这一要求。静态变量保存该任务的各种状态,并且其他模块和该 任务进行通信也是通过置取这些静态变量来实现的。 本系统中软件的多任务结构如图 2.3 所示: 可以说定时器中断处理函数就是本设计中多任务的核心,即任务调度器。以下是定时器 0 中断处理函数的程序清单: / /定时器 0 中断处理函数 /每 4 毫秒中断一次 /产生时钟节拍 系统复位 初始化 主 任 务 设计 成 无 限循环结构 定时器0 中断处理函数 任务 1 任务 2 任务 3 任务 n 图 2.3 多任务结构示意图 nts哈尔滨工程大学本科生毕业论文 10 /负责维护一个系统时间变量和任务调度 / #define TIME_OVERLOAD 3960 /定时器计数初值 /记录时间的结构的定义 typedef struct uchar t_ms; /毫秒数 0-99 uchar t_100ms; /100 毫秒数 0-9 uchar t_sec; /秒数 0-59 uchar t_min; /分钟数, 0-255 TIME; TIME time; /记录系统时间的全局变量 void timer0(void) interrupt 1 /重装定时器 0 的计数初值 TH0=(65536-TIME_OVERLOAD)/256; TL0=(65536-TIME_OVERLOAD)%256; /维护系统时间 time.t_ms+=4; if(time.t_ms99) time.t_ms=0; if(+time.t_100ms9) time.t_100ms=0; if(+time.t_sec59) nts哈尔滨工程大学本科生毕业论文 11 time.t_sec=0; time.t_min+; /大约每 50 毫秒调用一次蜂鸣器任务 /并且只有在需要发声时才调用 /n_beep 全局变量表示需要发出几声 if(n_beep)&(!(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) 任务之间的切换是通过函数的调用与返回实现的,当以上的这几个任务全调用一次之后将进入主任务执行,主任务即 main()函数所对应的任务。 (2) 相应的任务上、下文的保存与恢复也不是由任务调度器实现的,而是由 C 语言编译器在函数调用时自动保存与恢复了主任务的上、下文;其他的任务不 用保存上、下文,每次进入执行都是从相应函数的第一行开始,寄存器值也不用保存。 nts哈尔滨工程大学本科生毕业论文 12 总之,采用以上这种软件结构,也可以实现多个任务并发运行,在 timer0()函数中可以加进更多的任务,只要各个任务都能在一个较段的时间内执行一次并返回到 timer0()函数中就可以。此外,关于 RAM的分配是在编译的时候完成的,各个任务一般要用一些全局的静态变量来标识自身状态。 在主控单片机上有以下几个任务: (1) 主任务: main()开始的任务,很多功能都要在该任务中完成; (2) 蜂鸣器发声任务: beep2(),全局变量 n_beep 表示需要发出几个“嘀”声; (3) LED 显示任务: led_disp(),LED 数码管和 LED 发光二极管显示任务; (4) 后轮电机驱动任务: dianji(),目前只实现了电机的正、反转和停止功能,以后可以在该任务中加入 PWM 调速功能; (5) 前轮转向任务: gw_dianji(),控制步进电机让前轮转到指定的角度; (6) 里程检测任务: licheng(),检测小车的行驶里程。 在从单片机上有四个任务: (1) 寻找光源方向任务:该任务作为从单片机的背景任务,由main()函数调用,然后一直循环的执 行; (2) 前超声测障任务: chaosheng_qian(),由从单片机的定时器中断处理函数 timer0()每隔 64 毫秒调用一次; (3) 后超声测障任务: chaosheng_hou(),每 64 毫秒调用一次,和chaosheng_qian()的调用相差 32 毫秒; (4) 旋转机构转动任务: driver_dianji(),将寻找光源方向的转动机构旋转到指定的角度。 2.4.3 消息驱动结构 考虑到系统中无论是操作者按下一个按键,还是遇到障碍或是寻nts哈尔滨工程大学本科生毕业论文 13 找到光源,这些事件都有一个共同点,就是系统要对这些事件做出相应的 处理或采取相应的措施。所以为了简化编程,让这些事件在主任务中能得到统一的处理,可以给这些事件编上号,然后由一个消息搜集模块去等待各种消息。一旦某个事件发生,该模块马上给主任务返回该事件的编号,即消息值,让主任务按照消息值分类去处理消息。 在消息搜集模块的头文件中定义了如下若干个消息: /消息的结构为:高三位,消息分类码,可以加快消息处理的速 /度;低五位,消息值。 #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 /“停止”按键消息 #define 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 /前方障碍消失消息 #define MSG_NOHOUZHANG 0x17 /后方障碍消失消息 /光源消息 #define MSG_NOTFOUND 0x28 /没有发现光源消息 #define MSG_FOUND 0x29 /发现光源消息 nts哈尔滨工程大学本科生毕业论文 14 /主从机之间的控制消息 #define MSG_BEGINFIND 0x31 /开始寻找光源命令消息 #define MSG_ENDFIND 0x32 /停止寻找光源消息 extern uchar getmsg(void); extern uchar imgetch(void); 消息搜集模块对外提供了两个接口函数: getmsg()函数一直等待到有消息时返回消息值; imgetch()函数立即返回按键值,这是为了某些地方使用上的灵活而设置的。 有了这个消息搜集模 块后,主任务执行的大部分时间就会停留在getmsg()函数内等待消息,当有按键命令或遇到障碍时返回消息值,主任务对其进行相应的处理。 主任务处理消息可以设计成如下结构: while(1) /消息循环 switch(getmsg() /消息分类处理 case MSG_K_QIAN: /“前进”按键消息处理 break; case MSG_K_HOU: /“后退”按键消 息处理 break; case nts哈尔滨工程大学本科生毕业论文 15 2.5 本章小结 本章将系统拆分成了若干个功能模块,并且采用两个 AT89C52 单片机来各分担一部分功能。在软件方面通过对结构的特殊设计,基本上实现了多任务并发运行,并且通过软件的分层结构将功能实现和具体的硬件分离开,再加上消息驱动的结构,这将给后续的各模块软件的设计带来方便。 nts哈尔滨工程大学本科生毕业论文 16 第 3 章 各模块的详细设计 3.1 红外遥控模块的设计 3.1.1 遥控模块的功能需求 遥控模块 采用红外遥控方式,因为采用红外遥控抗干扰能力强,且不会对周围的无线电设备产生干扰电波,接口简单;但是红外方式遥控的距离比较有限,一般在几米之内。鉴于本设计不需要远距离遥控,所以综合考虑之下采用红外遥控较为合适。 本设计中要求能用遥控器控制小车的前进、后退、左转、右转、停止、记录路线、寻找光源等很多种功能;遥控距离在几米之内即可;并且要在遥控发射模块加入语音识别模块,能够实现声控功能。 3.1.2 编解码芯片的选型 由于在遥控端的按键数目有多个,而红外通道传输的只能是由 0、1 组成的串行代码,所以需要在发射端对 按键进行“并 -串”编码,在接收端相应的要进行“串 -并”解码。码的波特率在收、发两端应该是一致的。 方案一,使用 MC145026、 MC145027 编解码芯片,其特殊的编码方式保证了信息的可靠传输,但是外围器件参数的选定较为烦琐,并且不能利用到其所提供的地址功能,也就是说传输的信息当中地址码部分是多余的,这就降低了信道的利用率。 方案二,采用 台湾瑞昱公司生产的专用于遥控车模的 CMOS 大规模集成电路 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 脚为发射指示端,当有按nts哈尔滨工程大学本科生毕业论文 17 键按下时 LED1 发光提示; 7 脚为带载波的编码信号输出端,即编码信号已经内调制到 38KHZ 的载波上,该脚的信号通过一个 NPN 型三极管放大后可直接驱动红外发射二极管发射信号; 8 脚为不带载波的编码信号输出端。 3.1.3 遥控发射端按键数目的扩展 遥控接收电路如图 3.2 所示。 RX-2 的 4 脚和 5 脚之间接的 电阻阻值要和 TX-2 的 11 脚、 12 脚间的电阻阻值接近,相差在 20%之内方可正确的解码,本设计中这两个电阻都选用 150K ; 2 脚接地; 13 脚接3-5V 电源; 3 脚接输入信号,由一体化红外接收头 1838 输出的信号图 3.1 遥控发射原理 图 图 3.2 遥控接收电路图 nts哈尔滨工程大学本科生毕业论文 18 需要加一个反向器才是正确的编码信号; 6 脚、 7 脚、 10 脚、 11 脚、12 脚为 5 路遥控命令的输出端,分别和 TX-2 的 5 路输入端的状态相对应。 另外,为了方便操作,将 TX-2 的 5 路功能扩展成 9 功能,即在遥控发射端可以接 9 个按键。这是通过对原先的 5 路输入进行组合得到的。 3.1.4 遥控电路与语音识别模块的连接 语 音识别模块采用凌阳 61 板,可以将 SPCE061A 单片机的输出引脚直接接到 TX-2 的输入端,与按键实现“线与”功能,这样遥控发射端的按键和凌阳单片机都可以通过遥控电路给小车发送命令。 3.2 数码管、发光二极管显示模块的设计 3.2.1 多位数码管扫描显示原理 LED 数码管是常用的显示器件,数码管的结构如图 3.3 所示。每一段相当于一个发光二极管,各个发光二极管的阳极或阴极接在一起,分别称作共阳极数码管和共阴极数码管。本设计中采用的是共阴极数码管。 对于多个数码管的显示,有静态方式和动态扫描方式。本设计中用 了 4 个共阴极数码管,并采用动态扫描方式显示。扫描显示的原理是将各个数码管的段码端口分别并联在一起,由位选端口轮流选通各个数码管,并让每个数码管分别显示几毫秒,由于人眼的视觉惯性,看到的将是多个数码管同时在显示。 3.2.2 工作状态指示灯及转向灯的设计 为了直观的显示出小车的各种状态,设计了若干发光二极管指示图 3.3 LED 数码管结构 nts哈尔滨工程大学本科生毕业论文 19 灯,有模式指示灯、漏粉指示灯、记录行驶路线指示灯、障碍指示灯、转向指示灯、倒车指示灯。 3.2.3 显示模块电原理图 显示模块原理如图 3.4 所示: 显示任务由主单片机完成。 P0.0 和 P0.1 分别接到 74LS164 的串行数据输入端和移位脉冲端,产生数码管选通信号。 P0.2 接到 74LS273的时钟端,锁存 P2 口给出的段码数据。在完成锁存后由 P2 口直接驱动 8 个 LED 发光二极管,作为小车的状态指示。为了在 74LS273 锁存数据时避免状态指示灯的闪烁,用 P1.2 控制状态指示灯的选通。在74LS273 锁存数据期间 P1.2 置高电平,全部熄灭状态指示灯;在锁存结束后, P2 口给出正确的电平后再置 P1.2 低电平。同样在 4 个数码管扫描显示的过程中也应避免数码管的闪烁。 3.2.4 显示任务的软件设计 数码管的扫描显示和状态指示灯的显示流程如图 3.5 所示。由定时器 0 中断处理函数 timer0()每隔 4 毫秒调用一次。这样每个数码管图 3.4 显示模块原理图 nts哈尔滨工程大学本科生毕业论文 20 轮流显示 4 毫秒,扫描一遍共需 16 毫秒,也就是闪烁的频率大概是60Hz,人眼看到的就是 4 个数码管同时在显示了。 3.3 声音提示功能的设计 和状态指示灯的设计目的一样,给小车加入声音提示功能也是为了更直观地显示各种状态。在操作者通过遥控器给小车发出命令后,蜂鸣器将响一声,及时的提示操作者已经收到命令。这是挺有必要的,因为红外遥控方式并不是很可靠,有时操作者发出的遥控命令小车可返回 熄灭状态指示灯 显示模式是? 显示缓冲区置成时间 显示缓冲区置成里程 数码管段码置成 0,消除移位时的闪烁 选通下一个数码管 闪烁处理 锁存段码 显 示 个 状 态指示灯 时间模式 里程模式 用户模式 图 3.5 显示流程图 nts哈尔滨工程大学本科生毕业论文 21 能是收 不到的,因此操作者几乎处于“盲操作”状态。加入了声音提示功能后,小车有没有接收到遥控命令很容易就能知道了。此外,当小车遇到障碍时也会给出声音报警信号。 本设计中所采用的蜂鸣器使用很简便,只需给其正负端加上 5V左右的电压就能够发出声音,在其内部已经含有一个振荡电路。工作电流大约 10mA,因此可以用 P0 口的某一位直接驱动。 声音提示功能被设计成一个单独的任务,原因是为了能让蜂鸣器响若干声,而同时单片机又能做其他的事情。其他模块通过 beep(n)函数设置静态变量 n_beep,告诉声音提示模块需要响 n 声,大约 50毫 秒响一声后自动会将 n_beep 减去 1,一直减到 0 后不再发声。 3.4 前轮转向模块的设计 3.4.1 前轮转向的机械结构设计 前轮的机械结构如图 3.6 所示。通过步进电机来控制前轮转到一定的角度,并且采用了一个遮挡型的红外对管来检测转向的中点,以便在开机时能自动找到转向的中点。而且在一定程度上可以校准由步进电机的失步带来的角度误差。 3.4.2 前轮转向中点校准功能的设计 图 3.6 遮挡校准方案 nts哈尔滨工程大学本科生毕业论文 22 如图 3.7 所示,在红外发射管和接收管之间无遮挡时,电压比较器输出低电平;当之间有遮挡时,电压比较器输出高电平。当前轮转到中点时,细杆正好能遮挡住红外对管,此时电压比较器输出一个高电平;当前轮偏离中点时,输出低电平。 3.4.3 步进电机驱动芯片 本设计中前轮的转向电机是从废弃的软驱上拆卸下来的步进电机,体积小、性能好、使用方便,并且有专门的驱动芯片。驱动芯片引脚如图 3.8 所示,输入、输出信号如图 3.9 所示。当控制信号的周期为 40Hz 左右时,步进电机工作在最佳状态。 3.4.5 前轮转向任务的软件设计 前轮转向设计成一个单独的任务,由定时器 0 中断处理函数每 16毫秒调用一次。其他模块可以调用函数 setdegree()设置需要转到的角度,然后 由转向任务负责转到所指定的角度,在转向期间,单片机可以做其他的事情;其他模块还可以调用 getnowdegree()取得当前转到的角度。 图 3.7 红外对管检测电路 nts哈尔滨工程大学本科生毕业论文 23 图 3.8 步进电机驱动芯片 A B B A-CH in B-CH in 图 3.9 步进电机控制时序 nts哈尔滨工程大学本科生毕业论文 24 3.5 后轮驱动模块的设计 3.5.1 直流电机驱动芯片 L298N 后轮采用直流电机来驱动,和步进电机相比较直流电机驱动力大,电源利用率高。因为直流电机的转速很高,所以必须加入齿轮箱进行减速,减速后驱动力变大,转速降低。小车的行驶速度大概在20cm/s 左右。 为了控制直流电机的正反转来实现小车的前进和后退,采用了直流电机驱动芯片 L298N,引脚连接如图 3.10 所示。 前进时 5 脚输入方波占空比为 100%(即持续高电平), 7 脚为低电平;后退时 5 脚为低电平,7 脚输入方波占空比为 100%。另外,改变方波的占空比可以实现对直流电机的调速,由于本设计中小车速度已调整到较低水平,所以无需再调速。 100nF 100nF 图 3.10 直流电机驱动芯片 L298N nts哈尔滨工程大学本科生毕业论文 25 3.5.2 后轮驱动任务的软件设计 本设计中只需控制后轮的正、反转,无需调速,所以后轮驱动模块的设计要比前轮转向模块简单很多,并且不建立后轮驱动任务也能实现,因为只需要在改变小车的行进状态的时候改变单片机和 L298N相连的 I/O 口电平状 态即可。而本设计中将后轮驱动模块也设计成一个单独的任务是考虑到以后功能扩展的方便。以后可以通过 PWM 方式对后轮直流电机进行调速,那就必须把后轮驱动模块设计成一个单独任务了。 目前本模块对其他模块主要提供了以下几个接口函数。 setspeed(n), n0 时,小车前进; nS480S240 3.11.2 语音识别模块的软件设计 语音识别模块能够预先训练 5 条语音命令,分别是“前进”、“后退”、“左转”、“右转”和“停止”。因为在语音识别模块的使用过程中有语音提示音,所以使用很简便、明了。 每次打开遥控器电源后都会提示“开始训练语音命令”,然后依次提示训练以上所列的 5 条语音命令。全部训练成功后,进入语音命令的识别状态。当识别出某条语音命令后,给出提示音,并且通过红外发射模块向小车发送命令,控制小车动作。 语 音识别模块的程序流程如图 3.23 所示: 3.12 本章小结 本章介绍了各模块的功能及软、硬件的设计思路和
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:电气电子毕业设计134哈尔滨工程大学遥控小汽车的研究设计
链接地址:https://www.renrendoc.com/p-516737.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!