APP下载

基于Arduino的移动机器人智能控制系统设计

2017-05-18朱雨田陈劲杰

电子科技 2017年5期
关键词:移动机器人蓝牙超声波

朱雨田,陈劲杰,张 波,周 媛

(上海理工大学 机械工程学院,上海 200093)

基于Arduino的移动机器人智能控制系统设计

朱雨田,陈劲杰,张 波,周 媛

(上海理工大学 机械工程学院,上海 200093)

目前物流行业中的机器人只用于码垛等简单且较机械的工作,有一定局限性。为进一步满足物流行业中智能机器人的需求,设计了一种基于Ardunio的物流机器人控制系统。该控制系统以Arduino作为微处理器,通过上位机Android手机端软件发送机器人的控制指令,下位机Arduino板接收指令控制电机运转来实现机器人的控制,同时机器人自身的相关传感器保证机器人避障等功能的实现。设计的机器人在如库房、仓库等实际环境中运行良好,能按预定线路运动并躲避障碍物,满足物流环境中对机器人的使用要求。

移动机器人;Arduino;微处理器;自主避障

目前,物流机器人的应用主要集中在包装码垛、装卸搬运两个作业环节,物流机器人的应用具有较大局限性,其他物流作业环节也急需机器人的应用,如自主搬运货物等[1]。

针对以上问题,本文设计的物流机器人智能控制系统采用“Arduino+Android”模式,即利用Arduino作为控制系统的微处理器,通过蓝牙功能实现对机器人的运动控制。该系统结构简单、操作灵活,适合物流行业对机器人的控制使用,且机器人具有自主移动和避障等功能,具有较强的实用性[2]。

1 系统结构设计

该智能物流机器人基于Arduino板和Android智能手机实现机器人的运动控制,系统工作框图如图1所示。

图1 系统结构框图

其工作原理是:(1)通过蓝牙模块实现Android与Arduino的通信;(2)使用手机端软件将控制命令传输到Arduino处理器,Arduino分析命令做出响应;(3)控制电机模块实现移动机器人的直行、转弯等功能[3]。

该系统分为上位机和下位机两部分,上位机为带蓝牙功能的Android手机,采用Android手机端程序作为机器人的控制软件;下位机则是以Anduino板作为微处理器来对机器人进行整体的运动控制。

该系统各模块功能如下:

(1)蓝牙模块。实现Android手机端与Arduino板的通信,两者间建立通信后,通过手机端软件将控制命令传输到Arduino板;

(2)MPU6050模块。采集加速度计三轴(x,y,z)和陀螺仪三轴(x,y,z)数据;

(3)超声波模块。实现机器人的实时避障功能;

(4)电机驱动模块。接收Arduino指令,实时控制电机;

(5)电子罗盘模块。采集机器人的方位角信息[4]。

2 硬件系统

该控制系统以Arduino作为微处理器,由MPU-6050模块提供加速度和角速度数据,HMC5883L提供电子罗盘的方位角数据,SR04超声波模块提供近距离的避开障碍物功能。

2.1 Arduino开发板

设计采用的是Arduino UNO R3,Arduino是一款简单、易上手的开源电子平台,它包括了Arduino硬件和Arduino开发环境软件。同时Arduino平台具有跨平台的特性,可以在Windows、Macintosh OS X、Linux3种操作系统上运行[5],其功能标注如图2所示。

图2 Arduino UNO R3 功能标注图

2.2 MPU-6050模块

MPU6050首例整合性6轴运动处理组件,是一种常用的空间运动传感器芯片,可以获取器件当前的3个加速度分量和3个旋转角速度,其具有体积小巧、功能强大、精度高等优点。PU6050芯片内自带一个数据处理子模块DMP,已经内置了滤波算法,在应用中使用DMP输出的数据已经能够较好的满足要求[6]。

MPU6050芯片采集的数据夹杂有较严重的噪音,在芯片处理静止状态时数据摆动都可能超过2%。除了噪音,各项数据还有偏移的现象,也就是说数据并不是围绕静止工作点摆动,因此要先将数据偏移进行校准,再通过滤波算法消除噪音。

在校准时只需找出摆动的数据围绕的中心点即可。以GRY_X为例,在芯片处理静止状态时,这个读数理论上讲应当为0,但它往往会存在偏移量。例如,以10 ms的间隔读取10个值为: -158.4,-172.9,-134.2,-155.1,-131.2,-146.8,-173.1,-188.6, 142.7, -179.5。

这10个值的均值,也就是这个读数的偏移量为-158.25。在获取偏移量后,每次的读数都减去偏移量即可得到校准后的读数[7]。

互补滤波算法的主要思想是充分利用加速度计提供的低频角度信号和陀螺仪给出的高频角速度信号,对加速度计和陀螺仪输出信号分别进行低通和高通滤波,滤除相应干扰信号,为两者的有效融合提供了良好的解决方案。

2.3 电子罗盘模块

设计采用霍尼韦尔HMC5883L模块作为电子罗盘,HMC5883L是一种表面贴装的高集成模块,并带有数字接口的弱磁传感器芯片,应用于低成本罗盘和磁场检测领域。MC5883L 采用霍尼韦尔各向异性磁阻技术,该传感器具有在轴向高灵敏度和线性高精度的特点[8]。HMC5883L模块数据采集和处理测试结果如图3所示。

图3 HMC5883L数据结果采集示意图

2.4 超声波模块

设计采用SR04超声波模块,其既可以发送超声波,也可以接收超声波。当发送的超声波遇到环境中的障碍物时就会被反射回来,如果第一次接收到反射波的振幅超过预先设置阀值时间t,则已知环境中的障碍物体距声呐的距离值为r=c×t/2,这里t为接收的时间间隔,c则是声音在空气中的速度[9]。

本设计中机器人装有3组SR04超声波模块,分别位于机器人的左、中、右3个位置,为避免超声波模块之间的声波干扰,超声波模块之间两两呈45°布置,如图4所示。

图4 超声波安装图

超声波避障模块避障原理:先不断扫描中间的超声波模块,得到机器人到障碍物的距离,如果距离小于20 cm,则控制电机立即停止,然后分别扫描左右两个超声波模块到障碍物的距离,并进行比较,如果左边(左转)的超声波模块测量得到的距离较远,则机器人先控制电机后退一段距离,再左转(右转)一定的角度,转向新的方向,以避开障碍物。程序控制框图如图5所示。

图5 超声波避障算法框图

3 软件系统设计

软件系统由Arduino控制端软件和Android手机端程序构成,Android手机端程序功能流程如图6所示[10]。

图6 Android系统整体流程框图

3.1 蓝牙模块

手机端与Arduino板之间的通信采用蓝牙通信,所使用的是HC-06蓝牙模块。Android蓝牙通信是基于同一个UUID上的同一个Rfcomm信道建立的,而且一个信道通常都是一个服务端和客户端点对点通信。Android 蓝牙中服务器端用一个 UUID 建立监听 Server Socket,客户端使用同一个 UUID与服务器端进行连接。Android 官方建议如果通讯对象是手机和串口板,那么推荐使用蓝牙串口服务 UUID,如果通讯对象是两部手机之间则必须自己生成 UUID[11]。本设计中,由于下位机是 Arduino 控制板,所以采用蓝牙串口服务 UUID。

在Android中使用蓝牙,需要进行权限说明。只有这样才能允许程序发现蓝牙并进行蓝牙配对,前者权限是获得建立通信信道和传输数据的权限,后者是获得查找设备和进行蓝牙配置的权限[12]。图7是手机连接蓝牙模块流程图[13]。

图7 Android手机连接蓝牙模块流程图

3.2 Arduino板控制端软件设计

Arduino控制端程序包括处理MPU6050模块、电子罗盘模块采集的信息、控制电机驱动、实现避障等。通过改变驱动轮电机的转速、方向控制机器人的前进、后退、左转、右转等功能[14]。这些控制指令都是基于Arduino语言编写的,而Arduino是基于原始代码的 Simple I/O平台,其开发语言类似于 C 语言,其优点是把 AVR 单片机相关的某些寄存器参数设置都进行了函数化。 Arduino 可以使用开发完成的电子元件如Switch 或 Sensors 或其他控制器、LED、步进电机或其他输出装置,由于 Arduino 控制器不能直接驱动直流电机,因此本设计中添加了一个电机驱动器[15]。

4 结束语

针对物流机器人的不足,设计了可在物流行业库房等处使用的移动机器人。所设计的机器人是基于Android手机端对机器人的运动进行控制,而Android手机的普及使得操作人员通过手机就能对机器人进行控制,这为机器人的应用提供了便利。

[1] 林兆花,徐天亮.机器人技术在物流业中的应用[J].物流技术,2012,31(7):42-45.

[2] 王志凌,闻凯,陈杰.基于Android 的小型移动机器人控制系统[J].国外电子测量技术,2014,33(9):4-7.

[3] 彭攀来,马娅婕,刘智旸.基于Arduino的移动机器人控制系统设计[J].自动化与仪表技术,2016,3(4):1-16.

[4] 李瑞,李晓明.基于Mobile-Android小型移动机器人平台控制系统[J].机电工程,2013,30(11): 1414-1419.

[5] 蔡睿妍.Arduino 的原理及应用[J].电子设计工程,2012,20(16):155-157.

[6] 康海,赵坤,刘书林.基于MPU6050 模块的飞行姿态记录系统设计[J].电子设计工程,2015,23(10):188-190.

[7] 傅忠云,朱海霞,孙金秋,等.基于惯性传感器MPU6050的滤波算法研究[J].压电与声光,2015,37(5):821-829.

[8] 胡宁博,李剑,赵榉云.基于HMC5883的电子罗盘设计[J].传感器世界,2011,13(7):35-38.

[9] 邹伟,李丽,王秀,等.超声波传感器测距实验平台设计与实验[J].传感器与微系统,2011,30(10):89-92.

[10] 马鸣,张华.基于Android 的蓝牙远程控制PC系统的设计与实现[J].电脑知识与技术,2012,28(8):6833-6835,6952.

[11] Intersil Inc.Differential video amplifier with common mode sync encoder and serial digital interface:ISL59311[EB/OL]. (2011-12-19)[2015-01-24]http://www.intersil.com.

[12] 郑昊,钟志峰,郭昊,等.基于Arduino/Android的蓝牙通信系统设计[J].物联网技术,2012,30(5):50-51.

[13] 张凌,姚萌.蓝牙通信过程解析与研究[J].计算机应用研究,2002,29(10):146-148.

[14] 崔才豪,张玉华,杨树财.利用Arduino控制板的光引导运动小车设计[J].自动化仪表,2011,32(9):5-7.

[15] 赖超,龙曦,李金霖,等.基于Android 平台的手机后台监听技术[J].电脑知识与技术,2010(33):56-59.

Design of Intelligent Control System for Mobile Robot Based on Arduino

ZHU Yutian,CHEN Jinjie,ZHANG Bo,ZHOU Yuan

(School of Mechanical Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)

Current logistics industry robots are used for limited simple mechanical work such as stacking. We design a logistics robot control system based on Ardunio for the intelligent robot. With the Arduino as microprocessors, the control system sends control instructions to the robot via PC Android mobile phone. A machine under the Arduino board receives the instructions for controlling the motor operation to realize the control of the robot. The robot related sensors ensure the function of robot obstacle avoidance. The robot runs well in the real environment such as warehouses, capable of a predetermined line movement and avoiding obstacles.

mobile robot; Arduino; microprocessor; autonomous obstacle avoidance

2016- 06- 07

上海市自然科学基金(13ZR1458500)

朱雨田(1990-),男,硕士研究生。研究方向:机器人技术。

10.16180/j.cnki.issn1007-7820.2017.05.037

TP242

A

1007-7820(2017)05-135-04

猜你喜欢

移动机器人蓝牙超声波
蓝牙音箱的直线之美
移动机器人自主动态避障方法
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
蝙蝠的超声波
基于Niosll高精度超声波流量计的研究
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于Twincat的移动机器人制孔系统
紧急:蓝牙指尖陀螺自燃!安全隐患频出
蝙蝠的超声波
超声波流量计的研究