现实版铁甲钢拳 4 ——语音控制器
2014-08-261.2万
精华项目
AI 快速预览详细
本文介绍了一个基于中文语音识别模块和Arduino UNO控制板的语音控制器项目。通过详细的硬件连接和程序编写步骤,用户可以实现通过语音指令控制机器人的动作。项目中使用的硬件包括中文语音识别模块、Arduino UNO、IO传感器扩展板、LED发光模块等。通过编写程序,实现了语音指令与机器人动作的对应关系,如前进、后退、左转、右转等。这个项目适合机器人爱好者和初学者,特别适合STEM教育场景。
![]() 虽然之前写了几篇铁甲钢但其实还真没看过《铁甲钢拳Real Steel》这部电影。这里要感谢电影频道,让我前段时间在电视上看了这部电影,总体感觉是剧情很老套,但我们看的不是剧情,对吧!!如果你看过史泰龙主演的《洛奇》系列,就知道这是个经典的桥段,甚至感觉就是《洛奇》的续集,或者说是在向《洛奇》致敬。 ![]() 图1 《铁甲钢拳》海报 在看电影的时候,我发现亚当在中间的一段时间都是采用语音控制的,小男主人公给亚当添加了语音控制模块。为了表明我是看过电影的,于是决定为我的机器人也做一个语音控制器。 ![]() ![]() 图2 器件清单 因为之前已经制作过一个臂带式体感交互控制器,里面的很多内容都是可以借鉴的,比如无线模块就不需要在进行配置了。而且这次使用的器件都是可以直接插接的模块,所以制作起来就相当的简单了。 首先把中文语音识别模块插接在UNO控制板上,然后再将IO扩展板插接在中文语音识别模块上,完成后如下图所示。 ![]() 图3 将3个模块插接起来 其实现在我们已经完成了绝大部分的硬件工作,我说的是真的,剩下的就是连接电池盒、放入电池、插上无线模块,至于那个LED发光模块是起到指示作用的,连接到IO传感器扩展板上的LED发光模块点亮时表示Arduino正在处理语音数据,看起来就像宾馆房间门口的请勿打扰。我们在程序中使用引脚7来控制这个LED,所有我们将LED模块连接到引脚7,如下图所示。 ![]() 图4 接上LED发光模块 ![]() 之后就开始编写程序了,大家会发现我们在语音指令一列中除了汉字,还有一段拼音。这是因为这个语音模块识别的是“语音”。对于非特定人语音识别来说,在描述关键词语时,是用音标标注出要识别的关键词语。对于Voice Recognition模块支持的中文识别来说,就是用拼音来描述出关键词语。也就是说,只要是拼音可以拼出的发音,都是可以进行识别的。 在程序中我们用了一个数组来保存这几段语音值。 而将语音转换成控制机器人的触发指令我们放在了函数finally()中,函数中使用了一个switch来对应不同的指令。详细代码如下: 以上的代码是在中文语音识别模块的示例代码上修改而来的,主要就是修改了finally()函数,模块的示例代码大家可以到DFRobot的网站上下载。 程序下载完成后,我们再接上电源和无线模块。这样,一个简单的语音控制器就做好了,外观如下图所示。 ![]() 图5 完成后的语音控制器 另外要说明一点,我们使用的中文语音识别模块可以连接一个单声道语音输入设备,连接接口如下图所示。 ![]() 图6单声道输入接口 通常我们使用的是板载的MIC来输入语音,但如果你觉得这样不够酷,想像电影里的男主人公一样,利用头戴的语音输入设备来输入,就可以利用这个单声道输入接口。![]() 图7 《铁甲钢拳》剧照 把麦克戴在头上,然后把我们之前的那一堆硬件板和电池都放在包里就可以了。不过使用单声道输入设备时还要更改一下程序,在setup()中的Voice.Initialise()函数中的第一个参数要改成MONO,如下所示。To be continued... 相关链接:语音识别扩展板,IO 传感器扩展板,LED发光模块,无线程序下载模块,UNO,电池盒,电池 |













