一种基于Arduino的智能跳舞机器人设计
2018-12-12杨海涛
杨海涛
摘 要 文章介绍了一种基于Arduino的智能跳舞机器人,该机器人以Arduino单片机作为控制核心,通过语音识别技术模拟人类的跳舞动作,并在舞蹈过程中利用超声测距模块自主避障,同时可在手机端通过蓝牙模块进行控制,从而增加机器人的交互能力和趣味性,具有一定的应用价值。
关键词 语音识别;Arduino单片机;超声避障;蓝牙控制
中图分类号 TP2 文献标识码 A 文章编号 1674-6708(2018)223-0151-03
随着科学技术的发展,机器人已经逐步走进我们的生活[1-2]。作为一种娱乐机器人的跳舞机器人,是一种集合了结构设计、计算机技术、控制技术、传感器技术以及通信技术等多学科知识的融合产物,在具备极强的观赏性和趣味性的同时,更体现了现代科技的日新月异[ 3 ]。
文章介绍了一款基于Arduino开源平台的小型跳舞机器人系统的设计与实现,该系统基于3D打印技术对机器人的主要结构部件进行设计和制造,利用PWM信号对机器人舵机进行控制,在主控制器的控制下模拟人类在音乐中翩翩起舞。同时,利用超声测距技术实现机器人的避障;通过语音识别技术,为机器人设计语音系统,在表演舞蹈前,实现语音控制与良好的交互功能。
1 跳舞机器人设计方案
跳舞机器人的主要结构部件如足部、头部外壳、腿部等均采用3D打印技术制作完成,极大地提高制作的效率,减少了制作的成本。机器人的控制核心采用Arduino开源平台,足部为2个自由度,驱动采用舵机作为驱动器,完成机器人的舞蹈动作。此外,蓝牙模块方便手机端进行交互,超声波模块能够实时避开障碍物的阻挡,语音控制模块实现机器人的语音控制。根据上述基本要求,所设计的整体方案如图1所示。
2 系统硬件设计
2.1 主控模块
由于Arduino的开源特点,并且便于初学者进行学习和开发,故采用Arduino作为跳舞机器人的主控模块,本设计选用以ATmega32u4作为主控芯片的Arduino?NANO作为主控制器对跳舞机器人进行设计与开发。它是Arduino系列中基于ATmega32u4的一款微控制器。它直接使用ATmega32u4的USB通信功能,在调试时候通过USB连接电脑和Arduino? NANO即可进行程序的编写。
2.2 避障模塊
为了使得所设计的跳舞机器人在舞蹈过程中能够自主避开障碍物,本文采用超声波测距的方式,选用的避障模块型号为HC-SR04。该模块传输距离远、测距精度高,非常适合于智能机器人的避障设计。将该模块安装于跳舞机器人的头部位置,根据超声波原理和主控单元的接口配置,对HC-SR04超声波测距模块进行设计。所设计的电路如图2所示,主要包括超声波发射与接收电路、主控单元的接口电路等。
2.3 智能语音交互模块
智能语音交互控制模块主要用于机器人和操作人员进行交流控制。本文采用凌阳公司生产的型号为SPCE061A的专用语音处理模块。该模块具有一套完整的具备基本功能的语音模块电路,除了内置的具有自动增益控制功能的单通道声音模—数转换器之外,还配置了麦克风放大电路,提供有系统的语音开发API工具包及资料,方便开发使用。
在该模块的放音电路中,采用了仅需2.4V供电的型号为SPY0030的功放集成电路,其输出功率可高达0.7W。设计过程中,在运算放大器前端添加了阻值为1K的精密可调电阻器,用以调整音量的大小,使得音量能够达到较好的使用效果。所设计的放音电路如图3所示。
语音识别的好坏在很大程度上取决于麦克风输入电路的设计,因此,在设计过程中添加了滤波电路的同时,引入了自动增益(AGC)功能来提高识别的效果。所设计的麦克风输入电路如图4所示。从图中可以看出,随着MIC产生的波形变化,MICP端和MICN端也发生变化,并且在这两个端口上形成的波形互为反相。经过放电电路将语音数据信号放大,再经过模数转换送到主控模块进行诸如语音数据压缩、识别等处理。
3 系统软件设计
在完成跳舞机器人的总体结构与硬件电路设计的基础上,基于模块化软件设计详细,采用C语言完成系统的软件设计。整个系统的软件结构主要由主程序和若干个子程序构成,跳舞机器人的舞蹈动作、语音交互控制以及自主避障功能等均在相应的子程序中完成。主程序仅根据时序要求进行子程序的调用,从而使得整个软件具有清晰的结构和良好的可维护性。
3.1 主程序设计
主程序主要负责整个系统的时序流程,包括系统设置的初始化、堆栈指针设置、中断向量设置以及系统的主循环结构等。系统的初始化主要包括舞蹈动作的初始化和寄存器初始化。主程序流程如图5所示。
3.2 语音识别程序
系统的语音识别主要包括语音的训练、存储、识别、舞蹈动作控制,以及相关的中断服务子程序等,它是具有语音功能机器人系统设计中重要的一环。语音识别程序的流程图如图6所示。
4 结论
本文介绍了一款基于Arduino单片机的小型舞蹈机器人系统的设计与实现,介绍硬件系统的整体结构、控制电路设计和程序设计方案,该跳舞机器人利用PWM信号实现对伺服舵机的控制,利用超声波测距技术实现自主避障,利用语言识别技术增加机器人的交互能力和趣味性。
参考文献
[1]林海华.基于ATmega8515L的舞蹈机器人控制系统设计与研究[D].西安:西北工业大学,2005.
[2]鲁冠华,刘星.基于凌阳单片机的跳舞机器人设计[J].山东水利职业学院院刊,2009(2).
[3]王泽红,彭熙,刘思源,等.基于Arduino单片机的舞蹈机器人系统的设计与实现[J].电子世界,2018(6).