ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:362.20KB ,
资源ID:11699553      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11699553.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(走迷宫的小车.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

走迷宫的小车.docx

1、走迷宫的小车电子设计大赛走迷宫的小车摘要:本系统采用ST公司ARM7芯片STR710FZT6为核心进行设计,合理利用了该芯片上丰富的资源,实现小车智能蔽障、寻迹,信息无线传输等功能, 从而在远端PC上对获取的信息进行实时显示。本系统针对现实中出现的对于未知区域实时探测的需求,适当进行了简化,利用迷宫进行模拟。 其中,有一台智能小车,和一个PC端。小车在迷宫行进的过程中,会自动蔽障、选择路线,并通过无线模块将行进的信息实时传送给远端PC机 ,从而在PC端显示出小车在迷宫中行进的路线。为了达到在迷宫中行走的目的,我们要设计蔽障和迷宫算法,为了使小车的信息能够实时传输到远端PC机,就需要设计一套较为

2、实用和可靠的无线通信协议。 目录1 引言. 42 功能概述及方案设计. 62.1功能概述. 62.2 具体方案设计. 72.2.1 系统总体方案设计. 72.2.2小车控制模块设计. 72.2.2.1 小车车体的设计. 72.2.2.2 小车控制器模块. 82.2.2.3 电源模块. 82.2.2.4 稳压模块. 82.2.2.5 电机驱动模块. 82.2.2.6 小车控制模块设计. 82.2.2.7 车速检测模块设计. 82.2.3 超声波模块设计. 92.2.4 无线通信模块设计. 102.2.4.1 硬件选型. 112.2.4.2 通信协议介绍. 152.2.4.3 利用ARM芯片上的资

3、源. 183 系统硬件设计. 193.1硬件设计概述. 193.2 电机驱动模块设计. 193.3 测速模块设计. 193.4 超声波模块设计. 203.5 无线通信模块. 213.6 电源模块硬件设计. 224 系统软件设计. 244.1 下位机控制模块. 244.1.1 模块描述. 244.1.2 系统资源使用情况. 254.1.3 主控模块设计. 254.1.4小车控制模块. 264.1.5 超声波模块. 264.1.6 无线通信模块. 264.2 PC机处理模块. 265 现在所完成的工作. 276 结束语. 271 引言当今社会,科学技术日新月异,时代前进的步伐越迈越宽,应用自动化设

4、备,计算机处理,现代化通讯,数字化信息,现代化显示设备等高新技术而建立的现代化智能,监控等系统已经得到充分的发展与应用,智能机器人也就应运而生。同时,在建设以人为本的和谐社会的过程中,智能服务机器人能够完成考古发掘,海底揭密,宇宙探索等危险作业,以保证人身安全。国家中长期科学和技术发展规划纲要一文指出:智能服务机器人是在非结构环境下为人类提供必要服务的多种高技术集成的智能化装备。以服务机器人和危险作业机器人应用需求为重点,研究设计方法、制造工艺、智能控制和应用系统集成等共性基础技术。重点研究低成本的自组织网络,个性化的智能机器人和人机交互系统、高柔性免受攻击的数据网络和先进的信息安全系统。20

5、062020年,既是国家中长期技术发展计划实现阶段,也是我们最具有活力和最激情洋溢的时段。于是,我们五个人认识到自己的位置,都对智能机器人的研发和制作有着强烈的好奇心,有着共同爱好和理想,想用自己的青春和智慧挥写这段焕发青春活力的乐谱。凭借参加本次大赛的机会,我们能够对嵌入式系统的开发有进一步的学习和理解。ST公司的ARM7芯片STR710FZT6具有丰富的资源,内嵌256+16KB的FLASH和64KB的SRAM。APB桥它有2个分立的桥:APB1是针对快速外设,例如I2C、 UART、USB、CAN、SPI、HDLC;APB2是针对慢速外设,例如EIC、 XTI、GPIOs、ADC12、T

6、imer、RTC、Watchdog。特色:APB桥控制着外设时钟开启和控制所有外设的复位。EIC的特色:多个中断通道的硬件操作,中断优先级、自动向量化;32个可屏蔽中断,映射在ARM的中断查询引脚IRQ;每一个IRQ中断都有16个可编程优先级别;支持硬件中断嵌套(15级);2个可屏蔽中断,映射到ARM的快速中断查询引脚FIQ,既无优先级也不会自动向量化,等等。我们的系统主要分为控制小车模块、超声波模块、无线通信模块。前两模块主要是用到控制IO口和定时器,后一模块主要用到SPI总线和串口。所以我们的系统没有外扩存储器,也没有USB等,对这块ARM的利用率不高,但我们看重的是这块芯片的性价比以及强

7、大的可扩展性,因此选择这块ARM芯片是满足我们要求的。2 功能概述及方案设计2.1功能概述 我们设计的“走迷宫的小车”这一套系统主要是让小车自主的从迷宫的入口走到出口,并把行走的轨迹传输给电脑,绘制出走出迷宫的路线。在这一过程中,小车通过前、左、右三个超声波模块实现对周围障碍物的实时测距来实现避障功能;在小车的行走过程中,也会实时地把小车的移动距离、速度等信息通过无线传输反馈给电脑;在转弯的时候就会把转弯的角度、移动距离等信息反馈给电脑,让电脑根据所接受到的信息绘制小车的行走路线。另外,无线传输这一模块还具有自动组网的功能,在多台小车之间也可以通信,这样,多台小车同时探测这一迷宫能大大的提高效

8、率。若一下图为迷宫,则完成效果图如下: 2.2 具体方案设计2.2.1 系统总体方案设计 我们将系统分为小车控制模块、超声波模块、无线通信这三个大模块。其中小车控制模块包括小车以及轮胎上的红外对管模块;无线通信又包括小车这一端和与电脑相连的一端。 图1.系统框图2.2.2小车控制模块设计2.2.2.1 小车车体的设计 我们是购买玩具电动车。购买的玩具电动车具有组装完整的车架车轮、电机及其驱动电路。玩具电动车具有如下特点:首先,玩具电动车电机都是现成的,在上面架一块板子就可以放下电路板,各种传感器的安装也较方便。其次,所购买的电动车是由两电机控制的,一个负责左边两轮子,另一个负责右边两轮子。这样

9、可以进行原地90-180度转弯。2.2.2.2 小车控制器模块 控制器模块采用的是ST公司的一片ARM芯STR710FZT6,该芯片大大满足我们的需要,片上资源很多,扩展性很好。2.2.2.3 电源模块 采用12V蓄电池为直流电机供电,将12V电压降压、稳压到5V,为外围芯片供电,再降压稳压到3.3V给ARM芯片供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能,所以我们采用锂电池供电。2.2.2.4 稳压模块 我们利用lm7805这块芯片将12V的锂电池降压到5V,再利用lm117这块芯片将5V降压到3.3V。2.2.2.5 电机驱动模块 采用专用芯片L298N作为电机驱动芯片。L29

10、8N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。2.2.2.6 小车控制模块设计 小车的控制是由专用芯片L298N来完成的,我们用六个IO口来控制小车的运动,其中两个IO口是产生PWM波,控制电机的速度;另外四个IO口又分成两组,分别控制两个电机的正反转,来实现小车的变速前进、转弯等动作。2.2.2.7 车速检测模块设计 对于小车的车速检测及距离确定的一般原理是这样的:小车的行驶过程是一个连续的时间过程,它的时间、路程、速度都是连续的。我们用t表示时间,S表示路程,表示瞬时

11、速度,那么它们的数学定义为:,小车的平均速度为: 。将上面的式子离散化,假设在一个很短的时间t内小车行驶了S的路程,则小车的即时速度 。直接得到小车的速度的传感器很难实现,但是小车行驶的距离是容易测量的,因为车轮在行驶的过程中一直在旋转。假设车轮的周长为L,在时间t内转动了N圈,则小车行驶的距离为:S=NL。在实际过程中,我们需要把车轮的转动信息转换成电信号,就是使用速度传感器得到脉冲信号。如果小车转动一周得到一个信号,则很显然的,距离测量的最大误差就是车轮的周长。因此,我们有必要在车轮转动一周的过程中得到尽可能多的计数脉冲。假设在车轮转动一周的过程中均匀地得到m个脉冲信号,那么距离测量的最大

12、误差就变为L/m,如果在时间t内得到的计数脉冲为N个,那么小车行驶的距离为:。因此,在小车的速度和距离的检测过程中最需要知道的就是车轮旋转时产生的脉冲个数。速度传感器有多种,我们采用的是反射式光电传感器。原理如下:由发射管TX发射的红外线经被检测物表面反射,反射光被接收管RX接收,接收管将接收的红外线信号转换成电信号。被检测物表面的光滑程度和表面颜色影响反射光的强弱,反射面越不光滑,颜色越暗,则反射光越弱。在这里,我们就是要利用它对颜色敏感的特点,当检测物表面为黑色时,反射光很弱,接收端检测到的光线可以忽略,使接收端呈现一种状态,例如开关管截止;当被检测物表面为白色时,反射光强烈,发射端发射的

13、红外线被接收端全部接收,使接收端呈现另一种相反的状态,例如开关管开通。这两种相反的状态表现在电路中,就是高低电平组成的脉冲信号。在我们的系统中,我们在每个轮子外表面涂上了黑白相间的条纹,每个反射式光电传感器由一个IO口来得到脉冲信号。通过前面叙述的原理,我们就可以算出小车的速度和行走的距离。当然这个速度和距离存在着误差,这个误差在我们的系统中是允许的。2.2.3 超声波模块设计 超声波模块是用来测距并且避障用的,我们没有选用现有的超声波模块,而是自己根据超声波的原理,利用超声波探头和一些外围电路而搭建起超声波模块。超声波测距的原理如下: 首先超声波传感器向空气中发射声脉冲, 声波遇到被测物体反

14、射回来, 若可以测出第一个回波达到的时间与发射脉冲间的时间差t,利用,即可算得传感器与反射点间的距离s , 测量距离,若sh 时,则d s。系统中有三个超声波模块,其中每个都有接收探头与发射探头,这三个模块分别位于小车的前、左、右处,来进行测距以达到避障的效果。 对于放射探头,我们选用的是发射频率为40KHz的一种,该类型现在应用较普遍,电路也比较简单,只需给发射端40KHz的脉冲,发射探头即不断的往外发送超声波。 对于接收探头,因为接收的超声波信号很微弱而且考虑到干扰的因素,接收端有放大电路与滤波电路。当接收到超声波时,IO口即为高电平。若此IO支持外部中断,则可在MCU中引发中断。在我们的

15、系统中,三个超声波模块接收端都有外部中断功能的IO口来确定是否检测到超声波。因此通过计算测的距离障碍物的距离然后就可以判断是否转弯。2.2.4 无线通信模块设计 无线通信模块的作用非常重要,它为小车的行走指明了方向,也拓展了小车的其他功能。当小车行走时,每隔一定时间将数据譬如速度、行走距离、转弯角度等信息传送给PC机,当下次小车行走到原地时,小车该如何走呢?假如还是照以前的路线走这样小车的行走则成为了死循环,而这时如果PC机通过以前记录的信息发送一条指令给小车,则小车就可以选择另外一条路进行探测了。我们的无线模块是仿Zigbee的,但又不同于它。有了此无线通信模块,我们的小车系统就可以不是一辆

16、小车而是多辆小车共同探测迷宫了。原理如下:2.2.4.1 硬件选型硬件方面我们的射频芯片采用Chipcon公司的CC1100芯片,用于数据的无线收发,工作频率为433MHz,它有64字节RX和TX数据FIFO;SPI用于MCU与射频芯片CC1100之间的通信;直流电源及电源保护电路是必不可少的部分;RS232串口及电平转换提供主芯片与PC机的接口;阻抗匹配网络和天线用于433MHz信号的放大和收发。CC1100的主要特性:电压范围-0.3V-3.6V、频率波段:300-348MHz、400-464MHz和800-928MHz、高灵敏度(1.2kbps下-110dBm,1数据包误差率)、可编程控

17、制的数据传输率,较低的电流消耗(RX中15.6mA,2.4kbps,433MHz)、单独的64字节RX和TX数据FIFO、高效的SPI接口、对同步词汇侦测的芯片支持,地址检查,自动CRC处理、OOK和ASK整型支持、2-FSK,GFSK和MSK支持、支持传输前自动清理信道访问(CCA),即载波侦听系统、支持每个数据包连接质量指示。内部结构如下图:匹配电路介绍:阻抗匹配的意义在于,使信号源传送到负载的功率最大。这就要求信号源阻抗必须等于负载的共轭阻抗,即:Rs+jXs=RL-jXL匹配效果如图 35图 35匹配电路效果图常用的阻抗匹配电路有:1.L型匹配;2.型匹配;3.T型匹配;4.多L型匹配

18、。L型匹配电路是阻抗匹配电路的基础。L型匹配电路图如图 36图 36典型L型匹配电路其中匹配电路参数值计算如下:图 37L型匹配电路计算若RSRL :因为有:= 同理有,当RS0,则表示元件为电容:。若B0,则表示元件为电感:。若X0,则表示元件为电容:。CC1100芯片的输出阻抗为Zin=116-j*41,天线阻抗为50欧。本射频电路的匹配电路中使用了四级L型匹配电路。各元器件功能及参数值描述如表格 31表格 31匹配电路元件参数元件名称433MHz值,封装及材质功能C51100nF10%,0603,X7R数字部分的片内电压调节器的100nF退耦电容 C81 33P/X7R,0603晶体负载

19、电容C10139P/NPO,0603晶体负载电容C121/C131 3.9P/NPO,0603RF平衡转换器/匹配电容 C122 6.8P/NPO,0603RF滤波/匹配电容 C1235.6P/NPO,0603RF滤波/匹配电容 C124 220P/NPO,0603RF平衡转换器DC模块电容 C125 1nF/NPO,0603RF LC滤波DC模块电容(只在在天线中有DC通路时需要)L121/L131/L12327nHRF平衡转换器/匹配电感(便宜的多层类型)L12222nHRF LC滤波/匹配电感(便宜的多层类型) R171 56k1%,0603内部偏电流参考的56千欧电阻 XTAL 26.

20、000MHz晶振,武汉佳泰公司2.2.4.2 通信协议介绍本系统采用“星型”组网方式,与PC机相连的通信/控制模块(即主控板+射频板)称为主节点,与小车相连的通信/控制模块称为子节点。PC机控制主节点以完成组网及与各子节点的数据传输。主节点可与所有子节点相互通信,子节点只能同主节点进行通信、子节点之间不能相互通信。主节点与子节点的工作示意图如下:图 32工作示意图工作大致流程描述:1. 主节点/子节点启动过程: 1)主节点无线模块上电后,立即向PC机发送“上电完成报告”; 2)PC机向主节点回复“上电回复报告”,指定节点类型为主节点。 3)子节点上电后,直接将自身指定为子节点;2. 主节点与各

21、子节点间组网过程: 1)指定结束以后主节点开始启动组网过程,等待PC机向其发送“组网结束命令”; 2)主节点收到“组网结束命令”后,发送停止组网命令给各子节点(注意:协议中将系统设计为一主带多子,现在只实现一主带一子),子节点无线模块收到主节点无线模块停止组网的控制命令后,进入数据通信状态,即可以开始发送数据。 主节点无线模块停止组网完成后,向PC 机发送“网络空闲报告”,指示PC机网络空闲,可以进行数据通信。3. PC机与各子节点间数据通信过程: 1)PC机通过串口将数据或控制命令交给主节点; 2)主节点无线模块将数据或控制命令通过无线方式传给子节点无线模块;4. 各子节点与PC机间数据通信

22、过程: 1)子节点将自身运动信息或异常情况整理成数据报文;2)子节点无线模块将数据通过无线方式传给主节点无线模块;3)主节点通过串口将数据转交给PC机;5. 在3、4数据通信过程中,PC机可向主节点无线模块发送检测、重启、复位等控制命令,主节点无线模块收到这些命令后,分别对各子节点进行相应处理。层设计示意图如下:各层帧格式示意图如下:1.物理层帧格式物理层在上层数据前端加入Frame Length,在后端加入CRC两部分。由芯片硬件提供CRC校验功能。 2.MAC层帧格式MAC层在上层数据前端加入Dst Address,Src Address ,Frame Type,SequenceNO四部分

23、。MAC层产生ACK帧,DATA部分长度为0,用于完成该层保证可靠传输的任务。 3.应用层帧格式应用层数据为各种串口传送的数据和各种控制命令。应用层实现以下功能1串口数据的解析和组装2组网和网络状态的维护应用层报文格式如下:2.2.4.3 利用ARM芯片上的资源 CC1100是通过SPI总线与ARM通信的,ARM上提供了这一资源。另外,无线通信模块需要大量的定时器,定时器的数量与通信质量密切相关,但是我由于资源的有限,而且我们对精度的要求不是很高,所以我们采用了一个定时器来模拟出多个定时器的方法,这样无线通信丢包率很小。3 系统硬件设计3.1硬件设计概述 本系统硬件不是很复杂,大多都是外围电路

24、,没有较复杂的集成芯片。硬件方面也分为以下几个模块:电机驱动模块、测速与距离的确定模块、超声波模块、无线通信模块以及电源模块。3.2 电机驱动模块设计电机的驱动是由集成芯片L298来实现的,由六个IO口经四个与门再由L298输出四路信号来控制两电机。电路图如下: 其中IO口P1.2与P1.7是定时器1和3的输出端,用来产生PWM波;P2.2、P2.3、P2.4、P2.5是普通IO口,用来控制电机运动的方向。3.3 测速模块设计测速模块主要是由st168和轮胎的黑白间条组成。st168的外形及内部结构如下图:这块电路图如下:我们的系统共有四个这样的模块,每个轮子上一个。只需一个IO口来记录来冲数

25、目。这四个IO口分别是P2.14、P2.15、P2.0、P2.1。3.4 超声波模块设计 超声波模块分为发射端与接受端,电路是参考网上提供的电路,接收最大距离是满足我们的系统的,效果还可以,若进一步修改此电路,则效果会更理想。发射端电路如下:接收端电路如下:接受端的IO口是具有外部中断功能的,当接收到信号,MCU就会触发中断,这时记录时间间隔然后就可以计算出距离障碍物的距离了。我们在小车的前、左、右都安装了发射与接收探头,让小车全方位避障。另外,可能由于障碍物特殊的形状,可能会造成混叠的现象,即一发射端发射的超声波被另外一个接受端接受,造成测距失败。这一问题还有待按照实际情况来解决,比如让发射

26、与接收探头成一定的角度等方法。3.5 无线通信模块无线通信模块主要由射频芯片CC1100构成,而我们采用的是它的典型电路,电路图如下: 它与ARM的通信是通过SPI总线来实现的,它的接口主要有SI、SCLK、SO、GDO0、GDO2、CSn。其中SI、SCLK、SO即为利用SPI总线通信的几个接口,另外GDO0的作用是当接受到报文的时候由低置为高,GDO2的作用是当开始发送一个报文时由低置为高,这两个接口给MCU提示报文的接受与发送是否完成。CSn用来作片选。3.6 电源模块硬件设计电源模块主要是经过两次降压,分别供给ARM芯片的外围芯片和ARM芯片,这两块电路如下:4 系统软件设计4.1 下

27、位机控制模块4.1.1 模块描述下位机控制模块是本系统的一个重要组成部分,它包括系统配置模块,主控模块,无线通信模块,小车控制模块以及超声波模块。各模块功能如下:系统配置模块提供整个系统(主要为ARM芯片)的初始化及中断配置功能;主控模块封装了main 函数,提供下位机程序运行的大环境;无线通信通信模块提供下位机与PC 机以及通信模块的通信途径;无线通信模块通过控制通信模块以提供本系统所需的无线连接功能;小车控制模块控制小车的运动,并检测其速度及行走距离。我们的软件部分总体框图如下:程序结构图如下:4.1.2 系统资源使用情况 RAM 的使用 定义部分参数变量,程序运行时的必要堆栈空间 单片机

28、内部Flash 的使用 存放程序。 中断源的使用 定时器0中断 用于通信协议的构造 定时器1中断 产生一路PWM脉冲 定时器2中断 产生40KHz的脉冲以及轮询四个红外对管 定时器3中断 产生一路PWM脉冲 外部中断 接收超声波,然后测距 SPI总线 与射频模块CC1100通信 串口 与电脑通信(扩展)4.1.3 主控模块设计 该模块提供了系统的主循环控制功能,包含系统的main主循环和中断处理部分。系统在一个主循环中不断运行,查询各个标志位,以实现各种功能,同时,中断处理中也会执行某些紧急操作,并置位某些标志位以指示系统进行某些操作。4.1.4小车控制模块 小车的控制模块主要分为直线运动与转

29、弯运动。小车在直线运动时每个一定时间间隔就发送报文给PC机。当小车发现距离障碍物的距离达到一数值时,它将转弯,而转弯的方向具体由障碍物来决定。定时器2不断的轮询st168从小车轮胎上的黑白间条上得到的信号,不断地调整两边轮胎速度的一致,因为小车的沿一条直线运动是很困难的,在运动时可能发生偏转,我们利用这种方法较少这种偏差。4.1.5 超声波模块 超声波模块主要是用来测距用的,当检测到距离障碍物很近时,就给主程序一个信号,提示要转弯了,而转弯的角度则通过不断的测距来实现,当距离稳定后则不再偏转。4.1.6 无线通信模块 无线通信模块主要是提供程序一些发送报文或接受报文的接口。4.2 PC机处理模块 PC机程序不断通过串口接受PC端射频模块传输过来的数据,其中包括小车运动的速度、距离和转弯时转过的角度,利用这些数据模拟出小车大概的行走路线,并且在程序界面上表现出来。5 现在所完成的工作 我们所完成的工作是对硬件的设计并作了些验证性试验,对于无线通信模块我们是用PIC单片机来实现通信的,效果不错,通信距离能达到50m(在无障碍的时候),所以在我们的小车系统里,为节约成本,连接在PC端的射频模块我们就采用与PIC单片机相连,然后通过串口与PC机通信;对于超声波模块,我们搭起了电路,但是效果不是很好,还有待改进;对于小车控制模块,我们能够正常的控制小车的运动和转

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1