黄道燚 陈乐珠 陈昌文
摘 要: 融合物联网、无线通信、安卓系统、语音文本播放等技术,设计一款基于图灵机器人的多功能智能机器人。在多功能智能系统硬件设计上,以STM32103C8T6作为主控芯片,驱动蓝牙模块与手机APP进行通信,接收指令和动作;与机器人动作控制芯片STC15W4K16S4通信,驱动机器人关节舵机转动,实现各种动作;驱动语音文本播放模块进行语音播报,实现聊天功能。在软件设计上,进行主控芯片的软件设计、动作控制芯片的程序设计、安卓应用界面和程序组件设计,并借助图灵机器人系统,实现与使用者的任意对话。相比传统聊天机器人,扩展的图灵机器人增加了肢体互动、语音互动等功能,且性价比合理。多功能智能机器人不仅可陪伴学习和娱乐,也为工业领域机器人设计和控制提出了新思路。
关键词: 图灵机器人;智能机器人;STM32103C8T6;语音文本播放;主控芯片
中图分类号:TP3;TN91 文献标识码:A 文章编号:2095-8412 (2020) 04-011-09
工业技术创新 URL: http://gyjs.cbpt.cnki.net DOI: 10.14103/j.issn.2095-8412.2020.04.003
引言
随着电子科学技术的不断发展与人民生活水平的提高,智能机器人产品越来越受到生产生活各个领域的关注。
目前,在智能机器人设计研究中,双足行走机器人功能比较单一,其原理大多基于机器人的行走控制,在人机互动方面尚有不足;在聊天对话机器人方面,针对应用软件的研究较多,硬件设计不够深入[1]。由此,本文从硬件设计和软件设计两方面,设计一款具有舞蹈、聊天等功能的智能机器人。研究思路是:首先进行系统整体方案的模块化设计;其次对硬件和软件进行详细设计;最后从成本、效果等方面对设计进行评价。
1 系统整体方案
本系统采用模块化设计,系统构成如图1所示。
系统采用STM32103C8T6作为主控芯片,协调整个系统。主控芯片驱动蓝牙模块与手机APP进行通信,接收手机APP下达的各种指令和动作;经串口与机器人动作控制芯片STC15W4K16S4进行通信,使其驱动机器人关节舵机的转动,实现机器人的各种动作;驱动OLED屏和眼睛动作控制舵机,模拟和显示机器人眼睛的动作;驱动语音文本播放模块[2]进行语音播报,实现聊天功能。电源模块为整个系统各个模块提供电压、实现电机驱动。系统各个部分协同工作,完成舞蹈、聊天等功能。作品实物和应用APP截图如图2所示。
2 系统硬件设计
系统硬件设计电路包括:主控芯片子电路、模拟眼睛及动作控制子电路、关节舵机控制子电路、聊天语音处理子电路、HC-06蓝牙通信子电路、电源电路。
2.1 主控芯片子電路
主控芯片子电路主要由主控芯片STM32F103C8T6及其最小系统构成,该芯片为32位单片机芯片,优点是具备比较强的抗干扰能力,不仅价格低廉,还具有较快的处理速度和较多的通信串口,能够合理地满足本系统的设计需求。主控芯片为本系统的调剂中心,组织和处理各个模块之间的功能配合,主控芯片及其最小系统电路如图3所示。
2.2 模拟眼睛及动作控制子电路
模拟眼睛及动作控制子电路如图4所示,主要使用OLED屏来模拟显示机器人的两只眼睛及其眼珠的滚动等动作。舵机模块则主要控制整个眼睛的上下移动,使得机器人显得更加灵活、有趣。舵机模块由主控芯片STM32F103C8T6的PB4、PB5管脚控制,而OLED屏则由PB12、PB13、PB14、PB15管脚驱动。
2.3 关节舵机控制子电路
关节舵机控制子电路包括两部分:机器人动作控制芯片电路和机器人关节舵机电路。
机器人动作控制芯片电路如图5所示,包括机器人动作控制芯片STC15W4K16S4、串口电平转换芯片CH340G、存储芯片W25Q64等,主要完成机器人关节舵机的驱动[3]、动作组的存储、与PC端上位机及系统主控芯片STM32F103C8T6的串口通信等功能。
机器人关节舵机电路如图6所示,由6个舵机构成。主要功能为配合机器人动作控制芯片,完成机器人行走、弯腰、翻跟斗等各种动作。舵机的转动由STC15W4K16S4单片机的P1.7、P5.4、P5.5、P3.2、P3.5、P3.6等进行驱动控制。
2.4 聊天语音处理和蓝牙通信子电路
图7为聊天语音处理和蓝牙通信子电路,由主控芯片STM32F103C8T6的两个串口对其进行驱动。蓝牙模块起到连接主控芯片和手机APP的作用,完成手机APP和主控芯片之间的信息交互,而语音文本播放模块的功能,主要是将主控芯片发送过来的文本信息播读出来,完成聊天语音处理和输出功能。
2.5 电源电路
电源电路主要由AMS1117-3.3、AMS1117-5.3稳压芯片、二极管、电容等构成。机器人电源采用锂电池,电压为9 V,而主控芯片和机器人控制芯片的工作电压分别为3.3 V和5 V。电源电路主要进行上述电压的转换和实现。
3 系统软件设计
系统的软件设计包括主控芯片的软件设计、动作控制芯片的程序设计、安卓应用界面和程序组件设计。
3.1 系统主控芯片的软件设计
主控芯片STM32F103C8T6的总体软件设计包括:
(1)初始化。包括I/O口、定时器、串口通信等的初始化工作。
(2)眼睛显示。驱动OLED屏显示初始眼睛图片,其中单片机的PB12、PB13管脚驱动左边屏,令其显示左眼图片;PB14、PB15管脚驱动右边屏,令其显示右眼图片。本设计所使用的OLED屏具有128×64黑白像素,采用I2C通信。在程序中,使用普通的I/O口来模拟I2C通信,由于篇幅关系,具体的驱动过程不作详述。
(3)播报启动提示音。驱动语音文本播放模块播报“主人你好,请连接蓝牙!”(语音文本播放模块的驱动过程见后)。
(4)串口中断处理子程序。在本程序中,串口中断主要是指收到来自蓝牙模块的数据而产生的中断,而蓝牙模块的数据来源为手机APP,所以实际上所处理的数据为手机APP的动作指令或文本信息。将信息接收并存储到对应的数组,等待后续处理。
串口中断处理子程序流程图如图8所示。根据帧头判断数据是动作指令还是语音文本,然后对后面的数据进行接收,并存入相应的数组。当数据为语音文本信息时,累加信息数据长度,作为后面语音文本输入的参数之一。
动作指令缓存数组res[]的各个元素为:
{0X5A,0X5A,0X02,0X01,0X00,0X00,0X96,0X96};
各个元素的含义依次为:
帧头、帧头、动作组序号、运行次数、左眼参数、右眼参数、左眼舵机1参数、右眼舵机2参数。
文本信息数组hanzi[]存储要播报的文本数据,变量cnt存储文本数据的长度。
(5)驱动机器人动作控制MCU。当机器人收到来自手机APP的动作指令时,判断动作指令,并按照与机器人动作控制MCU事先约定好的通信协议[3],发送对应的数据组,令机器人执行相对应的动作。处理动作指令及驱动机器人动作控制MCU子程序流程如图9所示,其中res[2]存储的值为动作组序号。
机器人动作控制MCU的通信协议如下:
{0X55,0X55,0X05,0X06,0X01,0X00,0X02};
各个元素的含义依次为:
帧头、帧头、数据长度(帧头除外)、动作组指令、动作组编号、动作组运行次数、动作组运行次数。
(6)語音文本播放子程序。当机器人收到来自手机APP的文本信息时,驱动语音文本播放模块播读收到的文本信息。该文本的起始文本来源于图灵机器人服务器[4],其针对用户对话进行回复,播读出来,相当于回答了用户的对话。语音文本播放子程序流程如图10所示。
(7)眼睛动作子程序。眼睛动作使用OLED屏来实现,对眼睛图片进行切换,使用定时器对图片组进行定时切换,模拟出眼珠的滚动、眨眼等动作。另外,配合眼部动作舵机,控制整个眼睛的晃动。
3.2 动作控制芯片的程序设计
动作控制芯片STC15W4K16S4的程序设计流程如图11所示。
系统启动后,对串口通信、定时器等进行初始化。初始化完成后,等待串口通信中断,并接收数据指令,根据收到的指令执行相对应的动作操作或存储。机器人的动作执行由6个舵机来完成,6个舵机分别由单片机P1.7、P5.4、P5.5、P3.2、P3.5、P3.6口进行控制。本设计采用的舵机为脉冲控制,单片机向舵机发送周期为20 ms的方波脉冲,其中高电平的持续时间为0~2.5 ms,通过改变高电平的持续时间来改变舵机的转动角度。程序通过定时器配合来实现,先用定时器定时输出所需要的高电平时间t1,此段时间管脚输出高电平,从高电平到再定时输出低电平的持续时间为t2,且t2=20 ms-t1,此段时间管脚输出低电平,以此往复,即可输出所需要的方波脉冲。在本设计中,6个舵机使用同一个定时器,采用时分复用的方法对6个舵机分别进行控制。
3.3 安卓应用界面和程序组件设计
手机APP基于安卓系统,主要使用app-inventor软件[5]进行设计,设计界面如图12所示,其中包括蓝牙操作按钮和列表选择框、动作控制按钮、画布和精灵球(方向球)、话筒按钮,以及显示文本、布局、背景等。
APP启动后,引导用户进行机器人蓝牙模块的配对和连接。
蓝牙连接完成后,实现与人的动作交互,例如:若用户点击了动作按钮或者拖动了方向球,则通过蓝牙客户端发送相对应的指令到蓝牙模块,蓝牙模块再将指令转发到系统主控芯片,让其控制机器人完成相对应的动作。
当用户与APP进行语音交互时,调用科大讯飞语记程序对用户的语音进行识别,并根据识别后的文本内容进行处理,流程如图13所示。如果包含关键字,则按照图13中“含关键字”的流程进行处理;如果不含关键字,则为普通聊天,此时需要将用户已被识别的语音文本通过手机网络发送到图灵机器人服务器进行处理。APP与图灵服务器的通信协议为http协议,在这个通信过程中,APP发送get请求到图灵机器人服务器,请求地址为服务器的地址,请求的参数一个为在服务器申请的api-key[6],另一个则为识别后的文本。图灵机器人服务器经云计算、知识库等进行处理,处理后会返回相对于该文本的应答语句文本。图灵机器人服务器的应答数据为JSON格式,需要对里面的文本信息进行提取,提取后再用GB2312格式对其进行编码(服务器返回的格式为UTF-8,不能直接被系统的语音文本模块识别)。此外,帧头、帧尾通过蓝牙客户端被发送到主控MCU,主控MCU其进行处理后,将其发送到语音文本播放模块进行播报,相当于语音回复了用户的对话。
4 结论与讨论
本文从硬件和软件设计两方面,融合物联网、无线通信、安卓软件、语音文本播放等技术,设计了一款能够舞蹈、聊天的智能机器人。该机器人不仅通过关节舵机控制电路,实现了翻跟斗、踢腿、舞蹈等高难度动作,而且借助图灵机器人,实现了与使用者的任意对话。虽然该机器人目前主要用于陪伴学习和娱乐,但其也为工业领域机器人设计和控制提出了一种新思路。
从成本上考虑,市场上的舞蹈机器人或聊天机器人一般都比较昂贵,而且大部分聊天机器人都是固定对话机器人,而任意对话的聊天机器人一般都要数千元。本文借助图灵机器人服务器的设计思路使得互动功能的成本大大降低,由原来的数千元降低为数十元。尽管目前语音聊天只能配合手机才能完成,但相信这个缺点是容易解决的。
基金項目
1. 教育部“高等职业教育创新发展行动计划”项目电子信息公共实训中心(教职成函〔2019〕10号);
2. 教育部产教融合促进计划(教规建中心函〔2019〕9号);
3. “广东省高职教育校内实践教学基地”项目智能产品技术与开发实训基地(粤教职函〔2018〕194号);
4. 汕尾职业技术学院高水平专业群建设项目(汕职院发〔2019〕62号)。
参考文献
[1] 丁猛, 张中辉, 刘蔚钊. 开放式串联教学机器人控制系统设计[J]. 机电信息, 2020(15): 140-141, 144.
[2] 谢宇忻, 刘延雯, 王铄, 等. ROS框架下移动机器人室内定位导航研究[J]. 工业技术创新, 2019, 6(1): 49-53.
[3] 袁瑞雪. 基于智能终端的聊天机器人设计[J]. 数字技术与应用, 2019, 37(10): 144-145.
[4] 郭鹏, 杨武华, 杨国正, 等. 仿生机器人民族舞蹈表演的实现[J]. 科学技术创新, 2018(35): 68-69.
[5] 胡前雨, 汪正东, 曾沁月, 等. VEX机器人抓取方法设计与实现[J]. 工业技术创新, 2019, 6(6): 8-12.
[6] 黄道燚, 陈敏敏. 多功能化智能台灯[J]. 电子制作, 2020(2): 11-16.
作者简介:
黄道燚(1984—),男,汉族,广东潮州人,讲师,硕士。主要从事电子技术方面的工作。
陈乐珠(1986—),女,汉族,广东揭阳人,讲师,硕士研究生。主要从事电子技术方面的工作。
陈昌文(1969—),通信作者,男,广东阳春人,副高,汕尾职业技术学院机电工程系主任,主要从事教育管理、数理统计、应用统计、智能制造专业群建设研究。
E-mail: sw_chenchangwen@163.com
(收稿日期:2020-06-02)
Realization of Multi-functional Intelligent System Based on Turing Robot
HUANG Dao-yi, CHEN Le-zhu, CHEN Chang-wen
(Shanwei Polytechnic, Shanwei 516600, China)
Abstract: A multi-functional intelligent robot based on Turing robot is designed by integrating technologies including Internet of Things, wireless communication, Android system and voice text playback. In the hardware design of such a multi-functional intelligent system, STM32103C8T6 is used as the main control chip to drive the Bluetooth module to communicate with the mobile APP, and further to receive commands and actions; by communicating with the robot action control chip STC15W4K16S4, the joint steering gear of the robot is driven to rotate and realize various actions; the voice text playback module is driven to carry out the voice broadcast and realize the chat function. Meanwhile, in the software design, the software design of the main control chip, the program design of the action control chip, the design of the Android application interface and the program component are carried out, and with the help of Turing robot system, any dialogue with the user can be realized. Compared with traditional chat robots, the advanced Turing robot increases functions including gesture interaction and voice interaction, with a reasonable cost performance. Such a multi-functional intelligent robot cannot only accompany learning and entertainment, but also provide a new idea for the robot design and control in the industrial field.
Key words: Turing Robot; Intelligent Robot; STM32103C8T6; Voice Text Playback; Main Control Chip