基于Android手机语音和Arduino控制板的机器人控制系统

2015-03-31 15:03谢杰腾颜晓文
物联网技术 2015年3期
关键词:语音识别蓝牙

谢杰腾 颜晓文

摘 要:随着Android终端的发展,为了让机器人的控制更加方便和人性化,提出以Android终端为研究重点,应用蓝牙通信技术来实现安卓手机无线控制机器人运动的方案。首先,利用Google开源的语音识别平台来设计机器人控制软件语音识别部分。其次,机器人的控制系统是用Ardunio控制板来驱动机器人的舵机,为了控制机器人的多个关节,将Arduino控制板和32路舵机控制板结合起来,这样能控制更多的舵机从而达到对机器人的双臂和双足的控制。最后,本系统实现安卓手机和Arduino控制板之间的蓝牙配对连接。试验表明,系统能够较好地实现机器人地实时控制。

关键词:机器人控制;Arduino ;Android ;语音识别 ;蓝牙

中图分类号:TP316 文献标识码:A 文章编号:2095-1302(2015)03-00-02

0 引 言

能够用语音与机器进行交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。随着科学技术的不断发展,出现了语音识别技术,这使人类的这个理想逐渐得以实现。本文以Android智能机和Arduino开发板为实现工具,结合家用仿人机器人平台,搭建好完整的语音识别控制系统,用户利用安卓手机提供的麦克风语音命令,输入语音信号经处理、识别,得出结果作用于服务机器人的行动动作,从而提供一种高效的、稳定的、实用性强的、高识别率的语音控制服务机器人系统。

1 系统总体方案设计

本文介绍的语音控制机器人服务系统包括安卓智能手机、Arduino主控制板、32路伺服舵机控制板以及机械系统四大部分组成。其中安卓手机不但充当采集语音信号的作用和将采集完的的语音信号发送到谷歌语音云平台进行识别,并将识别的语音结果返回,而且还充当发送控制标志位的角色。对于机器人的控制界面是运行在安卓操作系统上的应用程序,该程序是利用eclipse和安卓插件搭建的平台而开发出来的,通过在安卓操作系统的手机运行调试应用程序,直到达到满意的效果。总体框架图如图1所示。

2 分析及设计

2.1 硬件总体设计

本系统的硬件控制部分由Arduino Mega2560和奥松公司的32路伺服电机组成,实现对机器臂的控制。通过Arduino控制板外接外部传感器可以检测外部的环境参数,另外,为了实现蓝牙的通信,利用Arduino控制板的串口外接RB Bluetooth Transceive蓝牙转串口模块,利用该模块可以将蓝牙信号转换成串口信号。软件控终端用的是三星手机GTi8150,该手机的操作系统是Android 2.3版本。

图1 系统框图

本系统的通信部分涉及到三部分:第一处是安卓手机通过GPRS信号和谷歌云平台的通信,该通信遵守GPRS通信的协议。第二处是安卓手机和控制板之间的通信,此处利用的是蓝牙模块来实现二者之间的无线通信,这里主要是从手机发送机器人的动作控制标志位给主控制板。第三处则是舵机控制板和主控板之间通过串口的通信,其通信遵守串口的通信协议,这里主要是主控板将机器人的动作指令根据触发的控制标志位来发送给舵机控制板指令。

本系统的舵机控制板主要负责给各个舵机提供电源和解析发送过来的动作指令来控制舵机的目的。因为机器人的动作指令是根据舵机控制板的软件生成的,生成指令是通过USB转串口将PC和舵机控制板连接,而舵机则跟舵机控制板连接,当连接成功后,就可以通过软件控制和调节各个舵机的转动角度。同时要注意动作完成时间参数的调节,这个影响到舵机转动的速度。调节逐个舵机来对机器人的动作步调来进行规划,规划完成则保存相应的指令,并编写程序实现对该arduino主控板的控制。所以这里舵机控制板能够根据发送过来的动作指令来控制机器人的动作。

2.2 程序设计

系统软件主要包括两部分,一部分是安卓系统上的控制程序的设计,包括语音识别的控制和手动按键的控制,另外一部分是Arduino控制板中程序的设计。

安卓系统端软件的设计主要是利用手机的麦克风功能实现语音的输入,并且通过谷歌的语音引擎来实现对输入语音的识别,该系统软件语音识别部分流程如图2所示。

当换成手动输入时,直接根据相应的按键发送相应的触发标志到Arduino控制板。本系统的特色主要是实现语音的控制。

Arduino控制板端的程序主要是根据手机端发送过来的信号来发送相应的指令给舵机控制板来控制机器臂,其Arduino控制端程序流程图如图3所示。

图2 语音识别编程流程图 图3 Arduino控制端程序流程图

手机端控制系统是基于Android 2.1系统所编写的,所用开发工具为Eclipse集成开发环境,Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++、Python和Android的开发工具,在此开发环境下开发软件非常的方便。设计本系统手机端软件的程序界面,为了尽快实现程序的功能,本程序没有对软件界面设计做特别美化的设计,仅包含我们所用到的几个按钮和图形显示,以实现我们的功能为最大目标,设计手机端控制界面如图4所示。

3 测试与试验分析

该系统组装并调试,测试该系统,控制的机器人如图5所示,通过安卓手机软件实现机器人的运动控制,通过触击按键或者语音的输入来对每组命令进行循环测试。可以输入的语音命令有前进、后退、左转、右转、停止、拥抱、敬礼、叉腰、招手等动作。

具体测试步骤:

连接好线路,打开电源,观察知识点正常亮起,触击控制界面的蓝牙连接按钮,观察指示灯,以确保手机蓝牙和Arduino开发板的配对连接成功。否则,得检查系统的连接是否正确。

图4 手机端控制界面 图5 机器人

蓝牙配对连接成功后,先测试手动操作是否成功,分别触击前进、后退、左转、右转、停止按钮,观测机器人是否根据对应的指令做相应的运动。循环测试多次,保证系统的稳定。

测试完手动操作按钮之后,接下来测试语音控制的输入,触击语音输入控制按钮,会出来一个虚拟的麦克风,对着手机话筒说出前进,后退等控制命令,观测机器人是否能够根据你的语音来实现相应的运动。循环测试多次,保证系统的稳定。

最后试验分析,该控制程序能够稳定的实现都机器人运动的控制,达到了预订的目标和效果。

4 结 语

设计基于Android系统手机和Arduino控制板的机器人控制系统,通过接收人的语音或者按键来操作机器人的运动状态,采用安卓智能手机来进行语音的处理和谷歌云平台对语音的识别,利用蓝牙来进行数据的通信,舵机控制板软件规划出机器人的各种动作并且生成的动作指令,最后由控制板来实现完成该相应的动作。利用了蓝牙无线通信,摆脱有线困扰,使得系统有广泛的适用范围。

参考文献

[1] 田泽.嵌入式系统开发与应用教程[M].北京: 北京航空航天大学出版社,2005.

[2] 李全利.单片机原理及接口技术[M].北京: 高等教育出版社,2009.

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

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

[5] 何彪,周开班. 基于NFC 技术的蓝牙对象交换方法[J]. 微计算机信息, 2009(6) :133-134.

猜你喜欢
语音识别蓝牙
蓝牙音箱的直线之美
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
通话中的语音识别技术