智能探险车控制系统的设计与实现
2021-05-06张慧杰赵梦冉
李 罡,刘 庶,张慧杰,赵梦冉
(白城师范学院 机械与控制工程学院,吉林 白城 137000)
0 引言
智能探险车的研究、开发和应用涉及传感技术、电子技术、机械技术和智能控制技术等.智能探险车可以按照预先设定的程序,在某一环境中自主运行,可应用于科学勘探等领域,无需人为操控便可达到预期目标,将会是今后社会发展需求的一个新方向.智能机器人能够做很多事情,凡不适合由人直接完成的任务,均可由机器人来代替,并且不受温度、湿度等条件影响.尤其是在一些危险或恶劣的环境条件下工作,人类无法介入特殊情况下的任务,智能探险车就可以发挥它的作用.但目前这些方面的开发利用还不够完善,仍有许多地方等待着去开发研究.智能探险车作为一种应用型人工智能产品,它的开发前景非常巨大,相当于一个平台,可以在它的基础上搭载任何想要实现的功能.因此,设计一款多功能的、适应各种地形、各种场合的智能探险车,无论对于军事领域、科研领域还是生活领域都具有非比寻常的意义[1].
1 系统硬件开发
1.1 总体设计
智能探险车的主要功能是辅助进行扫雷、探测、侦察,并具有GPS导航功能,能够根据设定的路线进行勘测,同时能够自动规避障碍物.智能探险车采用了多种类型传感器,通过STM32 单片机进行控制,硬件系统主要包括主控模块、驱动模块和传感器检测部分等.本设计的研究内容是在目前智能小车基础上进行改进和完善,让它能够应用在多个领域,使探险车的工作效率更高,安全性更加有保障,完成扫雷、探测、侦察等一系列危险的工作任务[2].本设计的智能探险车系统结构框图如图1所示.
图1 智能探险车系统结构框图
1.2 主控模块
采用STM32F407单片机作为主控系统,STM32是32位微控制器,内部时钟系统强大,外部中断和定时器丰富便于控制,相比51 系列单片机,其运行速度更快,外设更加强大.能够实现对各个元器件的精准控制和接收处理器件反馈的外界信息,这对智能探险车的正常运行起着关键作用,因为智能探险车要实时精准监测外界环境,从而进行相应的动作应答[3].
1.3 驱动模块
系统驱动部分采用TB6612FNG电机驱动模块来驱动电机.该电机驱动模块可以同时对两个直流电机进行双向控制,有较强的输出能力,在运行性能和能耗方面也有一定优势,具有集成度高、体积小、高效率和高性能的特点.本探险车采用四轮驱动,保证了足够的动力,通过调节输入TB6612FNG 的PWM信号进行直流电机的调速,从而实现探险车基本的直行、转弯、后退运动功能[4].
1.4 避障模块
避障模块采用US-100 超声波测距模块进行测距避障.该避障模块可自行设置探险车的避障距离,探险车与障碍物之间距离小于避障距离时进行避障,并具有GPIO、串口等多种通讯方式,集成看门狗功能,性能稳定、工作可靠.给输入/输出口TRIG至少一个10 μs的高电平信号,模块会自动发送8个40 kHz的方波,自动检测是否有信号返回,然后输入/输出口ECHO 会输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间.从而利用如下公式计算出与障碍物的距离:
其中:d 表示探险车与障碍物的距离;t 表示高电平时间;v 表示声速(v 的取值为340 m/s).根据测出与障碍物的距离,实现单片机对探险车运动的控制及避障.
1.5 GPS导航模块
智能探险车需要具有自主导航功能,能够根据设定的路线进行勘测,通过GPS 导航,可以实现在地图中放置坐标点建立小车行驶路径,小车启动GPS智能导航后,根据地图中建立的行驶路线自动导航行驶.因此,选用ATK1218-BD GPS 北斗双模定位模块定位更快、更精准,该模块自带备用电池,可保存星历数据,掉电后重新上电,可在几秒内恢复定位[5].
1.6 摄像模块
探险车可实时观测周围环境,向监控终端回传图像信息.因此,采用市面所售的无线迷你型摄像机,体积小,安装简单,通过手机可实时观察未知的环境进行安全探测.同时,不需要网络也可实时拍摄,解决了户外探险无网络的难题.其带有夜视功能,当探险车进入未知洞穴也能够清晰观测内部环境.将摄像头安装在自由度为2 的舵机臂上,弥补了摄像头只能180°摄像的不足,通过遥控进行舵机的转动,实现360°无死角观察.
1.7 显示模块
显示模块采用IIC通讯OLED液晶屏模块,功能强大,能够显示探险车的行车信息,引脚少,便于布线.
1.8 机械装置
现有的一些智能车作业工作范围有限,往往只能在一些坡度较小、地势平缓的地带进行作业,遇到山高坡陡、险峻的地势就只能由人来完成.为了能更好地适应多种地形,在车身上安装了机械装置,能够翻越陡坡,越过窄沟,弥补以往智能小车只能在比较平坦地势作业的不足.机械装置由机械臂构成,能够模拟人手臂攀爬的动作在一些复杂地形上进行工作[6].
2 系统软件设计
2.1 主程序模块
本系统通过拨码开关来选择运行程序.当拨到开关1运行GPS自主导航行驶功能,按照规划好的路线行驶,在地图中放置坐标点建立小车行驶路径,小车启动GPS 智能导航后,根据地图中建立的行驶路线自动导航行驶,若沿途遇到障碍物,小车会自动规避障碍物,然后继续按建立的路径行驶.当拨到开关2可手动遥控行驶[7].系统主程序流程图如图2所示.
图2 主程序流程图
2.2 避障程序模块
US-100 超声波测距模块价格低廉,并且能够较准确测量与障碍物之间的距离,避障程序模块采用的US-100超声波测距模块,可根据声波测距原理来实现避障,其工作流程图如图3所示.
图3 超声波避障子程序流程图
3 制作安装与调试
基于STM32设计的智能探险车采用了多种模块,在制作智能探险车初期是对每个模块进行单独调试.只有在确保每个模块都能正常工作并完成指定任务的前提下,才能进行总体设计与联调.每个模块都需要软件和硬件的互连,以确保模块的正常运行并执行分配给它的功能.主要包括硬件部分调试、软件部分调试和整机调试等几个方面[8].
3.1 硬件部分调试
3.1.1 硬件焊接
单片机的硬件焊接相对来说比较简单,但在焊接过程中的一点小失误就可能造成系统无法正常工作,给后面的调试检测环节带来不便,而且还要注意焊点之间不能相连,否则可能导致硬件被烧坏.
3.1.2 硬件调试
首先实现的是要让小车能够正常行驶,然后逐个调试其他器件,确保功能都可以实现.让探险车通过GPS 自动导航规划路线是一个难点,往往不能按照指定的路线行驶,坐标易偏移,可以通过数据源转换,更换精度更高的GPS模块来解决问题.
3.2 软件部分调试
软件部分调试主要完成了对超声波模块输入/输出信号的处理计算进行避障,对小车进行调速,GPS的路径规划,经过不断的程序测试达到良好的调试效果.
3.3 整机调试
智能探险车联调是一个繁杂的过程,为更接近于室外探险环境,需要在室内铺设复杂地形.由于地面环境复杂,探险车在行驶过程中时常会出现上不去陡坡、GPS信号丢失等问题.因此,需要不断进行程序优化,不断改变相应的硬件及软件,使硬件和软件可以很好地配合,经过多次实验测试才使得探险车在场地内正常行驶,最终实现相应的功能.设计并组装完成后的智能探险车实物如图4所示.
图4 智能探险车实物图
4 结语
经过设计与调试,本智能探险车最终实现四个功能:(1)可以遥控探险车行驶,人为遥控想要到达的指定地点进行工作;(2)当探险车遇到障碍物后可以自动转向,然后按照规划好的路径行驶;(3)探险车遇到陡坡时可通过机械臂越过;(4)通过GPS导航,可以实现在地图中放置坐标点建立小车行驶路径,小车启动GPS智能导航后,根据地图中建立的行驶路线自动导航行驶.
智能探险车采用光、电、无线通信等技术进行综合设计,采用多种类型的传感器,通过STM32 单片机进行控制,实现了智能探险功能.智能探险车工作效率高、安全性能好,能够应用于多个领域,可以完成扫雷、探测和侦察等一系列危险的工作任务.