基于IAP15单片机的麦克纳姆轮巡检智能车设计
2022-08-05杨中兴
杨中兴
辽宁建筑职业学院,辽宁辽阳 111000
0 前言
智能车的研究是移动服务机器人研究的一个重要分支,研究智能车控制系统的实时性和精确性具有重要的理论和实际意义[1]。随着物联网技术和人工智能的发展,智能技术的应用也越来越广泛,以智能车为代表的智能移动设备不仅在工业智能化中得到了广泛应用,而且在智能家居中也受到大家的青睐[2]。本文所设计的巡检智能车采用麦克纳姆轮实现全向移动控制,开发手机端应用程序实现对智能车的蓝牙遥控,开发PS/2手柄遥控功能实现在WiFi环境下视频图传。智能车的电控部分采用模块化、积件化设计思路,主要包括电源板模块、电机驱动模块、主控单元模块、视频单元模块等。本文从结构设计、硬件电路设计、软件程序设计等方面介绍该巡检智能车的设计方法。
1 智能车的结构设计
该智能车的底盘结构采用四驱加麦克纳姆轮(以下简称麦轮)的设计,相对全向轮而言,麦轮可以通过其转速和安装方法来合成在任意方向的合力,所以它可以让车全方向移动。基于麦轮技术的全方位运动设备可以实现前行、横移、斜行、旋转及其组合等运动方式。麦克纳姆轮智能车非常适合在空间有限、作业通道狭窄的环境中应用。麦轮的车需要4个电机单独驱动每个轮子,单独驱动每个电机既能够提供足够的动力,更能够独立控制每个麦轮的转向,形成多种转向组合,从而实现小车的全向移动控制。智能车的结构图如图1所示。
2 硬件模块设计
2.1 多路电源模块
智能车离不开电源,电源的稳定、可靠是系统正常工作的前提。为使智能车能够稳定工作,首先需要设计一块多路电源模块。该电源模块需要提供以下几路电源:(1)智能车电机回路供电电源:智能车所用电机额定电压通常范围是+5~12 V,电机不同,额定工作电压也不同,为了使电源模块更具有通用性,要求电机供电能够实现电压可调。智能车一般是双电机或者四电机驱动,所以给电机供电至少需要提供双路;(2)+5 V电源:+5 V是电路系统中最常见的电源电压,是51系列单片机的工作电压(宏晶公司新发布的IAP15系列单片机既可以工作在+5 V,也可以工作在+3.3 V),很多外围器件也需要工作在+5 V,所以设计的电源模块需要提供+5 V这一路电压输出;(3)+3.3 V电源:+3.3 V电压是主流微处理器的工作电压,也是蓝牙模块的工作电压,相对+5 V供电,+3.3 V供电也能在一定程度上降低功耗,这对于锂电池供电的智能车系统非常重要。
输入电路还要考虑防反接问题。由于不能假定用户每次使用都能正确连接外部电源,如果不小心接反,板子就会烧毁。合格的产品应该将用户各种可能的不正确使用方法都考虑到,并且做出妥善的处理。防反接电路有很多,最简单的防反接就是在正极加上一个二极管(比如1N4148)进行保护,电路简单,成本低,占用空间小。但是二极管的PN结在导通时,存在一个小于0.7 V左右的压降,对电路造成不必要的损耗,比如对电池供电的系统,电流较大的电路都会造成比较明显的影响(电路中,功耗、发热都是不可忽略的问题)。智能车采用锂电池供电,对于锂电池来说,0.7 V的压降也是比较大的损耗,更好的选择是采用NMOS管防护。电源防反接电路如图2所示,上电瞬间,MOS管Q1的寄生二极管导通,系统形成回路,源极S的电位大约为0.6 V,而栅极G的电位为Vbat,MOS管的开启电压极为:Ugs=Vbat-Vs,栅极表现为高电平,NMOS的ds导通,寄生二极管被短路,系统通过NMOS的ds接入形成回路。若电源接反,NMOS的导通电压为0,NMOS截止,寄生二极管反接,电路是断开的,从而形成保护。
考虑到电机启停时噪声较大,故设计此多路电源供电方式,将电机供电回路和主控板供电回路隔离。多路电源电路的核心器件为LM2576-ADJ芯片,这是一款DC-DC芯片,可通过外接反馈电阻调节输出电压。多路电源设计方案如图3所示,图中上半部分电路使用LM2576R-ADJ芯片,通过外围电位器R4实现可调电压输出,灵活适配不同电机的供电要求,此路电源主要是给电机回路供电。图3下半部分电路使用LM2576R-5.0芯片,将外接电池电压降到5 V,然后再接入BL1117-33CX芯片组成的LDO降压电路,将5 V电压降低到3.3 V,此路电源给单片机和主控电路供电。
2.2 双路电机驱动模块
在智能车的电机驱动电路中,常用的有L298N、RZ7899、TB6612和SN754410芯片等设计方案,本设计中使用RZ7899方案。RZ7899 是一款 DC 双向马达驱动电路,适用于玩具电机驱动、自动阀门电机驱动、电磁门锁驱动等。它有两个逻辑输入端子用来控制电机前进、后退及制动。该电路具有良好的抗干扰性,微小的待机电流,低的输出内阻,同时,它还具有内置二极管,能释放感性负载的反向冲击电流。此外,该芯片还具有诸多优点,如微小的待机电流(小于2 μA)、工作电压范围宽3.0~25 V、紧急停止功能、过热保护功能,以及过流、欠流保护及短路保护功能。双路电机驱动电路如图4所示,采用RZ7899芯片设计方案,在一块电机驱动板上,做两路输出,即可实现双路电机驱动功能。
R1、R2左侧是控制电压的输入端,通过输入端口4种不同的组合,控制电机前进、后退、停止和刹车4种不同的状态。直流电机的两项端子连接J2,C4为电机两个触点间连接的0.1 μF(104)滤波电容,该电容可以不焊接在电路板上,而是直接跨接在电机引脚的两端。
2.3 单片机主控电路板
智能车主控板采用IAP15W4K58S4单片机进行设计,该单片机是增强型8051内核,每个机器周期只需要1个系统时钟,速度比传统8051快8~12倍;内部高精度R/C振荡器,可省略外部晶振,内部时钟频率5~35 MHz可选;具有ISP/IAP功能,无需专用编程器和仿真器;5个16位可重装初值定时器T0~T4,2路CCP可再实现2个定时器;8路PWM可以非常方便应用于智能车电机调速控制;多种模式的低功耗设计等,使其非常适合在智能车产品中应用。
实际应用中的单片机主控板电路比较简单,主要由IAP15单片机构成的最小系统、USB转串口电路、OLED接口电路及其他数量不多的外围功能电路构成。部分主控电路图如图5所示。其中,USB转串口电路采用CH330N方案,设计简单,成本低廉,且完全满足应用需要。
3 固件程序设计
智能车固件程序设计主要包括主程序流程、初始化程序、硬件设备的驱动程序、全向移动控制程序、信号检测程序、蓝牙遥控处理程序、PS手柄遥控解析程序、摄像头图像采集传输子程序模块,采用C语言进行编程。除了智能车的固件程序,还有手机端的蓝牙遥控App程序设计。
3.1 主程序模块
主程序流程依次调用各驱动程序完成硬件设置,调用初始化程序完成系统状态的初始化工作,并进入主逻辑循环,进行信号检测和遥控指令监听,并根据信号和遥控指令进行相应的运动和状态转换。工作过程:初始化-检测按键-启动系统状态机,流程如图6所示。
3.2 电机控制模块
智能车采用了4个直流永磁电机构成了四驱系统,每个电机单独控制一个麦轮,由4个电机的不同转动方向组合,可以实现前进、后退、左行、右行、左转、右转、左对角线移动、右对角线移动、左右原地旋转等全向控制,以及停车、刹车等制动控制。四驱电机对麦克纳姆轮全向运动的控制组合如表1所示。电机的转速控制是通过调节PWM信号占空比来实现的,高电平占空比越大,电机转动速度越快,如果占空比达到100%,速度将达到最快[3]。
3.3 蓝牙遥控功能设计
蓝牙遥控功能采用HC-05模块,该蓝牙模块是主从一体的蓝牙串口模块。当2个蓝牙设备配对连接成功后,可以忽视蓝牙内部的通信协议,直接将蓝牙当做串口用,实现蓝牙串口透传功能,当建立连接,两设备共同使用一个串口通道,一个设备发送数据到通道中,另外一个设备便可以接收通道中的数据。HC-05蓝牙模块在使用前需要进行简单的配置,配置过程使用上位机串口调试助手发送AT指令对蓝牙模块进行配置操作。实际设计中,使用IAP15单片机的串口2(UART2)连接蓝牙模块进行通信,并开启串口2的接收中断,实时监听并处理蓝牙遥控信号。
表1 四驱电机控制麦克纳姆轮全向运动组合情况(↑前转、↓后转、 停止?刹车)左前轮 左后轮 右前轮 右后轮前进 ↑ ↑ ↑ ↑后退 ↓ ↓ ↓ ↓左平移 ↓ ↑ ↑ ↓右平移 ↑ ↓ ↓ ↑左前移 ↑ ↑右前移 ↑ ↑左后移 ↓ ↓右后移 ↓ ↓原地左旋转 ↓ ↓ ↑ ↑原地右旋转 ↑ ↑ ↓ ↓左转弯 ↑ ↑右转弯 ↑ ↑停车刹车
3.4 PS/2遥控手柄驱动程序设计
PS/2手柄由手柄与接收器两部分组成,手柄主要负责发送按键信息,接收器与单片机相连,用于接收手柄发来的信息,并传递给单片机,单片机也可以通过接收器向手柄发送命令,配置手柄的发送模式。手柄驱动程序主要包括:手柄初始化程序PS2_Init()、手柄发送子程序PS2_Cmd()、读取手柄数据子程序PS2_ReadData()、手柄按键数据处理子程序PS2_DataKey()、获取摇杆模拟量子程序PS2_AnalogData()、发送模式设置PS2_TurnOnAnalogMode()和振动模式设置PS2_VibrationMode()等子程序。单片机端在主逻辑循环中不断读取手柄接收器数据和状态,如果获取到手柄遥控指令,则进行相应的处理和执行。
3.5 手机端App程序设计
手机端App通过手机蓝牙连接智能车的蓝牙模块,实现对智能车的遥控功能。手机端程序采用AppInventor进行开发。App Inventor是一个在线开发的Android编程环境,其程式代码编写过程使用积木式的堆叠法,适合快速开发手机App程序原型,进行产品功能的快速验证。App Inventor在界面美化上会有一些限制,但是对于简单的应用是足够的。界面设计如图7所示。
4 应用效果
智能车应用效果如图8所示。将智能车上电初始化后,打开手机端小车遥控程序,通过连接蓝牙按钮选择HC-05蓝牙并进行连接,待手机与车载蓝牙连接成功后,就可以通过相应的功能按键控制小车的运动,并可以通过语音控制按钮实现语言遥控。除了蓝牙遥控,智能车还配备了PS/2手柄遥控接收端,通过手柄可以更加灵活方便地遥控智能车全向运动。前端的车载摄像头可以查看智能车前方影像。该智能车在实际应用中运行稳定,响应及时,可完成特定范围内的巡检任务,具有较好的应用前景。
5 结束语
本文以增强型51内核的IAP15单片机为主控制器,设计了一种具有无线蓝牙遥控、PS/2手柄遥控、WiFi视频传输、麦克纳姆轮全向移动等功能的巡检智能车,分别从多路电源模块、双路电机驱动模块、智能车主控模块等方面介绍了智能车硬件电路设计,从全向移动控制、无线蓝牙遥控、手机App程序等方面介绍了智能车固件程序设计。整车采用模块化设计,其结构简单,实现容易。新型的麦克纳姆轮车在一些复杂路段中比传统轮车更加灵活[4],在智能巡检、工业生产、物流运输等领域都有很大的实用价值。