【《可实现导航控制的智能小车硬件和软件设计案例概述》4000字】_第1页
【《可实现导航控制的智能小车硬件和软件设计案例概述》4000字】_第2页
【《可实现导航控制的智能小车硬件和软件设计案例概述》4000字】_第3页
【《可实现导航控制的智能小车硬件和软件设计案例概述》4000字】_第4页
【《可实现导航控制的智能小车硬件和软件设计案例概述》4000字】_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页可实现导航控制的智能小车硬件和软件设计案例概述目录TOC\o"1-3"\h\u13529可实现导航控制的智能小车硬件和软件设计案例概述 1100851智能小车硬件设计 1218761.1硬件架构 1273001.2控制单元选型 2316631.2.1树莓派控制器 227311.2.2STM32最小系统 4152521.3功能模块的选型 5252621.1.1电源模块 514231.1.2驱动模块 6172301.1.3避障模块 825841.1.4定位模块 971921.1.5IMU模块 10163092智能小车软件设计 13250752.1树莓派连接路由器上网 13179592.2小车端程序设计 1487602.2.1树莓派与STM32通信 14306372.2.2STM32驱动程序设计 14284832.2.3避障程序设计 15168462.2.4导航程序设计 16314162.3PC端操作平台 171智能小车硬件设计1.1硬件架构智能电路的硬件电路设计对整个系统的稳定可靠运行非常重要,系统性能和对各个模块的要求也不尽相同。尽量选用功耗低、成本低的硬件模块,以降低成本,但需要保证各部分功能的可靠实现。因此,应充分考虑主控芯片与其它硬件模块的比较和选择。该车的硬件系统采用树莓派控制器作为控制核心,配备了避障模块、GPS模块、IMU等功能模块,并以STM32控制直流电机驱动的两轮的驱动结构,构成了智能电机的硬件系统。通信模块采用树莓派无线局域网模块,用于树莓派与主机之间的数据交换。GPS模块负责获取小车位置坐标信息。IMU模块负责测量车辆方向,避障模块保护小车的安全以及路况的检测。图3-1所示为系统硬件框图。图3-1系统硬件框图本设计以树莓派3B为控制单元主板嵌入式Linux操作系统。树莓派控制与STM32单片机的最小系统通信控制驱动模块。电源模块为单片机和树莓派以及各功能模块提供可靠的1.3V、5V和12V的不同电压[13]。由于单片机IO端口输出电流小,两台直流电机采用两个驱动模块驱动,实现了车轮的运动。无线通信模块采用无线局域网模块,用于树莓派与主机之间的数据交换。GPS模块负责获取小车位置坐标信息。IMU模块测量小车方向。避障模块由三个超声波组成。1.2控制单元选型1.2.1树莓派控制器RaspberryPie是arm上的一块微型计算机主板,使用SD卡作为内存和硬盘,Raspberrypie3b配备1.2Ghz64位四核处理器(armcortex-a531.2Ghz64位四核armv8CPU)[14]。添加802.11B/g/N无线网卡。最大驱动电流增加到2.5A。主原理图如图3-2所示。实物如图3-3所示。还需要为树莓派控制器配置一个扩展板,用来连接功能模块。扩展板如图3-4所示。图3-2树莓派主原理图图3-3树莓派实物图图3-4树莓派扩展板实物图1.2.2STM32最小系统STM32是基于Armv7体系结构和Cortex-M3内核的32位MCU,是低端MCU市场的关键产品。为考虑本设计的成本最低,且能达到设计的基本要求,本设计采用主芯片为STM32F103RBT6作为设计的选型。STM32F103RBT6主频最高可以达到72MHZ。R=64脚,B=128K字节的闪存存储器,属于中容量产品[15]。原理图如3-5所示。实物如图3-6所示。图3-5STM32最小系统原理图图3-6STM32最小系统实物图1.3功能模块的选型1.1.1电源模块本设计在汽车四轮支架底盘上安装一个电池座,用于放置一个型号为Dc-12680的电池,为单片机和外围模块提供可靠的电源。在整个智能车系统中,电源电压分别为1.3V、5V以及12V,这些电压转换电路均采用不同的电压转换电路。稳压电路由三端稳压集成电路LM7805以及稳压控制器REG1117-1.3组成[16]。可供不同的电压给各个模块,保障了小车的正常运转。模块原理图如图3-7所示。图3-7电源模块原理图1.1.2驱动模块本设计驱动模块采用型号L298N的一款电机驱动器,内部原理图如图3-8所示。电机则选择两个JGA25-370减速电机,电机自带霍尔编码器。组成驱动模块。驱动模块原理图如3-9所示,实物图如图3-10所示。电机实物图如图3-11所示。L298N,是一款高压电机驱动器,可以驱动直流发动机和步进发动机,一个驱动芯片可以控制两台直流发动机同时执行不同的动作,在6V~46v的电压范围内提供2A电流[17]。具有过热和反馈功能,通过主控芯片的I/O输入调整其控制状态,然后驱动发动机前后运动,操作方便,稳定性好,可以满足直流发动机的大电流工作状态。图3-8L298内部原理图图3-9驱动模块原理图图3-10L298N电机驱动模块实物图图3-11JGA25-370实物图1.1.3避障模块考虑到超声波避障有死角,所以小车采用三个超声波扩大探测范围,让死角变小,以达到最优的避障。选用HC-SR04这一型号超声波。达到成本的最优化。hc-sr04的工作电压为5V,测量角度小于或等于15度,记录范围为2cm~450cm,最高精度可达0.2cm。hc-sr04操作简单,控制口的高电平在10us以上,然后在接收口输出高电平,只要有输出,计时器启动。如果它变低,可以读取时间值。这个值是可以计算距离的电压时间[18]。连续的周期性测量可以用来确定移动测量值。原理图如3-12所示。HC-SR04实物如图3-13所示。图3-12HC-SR04避障模块原理图图3-13HC-SR04超声波实物图1.1.4定位模块GPS模块的精度与模块的价格挂钩,考虑到本设计的成本,因此选用GT-U7模块。Gt-u7模块具有高灵敏度、低功耗、微型化、高跟踪灵敏度等特点,大大扩展了其位置覆盖范围,可在狭窄的天空、茂密的丛林等地实现高精度定位,GPS接收器模块无法定位的地方。该模块具有高灵敏度、低静态漂移、低功耗等优点[19]。GT-U7双模定位模块选择关键智能定位模块,获取智能车的经纬度信息。该模块是一个双模定位模块,具有体积小、性能优良、成本低、定位时间短、GPS和BD定位等优点。定位精度可达2sscep,可立即找到小车位置。电源与1.3V和SV兼容[19]。GT-U7模块支持不同速率的串口通信波特率,通过串口与raspberrypie进行通信。PPS时钟脉冲的输出引脚与s口连接的模块状态指示灯相连。通过该程序,可以对1216f8bd模块1PPS端口的输出特性进行编程,并能方便地判断PPS指示灯La。此外,该模块还配备了一个可充电电池batxh414,以确保星历数据不会在断电后丢失。它有一个IPEX天线接口连接各种有源天线和一个外部有源天线室内定位。采用Rt9193-33调压器,使其工作电压在1.6V到5V之间[20]。板载E2PROM可以保存参数数据,NEMA输出格式兼容NEO-6M。GT-U7的原理图如图3-14所示。其实物如图3-15所示。图3-14GT-U7定位模块原理图图3-15GT-U7实物图1.1.5IMU模块本文设计的小车需要指明方位和加速度检测,因此采用一款型号为GY-85的IMU模块。Gy85由三个微控制器组成,包括三轴加速度计adxl345b、三轴陀螺仪itg3205和三轴电子罗盘hmc5883l,用于测量加速度、方向和磁感应强度。其中X轴、Y轴是水平方向的,Z轴是垂直方向的[21]。它广泛应用于移动设备中的仪表、车载GPS测线、飞机模型定位、机器人定位和导航等场景。在根据上位机发送的经纬度数据行驶的过程中,需要一个测量方位角的电子罗盘模块。本设计采用了GY-85IMU中电子罗盘模块HMC5883L,Hmc5883l电子罗盘模块是一种平面数字罗盘模块,具有输入电压低、功耗低、容量小、成本低等特点。GY-85通过串口与树莓派。它具有高精度和高稳定性。它可以测量任何位置的方位以及如何输出侧面测量结果。它还具有磁偏转补偿和记忆功能。断电时可以节省校准系数和磁偏转[22]。GY-85原理图如图3-15所示,其工作电压为1.3V。实物如图3-14所示。图3-15GY-85IMU模块原理图图3-14GY-85IMU模块原理图

4智能小车软件设计2.1树莓派连接路由器上网为了实现小车户外运行,所以我们必然要采用无线通信的手段发送指令给小车,所以这就需要我们为树莓派配置无线网通信。树莓派内置了WIFI我们第一次启动了树莓派的时候,必然使用网线,配置无线网设置,配置成功之后的每一次使用都可以采用无线通信的方式。raspberrypie的Linux操作系统可以通过xshell软件发出命令,查看raspberrypie识别的WiFi:sudoiwlistWLAN0扫描其中的ESSID是我们关注的,它是WiFi的名字,找到自己路由WiFi的名字。如图4-1所示。如图4-1所示。使用nano工具配置WiFi信息:sudonano/etc/WPA\supplicant/WPA\在这个文件最后添加wifi的名字和密码,命令如下:network={ssid="******"key_mgmt=WPA-PSKpsk="******"}重启树莓派就可以完成对树莓派无线网的配置。图4-1xshell查看无线设置界面2.2小车端程序设计2.2.1树莓派与STM32通信本设计以树莓派为控制单元主板嵌入式Linux操作系统,通过串口和辅助驱动控制单元STM32和电机驱动模块通信。所以树莓派与STM32通信是本文所要解决的问题之一。流程图如图4-2所示。图4-2树莓派与STM32通信流程图2.2.2STM32驱动程序设计电机驱动电路由L298芯片控制,可同时控制两台发动机,输出电流可达2A。目前应用最为广泛的直流驱动H型全桥电路,它可以方便地实现直流电对应的四象限功能,即正向运动、正向旋转和反向制动。由STM32控制L298控制电机驱动,程序流程图如图4-3所示。驱动程序通过对电机发出的PWM的占空比增减调节来控制电机的速度,加速时占空比增加10/300,当需要减速时占空比减少10/300,如果占空比超出则按原始值输出,达到控制电机的速度。图4-3小车驱动程序流程图2.2.3避障程序设计超声波避障模块根据机器人的运动轨迹检测机器人前方的障碍物,并根据测距函数返回距离值进行路径修正。如果探测器探测到障碍物,就意味着汽车不能在它前面通过。它需要后退一定距离,然后左转检测。如果左侧有障碍物,则右转并转到没有障碍物的方向继续行驶。探测器没有发现任何障碍物,汽车继续笔直行驶。程序流程图如图4-4所示。小车避障采用超声波避障,当超声波检测到前方小车则停止向前,继续检测小车左右两边障碍情况,当小车右边有障碍物左边没有时,小车则向左行驶,当小车左边有障碍物右边没有时,小车则向右行驶时,当两边和前方都有障碍物时,小车则选择后退向左方行驶直到避开障碍物为止。 图4-4避障程序流程图2.2.4导航程序设计智能车的精确定位是导航的前提。智能车在上位机地图界面正常定位后,根据用户期望的目的地进行路径规划,获取目的地和通过点的经度数据。通过协议将数据传输到车辆末端后,树莓派对路径数据进行分析和检索,为实现导航功能提供依据。在车载导航过程中,GPS模块实时获取车辆位置信息,比较目标点的经纬度,计算车辆与目标点的实际距离和方位角。通过距离和方位角的重复比较,控制其避开障碍物并行驶到目标点,如图4-5所示,得到下一个目标点。如果车辆与目标点之间的距离超过5米,则第一步通过电子罗盘获取车辆的方位,以避开障碍物。然后,反复调整车辆的行驶方向,并与经纬度数据计算出的角度进行比较,直到方位角匹配误差控制在适当的范围内,车辆朝着目标点行驶,避开障碍物。当车辆与目标点之间的距离达到误差范围后,确定下一个目标点并重复上述步骤,直到车辆到达目标点。图4-5导航程序流程图2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论