基于Android手机语音和Arduino控制板的机器人控制系统
扫描二维码
随时随地手机看文章
引 言
能够用语音与机器进行交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。随着科学技术的不断发展,出现了语音识别技术,这使人类的这个理想逐渐得以实现。本文以 Android 智能机和 Arduino 开发板为实现工具,结合家用仿人机器人平台,搭建好完整的语音识别控制系统,用户利用安卓手机提供的麦克风语音命令,输入语音信号经处理、识别,得出结果作用于服务机器人的行动动作,从而提供一种高效的、稳定的、实用性强的、高识别率的语音控制服务机器人系统。
1 系统总体方案设计
本文介绍的语音控制机器人服务系统包括安卓智能手机、 Arduino 主控制板、32 路伺服舵机控制板以及机械系统四大 部分组成。其中安卓手机不但充当采集语音信号的作用和将采 集完的的语音信号发送到谷歌语音云平台进行识别,并将识 别的语音结果返回,而且还充当发送控制标志位的角色。对 于机器人的控制界面是运行在安卓操作系统上的应用程序,该 程序是利用 eclipse 和安卓插件搭建的平台而开发出来的,通 过在安卓操作系统的手机运行调试应用程序,直到达到满意 的效果。总体框架图如图 1 所示。
2 分析及设计
2.1 硬件总体设计 本系统的硬件控制部分由 Arduino Mega2560 和奥松公司 的 32 路伺服电机组成,实现对机器臂的控制。通过 Arduino 控制板外接外部传感器可以检测外部的环境参数,另外,为 了实现蓝牙的通信,利用 Arduino 控制板的串口外接 RB Bluetooth Transceive 蓝牙转串口模块,利用该模块可以将蓝牙 信号转换成串口信号。软件控终端用的是三星手机 GTi8150, 该手机的操作系统是 Android 2.3 版本。
本系统的通信部分涉及到三部分 :第一处是安卓手机通 过 GPRS 信号和谷歌云平台的通信,该通信遵守 GPRS 通信 的协议。第二处是安卓手机和控制板之间的通信,此处利用的 是蓝牙模块来实现二者之间的无线通信,这里主要是从手机 发送机器人的动作控制标志位给主控制板。第三处则是舵机 控制板和主控板之间通过串口的通信,其通信遵守串口的通信 协议,这里主要是主控板将机器人的动作指令根据触发的控 制标志位来发送给舵机控制板指令。
本系统的舵机控制板主要负责给各个舵机提供电源和解 析发送过来的动作指令来控制舵机的目的。因为机器人的动作 指令是根据舵机控制板的软件生成的,生成指令是通过 USB 转串口将 PC 和舵机控制板连接,而舵机则跟舵机控制板连 接,当连接成功后,就可以通过软件控制和调节各个舵机的 转动角度。同时要注意动作完成时间参数的调节,这个影响到 舵机转动的速度。调节逐个舵机来对机器人的动作步调来进 行规划,规划完成则保存相应的指令,并编写程序实现对该 arduino 主控板的控制。所以这里舵机控制板能够根据发送过来的动作指令来控制机器人的动作。
2.2 程序设计
系统软件主要包括两部分,一部分是安卓系统上的控制 程序的设计,包括语音识别的控制和手动按键的控制,另外 一部分是 Arduino 控制板中程序的设计。
安卓系统端软件的设计主要是利用手机的麦克风功能实 现语音的输入,并且通过谷歌的语音引擎来实现对输入语音 的识别,该系统软件语音识别部分流程如图 2 所示。
当换成手动输入时,直接根据相应的按键发送相应的触 发标志到 Arduino 控制板。本系统的特色主要是实现语音的 控制。
Arduino 控制板端的程序主要是根据手机端发送过来 的信号来发送相应的指令给舵机控制板来控制机器臂,其 Arduino 控制端程序流程图如图 3 所示。
手机端控制系统是基于 Android 2.1系统所编写的,所用 开发工具为 Eclipse 集成开发环境,Eclipse 是著名的跨平台的 自由集成开发环境(IDE)。最初主要用来 Java 语言开发,但 是目前亦有人通过插件使其作为其他计算机语言比如 C++、 Python 和 Android 的开发工具,在此开发环境下开发软件非 常的方便。设计本系统手机端软件的程序界面,为了尽快实现 程序的功能,本程序没有对软件界面设计做特别美化的设计, 仅包含我们所用到的几个按钮和图形显示,以实现我们的功能 为最大目标,设计手机端控制界面如图 4 所示。
3 测试与试验分析
该系统组装并调试,测试该系统,控制的机器人如图 5 所示,通过安卓手机软件实现机器人的运动控制,通过触击按键或者语音的输入来对每组命令进行循环测试。可以输入的语音命令有前进、后退、左转、右转、停止、拥抱、敬礼、叉腰、招手等动作。
具体测试步骤:
连接好线路,打开电源,观察知识点正常亮起,触击控制界面的蓝牙连接按钮,观察指示灯,以确保手机蓝牙和Arduino 开发板的配对连接成功。否则,得检查系统的连接是否正确。
图4 手机端控制界面图5 机器人
蓝牙配对连接成功后,先测试手动操作是否成功,分别触击前进、后退、左转、右转、停止按钮,观测机器人是否根据对应的指令做相应的运动。循环测试多次,保证系统的稳定。
测试完手动操作按钮之后,接下来测试语音控制的输入, 触击语音输入控制按钮,会出来一个虚拟的麦克风,对着手机话筒说出前进,后退等控制命令,观测机器人是否能够根据你的语音来实现相应的运动。循环测试多次,保证系统的稳定。
最后试验分析,该控制程序能够稳定的实现都机器人运动的控制,达到了预订的目标和效果。
结 语
设计基于Android 系统手机和 Arduino 控制板的机器人控制系统,通过接收人的语音或者按键来操作机器人的运动状态,采用安卓智能手机来进行语音的处理和谷歌云平台对语音的识别,利用蓝牙来进行数据的通信,舵机控制板软件规划出机器人的各种动作并且生成的动作指令,最后由控制板来实现完成该相应的动作。利用了蓝牙无线通信,摆脱有线困扰,使得系统有广泛的适用范围。