基于Arduino平台语音控制仿人类机械头设计
2018-02-25王伟
王伟
摘要 设计了一种基于Arduino平台、伺服舵机、舵机驱动板、LD3320中文语音识别模块控制的模仿人类动作的机械头。该机械头可以实现根据非特定人的不同语音命令完成扭头、转眼、摇手臂、说话、唱歌等动作的机器模型,具有一定的实用、娱乐和参考价值。
【关键词】Arduino 语音识别 舵机
近年来语音识别技术为使用者提供各种服务,语音识别技术实现了简单易行的人机交互接口,更好的提升了用户体验度。为此,笔者2013年底设计了一款仿人类动作的机械头模型。
1 机械头模型设计原理
基于Arduino平台语音控制仿人类机械头模型,其工作原理为:非特定人发出的语音信号经语音识别模块转换成特定的字符串传送到Arduion开发板,开发板接收到命令后发送指令到舵机驱动板,由驱动板驱动相应舵机转动,配合事先录入的MP3语音信息作出相应的语音输出,达到动作和语音相统一,实现人机对话和互动。
2 机械头硬件设计介绍
本文设计的基于Arduino的语音控制仿人类机械头,是建立在语音识别技术基础上,该机械头主要包括五个部分:1个Arduino Uno模块、1个LD3320语音识别模块、1个32路舵机驱动版,6个伺服舵机、1个方便面盒子。
2.1 Arduino Uno模块工作原理
Arduino Uno采用的微处理器是ATmega328.该版本包括14個数字10,6个模拟输入IO,16MHZ的晶体,USB接口,电源接口,烧录头,复位按钮等。Arduino还提供了自己的IDE开发环境,支持Winows、LinuX、MACOS等主流的操作系统。如图1所示。
2.2 LD3320中文语音识别模块工作原理
LD3320是ICRoute公司生产的一款非特定语音识别芯片,它内置有非特定语音识别的DSP (Digital Signal Processing)算法,支持动态添加50条识别指令,无需外挂其它辅助器件,单一芯片即可完成语音识别,并且直接支持MP3数据的语音播放。如图2所示。
2.3 舵机驱动板工作原理
舵机转动时电流较大,Arduino上的芯片可能会因为过流保护而导致损害,因此不能采用Arduino板上的电源直接给舵机供电,需要采用外部电源。舵机有三根引线,黑色或棕色为地线,红色为电源线,黄色为信号线。该舵机驱动板能独立供电,同时控制32路通道,并且速度可调,信号输出:PWM(精度0.5us)。鸵机驱动分辨率:0.5us,0.045度。波特率范围9600, 19200, 38400, 57600, 115200,128000。支持98%以上的舵机,板载512K存储芯片。如图3所示。
2.4 舵机的工作原理
舵机主要是由外壳、电路板、驱动马达、减速器与位置检测元件所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的IC驱动无核心马达开始转动,透过减速齿轮将动舵机力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。如图4所示。
2.5 方便面盒子
该设计中方便面盒子的作用主要用于舵机的位置固定,固定2个眼睛、2个手臂、1个上嘴巴,1个扭头关节。如图5所示。
3 各硬件模块连接介绍
语音识别模块的TX与Arduino控制器的RX连接,Arduino控制器的TX与舵机控制板的RX连接,舵机控制板使用外置电源连接VS和GND。Arduino供电用的USB供电,语音识别模块用USB供电。舵机分别连接舵机控制板的Sl-S6。
4 软件设计部分
本项目软件包括Arduino IDE,舵机上位机UI,语音识别模块配置文件修改。
4.1 Arduino Uno软件设计
在Arduino IDE编程设计中,主要作用是像人的大脑一样识别判断从语音识别模块中传过来的值,并将信号传送给舵机驱动板,让驱动板驱动相应舵机做相应的动作。
例如以下代码:
int comdata=O;//初始化值为O
void setup()
{
Serial.begin(9600); 11定义波特率为9600
)
void loop()
{
if (Serial.available()>O)//判断语音模块是否传值过来
{
comdata+=int (Serial.read());//获取所传的值
delay(20);
Serial.println(comdata);,/将获取到的值传送给舵机驱动板
)
if( comdata==5) //判断传过来的值是否等于“5”,接着执行“转眼睛”命令
{
Serial.print(”#1P800TlOOO\r\n);//1号舵机旋转到脉宽为800的位置,使用时间lOOOms
delay(1000);//延时lOOOms,舵机刚好执行完上一条命令
} )
4.2 舵机驱动板上位机
上位机是指可以直接发出操控命令的计算机, 一般是PC/host computer/mastercomputer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等)。在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机。如图6所示。
4.3 语音识别模块配置文件的修改
MP3语音文件需要事先录入好存入语音识别模块的SD卡中,通过SD卡中的mi配置文件修改参数配置,如图7所示。
5 结语
本文设计了一种基于Arduino平台、伺服舵机、舵机驱动板、LD3320中文语音识别模块控制的模仿人类动作的机械头。本文取得了一定语音控制仿人类机械头的初步研究成果,在此基础上可以继续研究仿人类表情的机器人的设计和研制。
参考文献
[1]林敏,李强,科技资讯,基于arduino的语音控制系统[J].科技资讯,2016.
[2]蔡睿妍,基于Arduino的舵机控制系统设计[J].电脑知识与技术,2012.