
3.2 硬件设计
3.2.1 控制系统
Arduino虚拟现实感知小车采用手机APP控制和手柄控制相结合的方式进行控制。控制系统的主板选用开源Arduino控制板。Arduino控制板的特点是开源、成本低廉、集成度高,拥有跨平台、简易的编程环境、使用C语言编程及软/硬件开源、USB烧录可扩展等多个优点。Arduino UNO R3主板作为一种高度集成化开源的控制板,可最大限度地为用户提供常用基本功能的电路模块,不仅能够轻松实现与常用外设,如键盘、鼠标、摇杆等的连接,而且还可以充分兼容所有现存的扩展板,能够用扩展板额外的端口接受全新的扩展,实现用户自定义的特色功能。
Arduino语言简单来说就是很多参数被函数化处理之后的C语言。Arduino语言程序结构简单,主要包括初始化变量、设置管脚模式的setup()函数和循环执行函数loop()。Arduino语言提供了多种函数库供用户参考使用,例如模拟I/O口输入/输出函数、数字I/O口输入/输出模式的定义函数、时间日期函数等。
1.Arduino UNO R3主板
Arduino UNO R3主板实物图如图3.2所示。

图3.2 Arduino UNO R3主板实物图
Arduino UNO R3主板的微控制器采用ATmega328,具有14个数字I/O引脚、6个模拟输入引脚,时钟为16MHz,引脚可承受最高为40mA的电流,每个引脚都连接1个20~50kΩ的内部上拉电阻。Arduino UNO R3主板有一根自恢复熔断器,具有USB过流保护能力,能保护计算机USB端口免遭短路的损害;包含组成微控的所有结构,仅需要将一条USB数据线连接到计算机就可烧录程序,使用交/直流转换适配器或电池即可启动。
Arduino UNO R3主板在实验过程中,一直性能稳定,效果良好,在搭载多种功能传感器时,由于其I/O口有限,因此使用Arduino扩展板进行扩展。
2.手机APP控制端
Arduino虚拟现实感知小车的手机APP控制端是利用蓝牙与小车进行通信联络的,由操作人员在手机APP上发送指令,小车的蓝牙模块在接收指令后,由Arduino UNO R3主板进行处理,根据指令类型在程序中查找执行方案后执行动作。
Arduino虚拟现实感知小车选用HC-06蓝牙芯片进行手机APP控制端的数据传输。HC-06蓝牙芯片体积小(27mm×13mm×2mm),灵敏度(误码率)达到-80dBm,廉价实惠,性能良好,内置2.4GHz无线接收发射模块,不需要另外的天线。
HC-06蓝牙芯片实物图如图3.3所示。

图3.3 HC-06蓝牙芯片实物图
HC-06蓝牙芯片的原理图如图3.4所示。

图3.4 HC-06蓝牙芯片的原理图
手机APP控制端有12个控制端口,可以执行36组模式的命令。
手机APP控制端界面截图如图3.5所示。

图3.5 手机APP控制端界面截图
3.手柄控制端
由于手机APP控制的距离过短,因此为了实现对小车的远程控制能力,在后期,我们选用市场上较为成熟的Arduino开源无线遥控手柄,采用Arduino编译器进行编译,与Arduino APC220 USB无线数据传输模块配合,遥控距离在空旷地可以达到1000m。
Arduino APC220 USB是高度集成半双工微功率无线数据传输模块,嵌入高速单片机和高性能射频芯片ADF7020-1,采用高效的循环交织纠检错编码,抗干扰和灵敏度较高,可以在线修改串口速率、发射功率、射频速率。
Arduino APC220 USB无线数据传输模块实物图如图3.6所示。

图3.6 Arduino APC220 USB无线数据传输模块实物图
Arduino APC220 USB无线数据传输模块与设备的连接方式如图3.7所示。

图3.7 Arduino APC220 USB无线数据传输模块与设备的连接方式
Arduino虚拟现实感知小车使用Arduino开源无线遥控手柄,不用再单独供电,通过USB口可以反复充电,控制距离长,可以开发的按键多(共具有16个功能按键,目前本设计已经使用了10个)。
Arduino开源无线遥控手柄实物图如图3.8所示。

图3.8 Arduino开源无线遥控手柄实物图
3.2.2 动力系统
Arduino虚拟现实感知小车的动力系统主要由驱动模块和电源模块组成。
1.驱动模块
驱动模块主要由XD-37GB520减速电动机和L298N驱动器组成。XD-37GB520减速电动机在L298N驱动器的配合下能发挥出较好的动力性能,使小车在草地、沙地、泥泞地面等地形条件下的机动性能好,能够越过一般的障碍物,在水泥、沥青地面上的最高速度可以达到1m/s。
XD-37GB520减速电动机是12V直流电动机,最大运转扭矩可达10kg·cm,齿轮极限运转扭矩可达30kg·cm,效率可达95%,具有震动小、噪声低、节能等特点。该电动机选用优质锻钢材料,刚性铸铁箱体,齿轮表面经过高频热处理,抗毁能力强。
XD-37GB520减速电动机的实物图如图3.9所示。

图3.9 XD-37GB520减速电动机的实物图
XD-37GB520减速电动机的性能参数见表3.3。
表3.3 XD-37GB520减速电动机的性能参数

定子和转子是直流电动机的两个主要组成部分,工作时,能够将直流电能转化为机械能,使直流电动机在一定的负载下,可以实现转速的改变,拥有良好的调速性能,易于平滑调速,范围较广。这些特性是交流电动机所不具备的。XD-37GB520减速电动机具有低转速、高扭矩的特点,非常适合小车的驱动,有利于提高小车在复杂地形条件下的爬坡能力和越障能力。虽然直流电动机具有上述优点,但其缺点是换向困难,在工作时会产生火花,使用寿命短,需要经常进行维护保养。
在三角轮与减速电动机的配合下,小车的转速可以达到200r/min,相对小车的选材,已经很好地满足了需求:在一般地面上的速度可达0.6m/s,在平坦地面上的最高速度可以达到1m/s。
由于Arduino UNO R3主板是不能直接连接XD-37GB520减速电动机的,所以需要采用驱动器来过渡。驱动器主要用于控制XD-37GB520减速电动机的工作,执行停止、步进、调速、运行等操作。小车采用L298N驱动器。该驱动器采用两路H桥驱动,可以同时驱动两个电动机。L298N是一种高电压、大电流电动机驱动芯片,采用15脚封装,主要特点是工作电压高,最高可达46V;输出电流大,瞬间电流峰值可以达到3A,持续工作电流为2A;额定功率为25W;采用标准逻辑电平信号控制,具有两个控制端,在不受输入信号影响的情况下,可允许或禁止器件工作;有一个逻辑电源输入端,可使内部逻辑电路在低电压下工作。L298N驱动器的驱动能力强、发热量低、抗干扰能力强,可以很好地适应小车中减速电动机的工作需求。L298N驱动器的实物图如图3.10所示。

图3.10 L298N驱动器的实物图
L298N驱动器的工作原理图如图3.11所示。

图3.11 L298N驱动器的工作原理图
L298N驱动器可以驱动两个2相电动机,也可以驱动一个4相电动机,通过调节电源来控制输出电压,可以用Arduino控制板的I/O口来提供,具有四种逻辑类型,三种工作状态。
L298N驱动器的功能逻辑见表3.4。
表3.4 L298N驱动器的功能逻辑

2.电源模块
电源模块是小车一切运行工作的力量源泉。本设计主要设计的是在复杂地形条件下执行感知任务的无人感知小车模型,需要长时间执行远程环境感知任务。因此,小车的三角轮在跨越障碍时耗能大,需要供给不间断的电能,综合本设计的特点,选用12V镍氢电池与太阳能充电装置相互配合。太阳能充电装置能够给小车电池不断充电,延长了小车单次执行任务的时间。
太阳能充电装置实物图如图3.12所示。

图3.12 太阳能充电装置实物图
太阳能充电装置采用升降压芯片作为主要控制器,外置60V、75A的MOS管作为开关管,采用双60V、5A的SS56肖特基二极管进行整流,自带输出防倒灌功能,给电池充电时不用另加防倒灌二极管。虽然如此,但是太阳能充电装置的充电效率过低,充电时间长。这也是限制小车工作时间的一个重要因素。
3.2.3 底盘系统
Arduino虚拟现实感知小车作为具有感知功能的地面无人小车,必须具备在复杂地形条件下的机动能力,不仅能够在水泥、沥青等较好质量的地面下行驶,还必须能够适应山地、沙地、丛林、废墟等复杂的地形条件。因此在经过对轮胎和履带性能的分析计算与调研之后,我们决定使用全履带式底盘。全履带式底盘主要由履带式行星三角轮和履带行走底盘组成。
1.履带式行星三角轮
Arduino虚拟现实感知小车的主要特点是自主设计了被动式行星三角轮,采用独立四驱的方式。前面的两个驱动轮为行星三角轮,具有自转和公转两种工作模式。在没有障碍物的情况下,行星三角轮通过自身的自转能够实现前进、后退、转弯等功能。当小车遇见障碍物时,行星三角轮的自转被限制,被迫进行公转,从而达到越障的目的,突破了传统的越障方式,即通过变径机构和变胞机构实现越障。
行星三角轮由一个主动公转轮和三个被动轮组成。位于行星三角轮中间的轮为主动公转轮,由12V直流减速电动机驱动;位于行星三角轮三个角的轮为三个被动轮,通过传送带与主动公转轮连接获得转动动力,以此驱动行星三角轮正常转动。
在平坦地形,未遭遇障碍物时,主动公转轮受减速电动机的驱动带动被动轮转动,通过正转、反转实现小车的前进、后退,通过调节不同的PWM占空比,可实现差速转向、切向转向、中心转向三种转弯模式。由于是履带传动,所以行星三角轮可以实现原地转弯,调节方向。由于Arduino虚拟现实感知小车体积过大,减速电动机驱动能力有限,因此在原地转弯时,速度过慢,效率较低。
当遭遇障碍物时,行星三角轮与障碍物接触受到阻力作用。在重力与阻力的共同作用下,行星三角轮会以三角形的几何中心为轴实现公转,在翻转跨上障碍物后,增大了与障碍物的接触面积,再通过自转与公转相结合跨下障碍物。
行星三角轮工作模式转换图如图3.13所示。

图3.13 行星三角轮工作模式转换图
Arduino虚拟现实感知小车的行星三角轮在原理上可以跨越障碍物,爬上垂直墙,例如爬楼梯,但是在实际设计过程中,由于取材廉价,选用的都是市场上的一些较为便宜的元器件,小车的主体框架也是采用亚克力板加工而成的,加之12V的电源在实际工作中动力不足,因此均导致小车爬楼梯的能力大大减弱,在实际测试中成功率低,在跨越障碍物时动作缓慢。
2.履带行走底盘
履带行走底盘能更好地适应复杂的地形,驱动力大(通常每条履带的驱动力可达机重的35%~45%),接比压小(40~150kPa),越野性能和稳定性好,爬坡能力强(一般为50%~80%,最高可达100%),转弯半径小,灵活性好。
Arduino虚拟现实感知小车全部采用履带传动形式行走,行星三角轮与舵机支撑臂都是经过履带传动的。虽然履带与轮胎相比,适应复杂地形的能力强,但是也有很多缺点,比如噪声大,不利于小车隐蔽;运行速度慢,运行和转向时功率消耗大,零件磨损快;履带结构决定了自身质量大,对空中投送要求高。
3.270°舵机支撑臂
在小车的尾部,与行星三角轮相配合的是两个“爪子”。这两个“爪子”是由舵机控制的两个车臂。因为在前期实验过程中,我们发现行星三角轮的越障能力不足,比如在翻越垂直障碍物时,行星三角轮已经跨上障碍物,但小车底部总是被障碍物卡住,不能很好地实现越障功能,因此在小车尾部增加了这两个“爪子”。当行星三角轮跨越障碍物时,这两个“爪子”由舵机驱动,撑起底盘,提高小车的整体重心,辅助行星三角轮完整地跨越障碍物。这两个“爪子”采用270°的舵机,扭矩可达10kg·cm。
270°舵机支撑臂实物图如图3.14所示。

图3.14 270°舵机支撑臂实物图
当地面平坦,或者行星三角轮可独立完成任务,不需要协助时,270°舵机支撑臂可以旋起,避免增大不必要的摩擦力。
当需要协助行星三角轮工作时,270°舵机支撑臂转动,向地面下压,撑起小车,提高小车的重心,辅助完成越障。
在加上这两个270°舵机支撑臂后,小车的越障能力确有提高,但在实地测试过程中也暴露出很多问题,即小车自身质量过大,270°舵机支撑臂在工作过程中因负载过大而经常被烧坏,要改换大功率的舵机。
4.VR感知系统
Arduino虚拟现实感知小车的感知系统主要是通过摄像头进行视频感知的。摄像头安装在一个由两个舵机组成的2自由度平台上。平台的左右视界为-90°~90°,上下视界为-45°~45°。Arduino虚拟现实感知小车使用的摄像头为M6运动相机的高清摄像头:1200万像素,深度防水,179°广角。摄像头的视频感知资料可回传至终端。
VR感知系统组成部件实物图如图3.15所示。

图3.15 VR感知系统组成部件实物图