王晓旭,王承林,刘嘉成,张奕龙,贺晓辰
(邢台学院,河北邢台,054001)
远程环境探测机器人广泛应用于高危复杂环境作业,如航天航空、海底探测、核工业、排险防爆等方面。近年来,地震、核泄漏、矿难等时有发生,远程探测机器人可以代替人们进入高危环境进行探测,辅助救援开展,以减少救援工作中的伤亡。探测机器人的快速发展,主要在远程测控、循迹避障、无人操控等方面研究较为深入,像我国成功发射的嫦娥五号探测器和天问一号火星探测器,都属于集成度、可靠性和稳定性非常高的探测机器人。
本设计将传感检测技术、无线技术与智能小车技术相结合,利用机器人作为载体,实现遥控探测获取周围的环境状况,监控图像和障碍物距离信息实时传输,上位机软件可实时远程监控,多维度还原机器人周围的场景[1]。
系统设计方案框图如图1 所示。本设计以Arduino 控制板和扩展板为控制核心,主要分为三部分:(1)移动小车平台设计。利用探索者平台套件完成小车底盘和云台的组装,小车采用直流电机驱动,云台采用舵机驱动;(2)WiFi 路由器将摄像头采集的图像信息传递给上位机监控软件,同时该软件可控制云台左右、上下各180°的旋转,还可通过手机APP 实现对小车的运动控制;(3)超声波测距数据经蓝牙无线传输至上位机雷达扫描软件进行显示。
图1 系统设计方案框图
Basra 是一款基于 Arduino 开源方案设计的开发板,控制板含 3A、6V 的稳压芯片,可为舵机提供 6V 额定电压。两个 2×5 的杜邦座扩展坞,方便蓝牙、OLED、无线模块等扩展模块进行直插连接[2]。
BigFish 扩展板板载2 片直流电机驱动芯片L9170、舵机接口、MAX7219LED 驱动芯片,可直接驱动直流电机、舵机、数码管等机器人控制常规执行元件[3]。
扩展板和控制板堆叠连接使用,Basra 与BigFish 扩展板引脚接口示意图如图2 所示。
图2 Basra 与BigFish 扩展板引脚接口示意图
利用探索者创新套件进行车体的组装,车轮可采用轮胎式或履带式,采用四驱直流电机驱动。将左侧、右侧电机分别用1 拖2 直流电源线连起来,左侧两电机由BigFish 扩展板的直流电机接口D5、D6 控制,右侧两电机由D9、D10控制。当D5(D9)为高电平1、D6(D10)为低电平0 时左侧(右侧)电机正转,反之电机反转[1]。
采用两个180 度舵机分别控制水平旋转和垂直旋转,形成二自由度云台,用于装载摄像头和超声波模块,车体原地不动时可实现超声波和摄像头上下、左右180 度的扫描。舵机三个引脚分别是GND、VCC、PWM,两舵机分别对应接在扩展板3 针舵机接口上,PWM 引脚接D3、D4。
用Arduino 控制舵机一般有两种方法:
①通过Arduino 的数字引脚产生不同占空比的方波,模拟产生PWM 信号,通过调整输入PWM 信号脉宽改变舵机的旋转角度,从而控制舵机运行[4]。所用舵机其对应关系如图3 所示。
图3 PWM 信号脉冲宽度与舵机旋转角度的关系
②直接利用Arduino 自带的Servo 库进行控制。
WiFi 视频组包含GL-AR150 路由器、USB 摄像头以及通信转接板。该视频模块是一个TP-Link 的703N 型小型路由器,刷上了Linux 开源的OpenWrt 系统,在系统中加载了摄像头驱动,支持连接USB 摄像头,作为高清无线网络监控。PC 或手机通过WiFi 连接视频模块后,利用应用程序打开视频模块上的摄像头,通过上位机可以随时随地轻松访问。
通信转接板的USB 接口与WiFi 路由器上的电源接口相连,转接板上的串口线GND、RX、TX 分别与路由器上的GND、TX、RX 对应相连接,USB 摄像头连接到路由器的标准USB 接口。
工作时,上位机连接路由器WiFi,输入密码连接成功后,上位机软件即可实现对摄像头采集图像的显示,以及对舵机云台的控制,摄像头可跟随云台上下、左右180 度旋转。
该模块实现障碍物测距及数据无线传输功能。
HC-SR04 超声波测距模块可具有 2cm~400cm 的非接触式距离感测功能,测距精度为 3mm;模块包含超声波发射器、接收器与控制电路[5]。模块的ECHO 和TRIG 分别连接主控板的A0、A1 传感器接口。
HC-04 蓝牙串口通信模块是基于 V2.1(SPP)经典蓝牙协议和 V4.0(BLE)蓝牙协议的双模数传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK[6]。从机和单片机连接,主机和电脑USB 口连接,用于距离数据的无线传输。蓝牙从机与Bigfish 扩展板的RX 和TX 对应连接,上电后,主从机会自动配对,成功后主机和从机的指示灯会常亮。
控制流程如图4 所示。
图4 运动控制程序流程图
本设计采用Servo 库进行舵机控制。Servo 库常用函数:
Attach(接口)—设定舵机接口。
Write(角度)—用于设定舵机旋转的角度,可设定范围0°~180°。
接通电源,上位机连接WiFi 成功后,通过串口通信向下位机单片机发送指令0、1、2、3、4,利用switch()case、servo.write()语句和整型变量a 和b 值的变化来控制舵机的转动。
case 0 为保持a 和b 的值为当前值,舵机不动;
case 1 为使a 自增1,对应水平舵机1 向右转动1 度;
case 2 为使a 自减1,对应水平舵机1 向左转动1 度;
case 3 为使b 自增1,对应竖直舵机2 向右转动1 度;
case 4 为使b 自减1,对应竖直舵机2 向左转动1 度。
上位机通过串口通信向下位机单片机发送指令0、1、2、3、4,利用switch()case、digitalWrite()语句控制直流电机正反转实现小车停止、向左、向右、向前、向后的运动控制。两侧电机停止则小车停止,两侧均正转小车前进,两侧均反转小车后退,左侧正转右侧反转小车右转,右侧正转左侧反转小车左转。
程序设计流程图如图5 所示。
图5 超声波测距程序设计流程图
给Trig 引脚施加至少10μs 的高电平触发脉冲,HCSR04 则自动发射8 个40kHz 的方波(即为超声波)。从向外发射超声波的时刻开始,Echo 引脚就会变成高电平,高电平会一直持续到HC-SR04 接收到回波为止。波从发射到返回的时间即为高电平的持续时间,测试距离=(高电平时间×声速(340m/s))/2[5]。
小车的运动控制可通过移动端软件WIFIRobot.apk 软件操作。首先需要手机连接小车路由器WiFi,打开软件设置界面如图6 所示。控制小车运动的控制参数中指令01--前进,02--后退,03--左转,04--右转,00--停止。
图6 手机端软件参数设置
确认后进入图7 所示控制界面,显示摄像头采集的图像,同时通过控制前、后、左、右按钮即可控制小车的运动。
图7 手机端控制软件
打开电脑端WiFiRobot 软件,联网并进行相应参数设置后,执行“视频”指令,可显示当前摄像头采集图像,如图8 所示。执行“前、后”指令,控制竖直云台舵机动作。执行“左、右”指令,控制水平云台舵机左右转动,“停止”指令则控制舵机云台静止。
图8 手机端控制软件
另外,在浏览器中输入:192.168.8.1,登录界面输入密码,在监控页面可以对画面分辨率进行设置,然后在浏览器地址栏中输入“IP:端口号”(192.168.8.1:8083),即可在浏览器端访问摄像头,如图9 所示。
图9 网页端监控画面
为了能实时直观地展现超声波探测的数据和环境内整体障碍物情况,制作一款数据图形化显示软件。Processing是为开发面向图形的应用而生的简单易用的编程语言和编程环境[7],基于Processing 编写测距雷达扫描软件,主要包含serialEvent()(串口数据读取)、drawRadar()(雷达图弧线和角度线绘制)、drawObject()和drawLine()(障碍物测距雷达扫描线绘制)、drawText()(角度、距离等文本显示)函数的编写。
电脑端Processing 上位机软件接收来自蓝牙主机的数据,包括水平舵机转动的角度和超声波模块与障碍物的距离值,绘制具有雷达扫描效果的监视器画面动态图形,相当于一个障碍物空间扫描雷达,直观显示出探测环境内的具体情况。探测小车及障碍物扫描如图10 所示。
图10 探测小车及障碍物距离雷达扫描图
该环境探测机器人具有距离测量、障碍物扫描、视频监控等功能。移动小车搭载二自由度云台,探测范围广,360 度无死角。图形化数据显示形象直观,从视频和距离数据两个维度反映所探测的环境信息,可更全面还原真实场景。同时移动小车可选择使用履带式驱动或四轮式驱动,可满足仓库、居家、矿井、山洞等多种复杂环境下的环境探测工作。
该环境探测机器人可以快速采集、实时信息传输,通过功能的扩展可达到不同的探测目的。如巡检机器人,加装不同传感器可用于受限空间、有毒有害气体等特殊环境下的信息采集;排爆机器人,若加装机械臂能够完成远程操控排爆的任务;若加装生命探测仪也可完成震后灾区搜救任务等。