智能声音跟随小车
(一) 选题背景 1
(二) 设计意义 1
二、 设计方案 2
三、 硬件设计部分 2
(一) 硬件的选择 2
(二) 硬件介绍 3
1. AT89S52单片机介绍 3
2. 红外对管 5
3. 直流电机驱动芯片L9110 5
(三) 硬件电路设计 6
1. 电源模块 6
2. AT89C52控制模块 6
3. 红外避障模块 7
4. 声音定位模块 7
5. 电机驱动模块 8
四、 软件设计部分 9
(一) 软件设计方案 9
1. 避障软件设计 9
2. 声源定位软件设计 9
(二) 声源定位程序流程框图 13
(三) 整体系统软件设计框图 14
五、 安装调试 14
(一) 硬件安装 14
(二) 软件调试 14
六、 总结 16
七、 参考文献 16
八、 致谢 17
九、 附录1总原理图 18
十、 附录2 PCB图 18
十一、 附录3元器件清单 19
十二、 附录4实物图 19
十三、 附录5程序代码 21
一、引言
(一)选题背景
本系统设计在当今遥控玩具汽车盛行的背景下,考虑到遥控汽车的遥控器容易坏,而且一些年龄较少的儿童不会使用遥控器,因此希望做出简单的能进行声源跟随并且能利用声音进行简单控制的玩具小车,以此代替遥控汽车面向年龄更小的儿童。
在对形 *景先生毕设|www.jxszl.com +Q: 3 5 1 9 1 6 0 7 2
形色色的玩具汽车的观察之后,发现如果是没有遥控器的这一个外部控制的遥控器的话大部分的玩具车都是不可以自己长时间的很好地在地面上运行,可能会应为遇到障碍停止运行,但是如果假如了遥控器之后,小车的行驶路径都会由遥控器控制,因此对年龄较小的儿童会产生很大的难度,想到这里就对玩具小车有了一些自己的想法,想通过自己的所学知识尝试一下可不可以做出一个可以设计出一个更加适合年龄更小儿童的玩具汽车。
从而可以给更多的儿童增加童年的快乐!!!
(二)设计意义
本应用系统设计的目的是通过在《单片机原理及应用》以及《Protel 99SE软件》课堂上学习的知识,以及查阅资料,培养学生一种独立学习的能力。并且用一种创新的思维,把学到的知识应用到日常生活当中。在设计的过程中,不断的学习,思考和同学之间的相互讨论,不断的总结,运用科学分析问题的方法解决所遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合,还可以同过本设计了解一些在外围电路上用到的相关的元器件的知识。全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下坚实的基础。
现在的一些玩具小车大多都是由遥控器控制小车,年龄小的儿童并不会使用,所以就想到有小车自己本身的能力去运动,减少了其他的一些复杂的外部的器件,可以由声音控制,小孩子可以通过发出一系列的声音小车就收到声音之后就会去寻找声源的位置,考虑到小车在找寻声音的时候会遇到障碍就在小车的内部加了避障模块,可以让小车更加顺利的找到小孩子的位置
本项目主要实现功能及创新点:本设计与传统的玩具汽车有了一个很大的区别,在对小车的控制不再局限与需要外部的遥控器去控制小车“前”“后”“左”“右”的运行路径。小车可以通过声音进行控制,能够自己确定声源的位置,自己通过计算,小车可以自己去寻找声源的位置,不再像传统的遥控小车一样需要遥控器去遥控小车的前行路径,小车自己确定声源位置后找到可以到达声源的最短的路径,在寻找的路径中可能会遇到一些障碍,小车会自己对障碍进行计算“自己绕过障碍”之后继续向声源的位置追踪并到达声源的位置。
二、设计方案
本设计将系统分为五个模块,分别为电源供电模块,单片机AT89C52控制模块,避障模块,声源定位模块和驱动模块。通过MIC的引脚对声源定位模块的信号进行扫描,通过算法计算判断声源位置,通过MCU引脚驱动直流电机驱动芯片使小车进行拐弯行进,同时MCU又对避障模块进行扫描,当前方遇到障碍使,MCU引脚电平将发生改变,此时再通过MCU控制驱动电路进行避障。
电源模块关键点:将提供的电源电压控制为6V。
避障模块关键点:将红外发生器和接收器放在小车最前端实现避障。
声源定位模块关键点:将声音接受器即MIC成三角排列,可通过接受声音的先后顺序,通过算法确定声源方向。
系统总体方案设计如图(1)所示。
图(1)系统方案图
三、硬件设计部分
(一)硬件的选择
本设计选STCAT89C52单片机作为主芯片以外,还要用其他外围元件来实现相应的功能,所以还要对其他电子元件做一个合理的选择和布置。在设计过程中结合实际情况对相关硬件做了如下选择:电源模块用7805稳压5v为用其对接下来的控制模块,声源定位模块和避障模块进行供电。这样的硬件选择可以实现小车的一系列功能,又是一个简洁的选择结果,而且成本低,较容易入手。
(二)硬件介绍
1. AT89S52单片机介绍
AT89S52 具有以下标准功能:8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
单片机引脚图
VCC : 电源 GND: 地
P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8 个 TTL 逻辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0 口也被作为低 8 位地址/数据复用。在这种模式下,P0 具有内部上拉电阻。在 flash 编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校时,需要外部上拉电阻。
P1 口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外部计数输入(P1.0/T2)和时器/计数器 2的触发输入(P1.1/T2EX),具体如下表所示。
本设计是以STCAT89C52单片机为核心,利用软硬件相结合的自动控制,由单片机作为核心控制器,通过声音定位模块检测确定声源方向,由电机驱动电路驱动电机运行,小车行驶,在行驶的路径上可能会遇到障碍,由小车的红外对管的避障模块检测到小车前方有障碍的话,小车会通过单片机控制避开障碍继续扫描声源位置继续向声源位置前进一直到找到声源位置为止。
原文链接:http://www.jxszl.com/dzxx/txgc/29521.html