【S078】巡检机器人
作品说明 |
作者:张奕龙 贺晓辰 刘嘉成 刘昊宇
单位:邢台学院
指导老师:王承林 王晓旭
随着科技的进步,智能小车有了快速的发展,主要在远程控制、循迹避障、无人操控等方面研究较为深入,这些都是智能小车的基础,在此基础上可以根据需要,搭载相应的设备,扩展不同的功能,因此对于智能小车控制和视频监控等基础性的研究也是非常有意义的。在我们的日常生活中也随处可见智能小车的身影,像智能送快递车、扫地机器人、排爆机器人等。
本研究是基于探索者平台的开发设计,使用探索者套件进行组装小车车身,采用四驱底盘,车身搭载一个双自由度的云台,云台上固定有摄像头,可实现小车原地上下、左右180度的转动。以Arduino的Basra控制板为中心,将目前广为流行的Wifi技术与智能小车技术相结合,通过Wifi网络进行视频画面的远程无线传输和控制小车动作信号的收发,在电脑、智能手机等移动终端皆可进行远程控制,并且具有良好的拓展性,可应用于多种实际场景。该小车可以在各种复杂的情况下去进行现场的勘察,在危险的地方或者人活动不方便的狭小空间内,都可以使用远程监控智能小车进行工作,接收前方实时传输的视频画面进行查看,并且还可以拍照保存,便于查看和记录。
关键词:探索者平台、监控、远程控制、Wifi、Arduino
1. 绪论
1.1 选题背景和意义
随着电子工业的发展,智能技术广泛运用于各种领域,远程监控智能小车不仅在工业智能化上得到广泛的应用,而且广泛应用在危险情况下和不适宜人直接参与的情况下替代人去执行特定任务[1]。智能小车的快速发展,主要在远程控制、循迹避障、无人操控等方面研究较为深入,像我国最近成功发射的嫦娥五号探测器和天问一号火星探测器,其本身也属于远程监控智能小车范畴,只不过其集成度、可靠性和稳定性要求非常高。
科技发展的成果已经融入了人们的日常生活,可视化、图像化越来越成为人们关注的重点,因此在智能小车上配备视频监控系统就显得尤为重要并且非常的实用,可以使操控者摆脱受限于其视野的场景,在移动终端进行实时画面的远程监控。无线远程遥控开关等已经也成为现如今智能设备的标配,大到工业制造、远航巨轮,小到灯泡开关、空调开关等无一不是利用远程控制技术。在军事上,还可以远程操控无人机进行情况侦察,远程控制带机械臂的机器人进行排爆作业等大大降低了人员伤亡的风险[2]。
1.2 项目主要研究内容
本设计以探索者平台为依托,利用探索者套件设计出符合要求的机械结构,主要研究Basra控制板及其扩展板、Wifi通信、直流电机和舵机的控制原理和使用方法。根据小车设计的预期功能即远程监控和控制,提出硬件电路设计方案,选择合适的器件并进行硬件电路设计和制作。再通过研究C语言的函数、指令的使用实现对直流电机、舵机的控制和视频信号的传输,从而达到小车设计的预期功能。
2. 系统总体设计
2.1 系统总体概述
本设计以基于Arduino 的Basra控制板及其扩展板为中心,控制直流电机来驱动小车运动,利用探索者平台套件完成小车底盘的组装,将摄像头模块和舵机相结合以实现原地上下、左右各180度视频画面的远程监控。使用路由器把摄像头模块采集到的视频画面信号发送到移动终端,然后在其软件WifiRobot中显示摄像头采集到的视频画面信号。利用路由器通信将软件WifiRobot和Basra控制板连接起来,实现对直流电机和舵机的控制,从而实现无线远程控制小车的前、后、左、右的移动和双自由度舵机云台带动摄像头上下、左右各180度的旋转,系统组成框图如下图所示:
作品说明
远程监控智能小车系统组成框图
2.2 设计原理与方法
本设计利用的是路由器串口通信。由电脑、手机等移动终端,通过Wifi无线网络连接上路由器,再通过软件WifiRobot向路由器发送控制命令和数据[3]。路由器接收到数据再后通过TTL串口线向单片机发送数据,单片机接收到数据后可以控制直流电机和舵机做出相应的动作。
直流电机控制时设置数据位第一位为00,WifiRobot发送指令1时,小车前进;发送指令2时,小车后退;发送指令3时,小车右转;发送指令4时,小车左转;发送指令0时,小车停止[4]。
舵机控制时设置数据位第一位为01,WifiRobot发送指令1时,控制水平舵机1正向转动;发送指令2时,控制水平舵机1反向转动;发送指令3时,控制竖直舵机2正向转动;发送指令4时,控制竖直舵机2反向转动;发送指令0时,舵机保持当前角度不变[5]。
视频信号,利用摄像头模块进行视频的采集,将视频信号数据传送给单片机,再由单片机通过串口发送给路由器,然后路由器将视频信号数据发送到电脑或者手机等移动终端,并且在软件WifiRobot中显示出采集到的视频画面信号。
3. 机械结构设计
小车采用四驱底盘,搭载一个由两个舵机组成的双自由度云台,使用到的器件清单见表1。
器件名称 | 数量 | 器件名称 | 数量 |
C13 Basra控制板 | 1 | J04 7*11孔平板 | 2 |
C18 无线路由器 | 1 | P24 联轴器 | 4 |
C50 2510通信转接板 | 1 | F310 螺丝10mm | 20 |
C54 BigFish扩展板 | 1 | Z15 螺柱15mm | 4 |
P02 充电器 | 1 | A06 直流电机输出头 | 4 |
舵机输出头 | 2 | F2510H 直流螺丝 | 4 |
舵机支架 | 2 | J31 直流电机支架 | 5 |
排线 | 1 | F340 螺丝40mm | 2 |
1拖2直流电源线 | 2 | F308 螺丝8mm | 8 |
直流电机 | 4 | F306 螺丝6mm | 8 |
P22 1:10模型轮胎 | 4 | 螺母 | 12 |
标准舵机 | 2 | 魔术绑带 | 2 |
表1 材料清单
3.1 四驱底盘
3.1.1 电机的安装
使用的零件有:直流电机、直流电机支架、直流电机输出头、螺丝F2510和螺丝F325。用螺丝F325将直流电机锁在直流电机支架上,用螺丝F2510将直流电机输出头和直流电机结合起来,操作示意流程如下所示:
直流电机组装示意图
3.1.2 橡胶轮胎与联轴器的安装
使用的零件有:联轴器、橡胶轮胎、15mm螺柱、和螺丝F315。先组好电机部分然后给联轴器里放置一个15mm螺柱,最后把联轴器和直流电机输出头锁在一起再锁上轮胎,安装流程如下图所示:
橡胶轮胎与联轴器的安装图
3.1.3 四驱底盘的组装
将四个组装好的直流电机和四个轮胎结合在一起,再通过一块孔板用螺丝把四个直流电机主动轮固定在四个角上,同时注意电机的方向要正确。采用四驱底盘动力强大,稳定性好,能够适用多种地形,四驱底盘安装完成情况如下图所示:
四驱底盘
3.2 双自由度云台
3.2.1 标准舵机的安装
使用的零件有:标准舵机、标准舵机支架、标准舵机输出头、螺丝F2510和螺丝F315。使用的标准舵机支架和舵机用螺丝固定在一起,然后再安装上舵机输出头,用螺丝固定,舵机安装流程如下图所示:
舵机组装图
3.2.2 云台的安装
利用两个组装好的标准舵机模块连接在一起,一个舵机竖直放置,另一个舵机水平固定竖直舵机的输出头上,以此用两个舵机实现双自由度的云台,可带动摄像头实现上、下180度和左、右180度的旋转,组装完成的云台如下图所示:
双自由度云台
3.3 整体机械结构
在组装好的四驱底盘的基础上,另加一个7*12孔的板子把双自由度云台固定在其上面,就完成了远程监控智能小车的机械结构设计制作,整体机械结构如下图所示:
小车机械结构图
4. 硬件电路设计
4.1 主控模块
4.1.1 Basra控制板
Basra主控板是一以控制芯片Avrtmega328为主CPU的开发板,配置有下载口可以用数据线连接电脑,在软件Arduino中以C语言的形式进行编程,之后编译成二进制文件可以烧录进单片机。拥有14路接口,包括6路模拟输入通道,6路可以用来当作PWM输出,一个USB接口,一个电源插座,还有一个复位按钮[6]。该控制板还有集成度高,尺寸小的特点。硬件电路集成了单片机基本电路、电源电路、串口通信电路、烧录接口电路、数模转换电路。供电电压范围为5 v~9V,范围广不容易烧。
Basra主控板原理图
4.1.2 BigFish扩展板
BigFish扩展板与Basra主控板堆叠在一起使用,可以说是Basra的必备配件。拥有4个5V电压输出的传感器接口,6个6V电压输出的舵机接口,2个直流电机接口,1个8*8的LED点阵和拨码开关,还有一个扩展模块接口。传感器接口是4针脚,舵机接口是3针脚,直流电机是2针脚,非常清晰,能有效地避免接错线。
本设计利用的是直流电机接口D5、D6、D9、D10,用于控制直流电机运动,接口D3和D4分别控制一个180度的舵机,扩展模块接口接2510通信转接板与路由器相连。
BigFish扩展板接口图
4.2 通信转接板
本模块为2510 4P接口的通信转接板,为串口与I2C接口的模块提供便捷的有线连接,并能提供3种供电跳线。本模块需安装到BIGFISH扩展板的扩展坞上使用,用来连接路由器。通信转接板的USB接口与路由器上的USB接口相连接,通信转接板上的串口线GND、RX、TX分别与路由器上的GND、TX、RX、对应相连接,注意RX和TX是反接,接线情况如下图所示:
通信转接板与路由器连线图
4.3 直流电机模块
将直流电机接在D5/6口和D9/10口上,如下图所示,利用BigFish扩展板内载的直流电机驱动芯片FAN8100MTC,可以同时驱动两个直流电机,支持5V~9V的电压范围。对数字针脚D9/D10和D5/D6编程即可控制驱动电机动作。
直流电机接线图
4.4 舵机模块
舵机1和舵机2分别接在D3和D4口上,如下图所示,舵机驱动利用的是电压差,经上位机发出指令,给舵机一个信号驱动舵机转动。将舵机针脚D3/4映射到模拟量500~2500上,每给一个信号舵机转动0.45个角度,设初始值为1500即90度位置,500为0度位置、2500为180度位置。驱动舵机需要的电压大,USB接线带不动舵机,要外接电源才能驱动舵机转动,舵机转动的角度范围为0~180度。
舵机接线图
4.5 路由器模块
4.5.1 路由器简介
探索者平台中的无线路由器GL-iNET,小巧方便,具有双网口,可以通过无线和有线进行连接。传输速度为150M,可以用USB接口线进行摄像头的连接,画面高清流畅,可以通过手机APP便捷访问,通过浏览器可以访问路由器设置界面,输入192.168.8.1,出现登陆界面,操作界面简单。该路由器的TTL针口都已焊接好,不用自己接线焊接,非常方便开发者的使用。
路由器接口图
4.5.2 使用方法
当路由器启动成功后,便会开始监听端口,等待与电脑手机等移动终端进行连接。当操控者的移动终端连接到路由器的热点后,便可通过软件WifiRobot来分别进行对小车指令的下达和接收小车反馈的视频数据。
Wifi数传模块采用TTL串口方式和Arduino通信,下载程序时一定要记得取下Wifi模块上的TTL信号线(拔下通信转接板即可),否则会引起串口被占用,导致程序下载不成功。一定要先下载好程序, 才能用手机或是PC连接小车Wifi信号,不然小车不受控(只能看到枧频图像)。
4.6 摄像头模块
4.6.1摄像头简介
采用高清彩色摄像头最大分辨率可达640*480,最大帧数30fps,USB接口,能够很好的与路由器进行连接。USB2.0口传输画质流畅清晰,外观小巧轻便,伸拉卷缩线盒可以根据需求拉伸线的长度,整齐不乱。
摄像头模块实物图
4.6.2 使用方法
摄像头模块基于Wifi通信转接口,将摄像头模块的USB接口接在路由器上,可以很方便地与Basra控制板及其扩展板连接并通过串口进行视频数据的读取,将采集到的视频数据传输到可移动设备中,在软件WifiRobot中显示。
4.7 电源模块
电源模块是充电的电池组成的,电压为6V,可以给单片机、直流电机模块、舵机模块、摄像头模块和Wifi模块等供电。将电源模块的输出口插在Basra板的电源插座上,打开开关即可上电。
5. 软件设计
5.1 软件总体设计方案
远程监控智能小车的软件编写主要分为命令接收、命令执行、具体的信号的采集和处理,以及回传收集到的信息[7]。主要包括直流电机控制程序和舵机控制程序,系统主程序模块主要完成对系统中各模块电路的初始化等工作。对定时器、串口中断、外部中断进行初始化,同时执行移动终端设备所发送的命令,等待外部中断以及根据所需要的功能进行相应操作,软件总体设计及程序流程如下图所示[8]。
软件设计总体流程图
5.2 电机控制程序设计
小车需控制4个直流电机,其中D5\6口使用直流电机一拖二转接线接电机1和电机2,D9\10口使用直流电机一拖二转接线接电机3和电机4,电机1和电机2同在小车左侧,电机3和电机4同在小车右侧。
直流电机输出端口为D5\6和D9\10,当D5为高电平1、D6为低电平0时所接电机转动,反之当D5为低电平0、D6为高电平1时所接电机反转。当D9为高电平1、D10为低电平0时所接电机转动,反之当D9为低电平0、D10为高电平1时所接电机反转[9]。
手机端软件WifiRobot作为上位机,通过路由器串口通信向下位机单片机发送指令0、1、2、3、4对直流电机进行控制,当第一位数据为00时是直流电机控制,对应下位机程序利用switch()case 和setMotor( )语句控制小车执行相应命令做出对应动作,程序设计如下:
5.3 舵机控制程序设计
舵机输出端口D3和D4连接水平舵机1和竖直舵机2其输出模拟量映射到500-2500,其中500表示舵机 0 度位置,1500 表示 90 度位置,2500 表示 180度位置。舵机初使化状态为1500舵机90度位置,定义舵机连接引脚,上电归位。
电脑端软件WifiRobot作为上位机,通过路由器串口通信向下位机单片机发送指令0、1、2、3、4当第一位数据为01时是舵机控制,下位机对应程序如下:
先定义两个整型变量a和b初始值设为1500,利用switch()case、servo.write()语句和整型变量a和b值的变化来控制舵机的转动,整型变量a和b的值每变化1对应舵机转动0.45度,下位机程序对应控制舵机执行相应命令转动设置:
case 0为保持整型变量a和b的值为当前值;
case 1为使整型变量a自增1,对应水平舵机1向右转动0.45度;
case 2为使整型变量a自减1,对应水平舵机1向左转动0.45度;
case 3为使整型变量b自增1,对应竖直舵机2向右转动0.45度;
case 4为使整型变量b自减1,对应竖直舵机2向左转动0.45度。
6. 系统的调试与测试
6.1 电机控制调试
直流电机控制调试成功,可以在移动终端通过软件WifiRobot进行控制。按下前进、后退、左转和右转按钮,小车做出相应动作,也可按下重力感应按钮利用重力控制小车的运动,手机控制界面如下图所示:
手机端控制界面
WifiRobot软件指令说明,参数设置如下图所示:
包头FF 类型00 指令01 数据00 包尾FF
手机端参数设置
指令控制对应电机的动作如表2所示:
电 机 指 令 | 电机1 | 电机2 | 电机3 | 电机4 |
前进:FF00 01 00FF | 正转 | 正转 | 正转 | 正转 |
后退:FF00 02 00FF | 反转 | 反转 | 反转 | 反转 |
左转:FF00 03 00FF | 正转 | 正转 | 反转 | 反转 |
右转:FF00 04 00FF | 反转 | 反转 | 正转 | 正转 |
停止:FF00 00 00FF | 停止 | 停止 | 停止 | 停止 |
舵 机 指 令 | 水平面舵机1 | 竖直面舵机2 |
前进:FF01 01 00FF | 正转 | 停止 |
后退:FF01 02 00FF | 反转 | 停止 |
左转:FF01 03 00FF | 停止 | 正转 |
右转:FF01 04 00FF | 停止 | 反转 |
停止:FF01 00 00FF | 停止 | 停止 |
6.2 舵机控制调试
舵机控制调试成功,双自由度云台可以在移动终端通过软件WifiRobot进行控制,按下左、右按钮,水平面舵机1左右进行转动;按下上、下按钮,竖直面舵机2上下进行转动,带动摄像头实现了原地上下、左右180度无死角的视频画面监控,并且可以拍照记录,将照片储存在移动终端,电脑控制界面如下图所示:
电脑端控制界面
指令控制对应舵机动作如表3所示:
参数设置界面如下图所示:
电脑端参数设置
6.3 视频传输测试
摄像头的USB连接到路由器的USB接口,通过USB线将路由器与移动终端连接。
打开小车电源,启动Wifi等待30秒左右后,路由器上的红灯点亮时即可在移动终端进行连接。此时,搜索无线网络连接,可以找到名称为:GL-AR150-710的WIFI[10]。点击连接后,输入无线密码:goodlife,路由器上的红灯闪烁即可进行控制。
在浏览器中输入:192.168.8.1,出现登陆界面,输入密码:12345678。在监控页面可以对摄像头传输的画面分辨率进行设置,由于摄像头数据非加密,设置完成后在浏览器地址栏中输入IP+端口号(192.168.8.1:8083,中间分号在英文状态下输入)即可访问摄像头,浏览器使用谷歌浏览器,设置及浏览器显示效果如下图所示:
浏览器设置界面
视频传输成功如下图所示:
视频传输调试
6.4 小车整体调试
将直流电机和舵机的控制程序整合后载入下位机中,设置好手机端和电脑端软件WifiRobot的控制参数。打开小车电源,启动Wifi等待30秒左右后,路由器上的红灯点亮时即可在移动终端进行连接,红灯闪烁即可进行控制,有时连接好后还是无法控制,按一下Basra控制板上的复位键即可。视频画面通过Wifi进行传输,在移动终端可以查看,按下控制端的拍照键可进行记录。该小车路由器局域网通信距离在空旷环境中为20米左右,小车的前后、左右移动和摄像头的上下、左右旋转都已实现,控制小车运动情况和控制云台转动情况如下图所示:
小车运动
摄像头转动
控制小车运动以及摄像头转动采集到的画面如下图所示:依次为摄像头转动至左、右、上、下时的视频画面。
摄像头采集到的画面
6.5 问题与解决方法
在设计过程中也出现很多问题在老师的指导下也都得以解决。在此列举,仅供后者参考:
① 无法建立起上位机软件WifiRobot和下位机单片机之间的通信
解决:路由器配置错误,通过配置路由器或者更换新的路由器得以解决。
② 程序下载不进去
解决:下载程序时一定要记得拔下通信转接板,否则会引起串口被占用,导致程序下载不成功。
③ 小车只能看到枧频图像但不能控制运动
解决:要先下载好程序,才能用手机或是电脑连接小车Wifi信号。
④ 软件WiFiRobot显示下位机引擎初始化失败
解决:可能是路由器TTL线没有接对,注意路由器与通信转接板的RX、TX是反接。
⑤ 无其他问题,上电后舵机一直抖动不受控制
解决:可能是电压不够,检查是否有外接电源,电量是否充足。
⑥ 下载程序进后小车还是不受控制
解决:按一下Basra控制板上的复位键即可。
从完成的结果来看,在WifiRobot界面不能同时实现直流电机控制和舵机控制的切换,原因是WifiRobot软件没有开发控制切换功能。不能通过编程实现在一台设备上控制舵机和直流电机,因此就采用电脑来控制舵机的转动,用手机来控制小车的移动,分两台设备进行控制。
结论
在本毕业设计的制作和论文的撰写中,使用到了路由器串口通信、视频信号的传输、直流电机的控制和舵机的调试等方面的相关内容。很好的借助探索者平台搭建出了符合要求的小车车身,四驱底盘保证了小车的稳定性和强大动力,双自由度云台实现了小车在原地不动,摄像上下、左右各180度的旋转,开阔了探索视野。利用C语言的编程建立起上位机软件WifiRobot和下位机单片机之间的串口通信,从而实现远程控制小车的前后、左右运动,搭建双自由度的云台并固定上摄像头模块,通过控制舵机来实现摄像头的转动,并且在控制端还可拍照保存,便于后续观察记录,顺利制作完成了一台可以远程无线控制并传输视频画面的智能小车。
参考文献
[1]龚明杰.智能小车的设计与实现[D].大学生论文联合比对库,2017,(03).
[2]高利;宋敏.自动往返电动小汽车的设计[J].科技信息,2013,(08):268-269.
[3]吴犇牛;叶吾梅.基于51单片机的WIFI遥控小车.山东工业技术, 2017,(04).
[4]辛光红.基于Android系统的Arduino智能车设计[J].电脑与电信,2014,(03):62-64.
[5]杨龙兴;WIFI智能小车的设计与制作[D].高职高专院校联合比对库,2016,(04).
[6]杨森,张玮.基于WIFI的视频监控智能小车机器人[J].数字技术与应用,2016(04):81-82.
[7]陈升;WIFI视频小车循迹控制设计[D].大学生论文联合比对库,2015,(05).
[8]张陈正;基于wifi技术的家庭智能机器人的设计与实现[D].大学生论文联合比对库,2016,(04).
[9]李海,李媛琼,张恩溪.基于互联网实时监控及控制小车[J].山东工业技术,2018(05):142+135.
[10]朱皓亮;视觉循迹全地形机器人优化设计[D].大学生论文联合比对库,2020,(06).
* 本项目未获得作者开源授权,无法提供资料下载。
|