黃道燚 陳樂珠 陳昌文
摘 ? 要: 融合物聯(lián)網(wǎng)、無線通信、安卓系統(tǒng)、語音文本播放等技術(shù),設(shè)計一款基于圖靈機器人的多功能智能機器人。在多功能智能系統(tǒng)硬件設(shè)計上,以STM32103C8T6作為主控芯片,驅(qū)動藍(lán)牙模塊與手機APP進行通信,接收指令和動作;與機器人動作控制芯片STC15W4K16S4通信,驅(qū)動機器人關(guān)節(jié)舵機轉(zhuǎn)動,實現(xiàn)各種動作;驅(qū)動語音文本播放模塊進行語音播報,實現(xiàn)聊天功能。在軟件設(shè)計上,進行主控芯片的軟件設(shè)計、動作控制芯片的程序設(shè)計、安卓應(yīng)用界面和程序組件設(shè)計,并借助圖靈機器人系統(tǒng),實現(xiàn)與使用者的任意對話。相比傳統(tǒng)聊天機器人,擴展的圖靈機器人增加了肢體互動、語音互動等功能,且性價比合理。多功能智能機器人不僅可陪伴學(xué)習(xí)和娛樂,也為工業(yè)領(lǐng)域機器人設(shè)計和控制提出了新思路。
關(guān)鍵詞: 圖靈機器人;智能機器人;STM32103C8T6;語音文本播放;主控芯片
中圖分類號:TP3;TN91 ? ?文獻標(biāo)識碼:A ? ?文章編號:2095-8412 (2020) 04-011-09
工業(yè)技術(shù)創(chuàng)新 URL: http://gyjs.cbpt.cnki.net ? ?DOI: 10.14103/j.issn.2095-8412.2020.04.003
引言
隨著電子科學(xué)技術(shù)的不斷發(fā)展與人民生活水平的提高,智能機器人產(chǎn)品越來越受到生產(chǎn)生活各個領(lǐng)域的關(guān)注。
目前,在智能機器人設(shè)計研究中,雙足行走機器人功能比較單一,其原理大多基于機器人的行走控制,在人機互動方面尚有不足;在聊天對話機器人方面,針對應(yīng)用軟件的研究較多,硬件設(shè)計不夠深入[1]。由此,本文從硬件設(shè)計和軟件設(shè)計兩方面,設(shè)計一款具有舞蹈、聊天等功能的智能機器人。研究思路是:首先進行系統(tǒng)整體方案的模塊化設(shè)計;其次對硬件和軟件進行詳細(xì)設(shè)計;最后從成本、效果等方面對設(shè)計進行評價。
1 系統(tǒng)整體方案
本系統(tǒng)采用模塊化設(shè)計,系統(tǒng)構(gòu)成如圖1所示。
系統(tǒng)采用STM32103C8T6作為主控芯片,協(xié)調(diào)整個系統(tǒng)。主控芯片驅(qū)動藍(lán)牙模塊與手機APP進行通信,接收手機APP下達的各種指令和動作;經(jīng)串口與機器人動作控制芯片STC15W4K16S4進行通信,使其驅(qū)動機器人關(guān)節(jié)舵機的轉(zhuǎn)動,實現(xiàn)機器人的各種動作;驅(qū)動OLED屏和眼睛動作控制舵機,模擬和顯示機器人眼睛的動作;驅(qū)動語音文本播放模塊[2]進行語音播報,實現(xiàn)聊天功能。電源模塊為整個系統(tǒng)各個模塊提供電壓、實現(xiàn)電機驅(qū)動。系統(tǒng)各個部分協(xié)同工作,完成舞蹈、聊天等功能。作品實物和應(yīng)用APP截圖如圖2所示。
2 ?系統(tǒng)硬件設(shè)計
系統(tǒng)硬件設(shè)計電路包括:主控芯片子電路、模擬眼睛及動作控制子電路、關(guān)節(jié)舵機控制子電路、聊天語音處理子電路、HC-06藍(lán)牙通信子電路、電源電路。
2.1 ?主控芯片子電路
主控芯片子電路主要由主控芯片STM32F103C8T6及其最小系統(tǒng)構(gòu)成,該芯片為32位單片機芯片,優(yōu)點是具備比較強的抗干擾能力,不僅價格低廉,還具有較快的處理速度和較多的通信串口,能夠合理地滿足本系統(tǒng)的設(shè)計需求。主控芯片為本系統(tǒng)的調(diào)劑中心,組織和處理各個模塊之間的功能配合,主控芯片及其最小系統(tǒng)電路如圖3所示。
2.2 ?模擬眼睛及動作控制子電路
模擬眼睛及動作控制子電路如圖4所示,主要使用OLED屏來模擬顯示機器人的兩只眼睛及其眼珠的滾動等動作。舵機模塊則主要控制整個眼睛的上下移動,使得機器人顯得更加靈活、有趣。舵機模塊由主控芯片STM32F103C8T6的PB4、PB5管腳控制,而OLED屏則由PB12、PB13、PB14、PB15管腳驅(qū)動。
2.3 ?關(guān)節(jié)舵機控制子電路
關(guān)節(jié)舵機控制子電路包括兩部分:機器人動作控制芯片電路和機器人關(guān)節(jié)舵機電路。
機器人動作控制芯片電路如圖5所示,包括機器人動作控制芯片STC15W4K16S4、串口電平轉(zhuǎn)換芯片CH340G、存儲芯片W25Q64等,主要完成機器人關(guān)節(jié)舵機的驅(qū)動[3]、動作組的存儲、與PC端上位機及系統(tǒng)主控芯片STM32F103C8T6的串口通信等功能。
機器人關(guān)節(jié)舵機電路如圖6所示,由6個舵機構(gòu)成。主要功能為配合機器人動作控制芯片,完成機器人行走、彎腰、翻跟斗等各種動作。舵機的轉(zhuǎn)動由STC15W4K16S4單片機的P1.7、P5.4、P5.5、P3.2、P3.5、P3.6等進行驅(qū)動控制。
2.4 ?聊天語音處理和藍(lán)牙通信子電路
圖7為聊天語音處理和藍(lán)牙通信子電路,由主控芯片STM32F103C8T6的兩個串口對其進行驅(qū)動。藍(lán)牙模塊起到連接主控芯片和手機APP的作用,完成手機APP和主控芯片之間的信息交互,而語音文本播放模塊的功能,主要是將主控芯片發(fā)送過來的文本信息播讀出來,完成聊天語音處理和輸出功能。
2.5 ?電源電路
電源電路主要由AMS1117-3.3、AMS1117-5.3穩(wěn)壓芯片、二極管、電容等構(gòu)成。機器人電源采用鋰電池,電壓為9 V,而主控芯片和機器人控制芯片的工作電壓分別為3.3 V和5 V。電源電路主要進行上述電壓的轉(zhuǎn)換和實現(xiàn)。
3 ?系統(tǒng)軟件設(shè)計
系統(tǒng)的軟件設(shè)計包括主控芯片的軟件設(shè)計、動作控制芯片的程序設(shè)計、安卓應(yīng)用界面和程序組件設(shè)計。
3.1 ?系統(tǒng)主控芯片的軟件設(shè)計
主控芯片STM32F103C8T6的總體軟件設(shè)計包括:
(1)初始化。包括I/O口、定時器、串口通信等的初始化工作。
(2)眼睛顯示。驅(qū)動OLED屏顯示初始眼睛圖片,其中單片機的PB12、PB13管腳驅(qū)動左邊屏,令其顯示左眼圖片;PB14、PB15管腳驅(qū)動右邊屏,令其顯示右眼圖片。本設(shè)計所使用的OLED屏具有128×64黑白像素,采用I2C通信。在程序中,使用普通的I/O口來模擬I2C通信,由于篇幅關(guān)系,具體的驅(qū)動過程不作詳述。
(3)播報啟動提示音。驅(qū)動語音文本播放模塊播報“主人你好,請連接藍(lán)牙!”(語音文本播放模塊的驅(qū)動過程見后)。
(4)串口中斷處理子程序。在本程序中,串口中斷主要是指收到來自藍(lán)牙模塊的數(shù)據(jù)而產(chǎn)生的中斷,而藍(lán)牙模塊的數(shù)據(jù)來源為手機APP,所以實際上所處理的數(shù)據(jù)為手機APP的動作指令或文本信息。將信息接收并存儲到對應(yīng)的數(shù)組,等待后續(xù)處理。
串口中斷處理子程序流程圖如圖8所示。根據(jù)幀頭判斷數(shù)據(jù)是動作指令還是語音文本,然后對后面的數(shù)據(jù)進行接收,并存入相應(yīng)的數(shù)組。當(dāng)數(shù)據(jù)為語音文本信息時,累加信息數(shù)據(jù)長度,作為后面語音文本輸入的參數(shù)之一。
動作指令緩存數(shù)組res[]的各個元素為:
{0X5A,0X5A,0X02,0X01,0X00,0X00,0X96,0X96};
各個元素的含義依次為:
幀頭、幀頭、動作組序號、運行次數(shù)、左眼參數(shù)、右眼參數(shù)、左眼舵機1參數(shù)、右眼舵機2參數(shù)。
文本信息數(shù)組hanzi[]存儲要播報的文本數(shù)據(jù),變量cnt存儲文本數(shù)據(jù)的長度。
(5)驅(qū)動機器人動作控制MCU。當(dāng)機器人收到來自手機APP的動作指令時,判斷動作指令,并按照與機器人動作控制MCU事先約定好的通信協(xié)議[3],發(fā)送對應(yīng)的數(shù)據(jù)組,令機器人執(zhí)行相對應(yīng)的動作。處理動作指令及驅(qū)動機器人動作控制MCU子程序流程如圖9所示,其中res[2]存儲的值為動作組序號。
機器人動作控制MCU的通信協(xié)議如下:
{0X55,0X55,0X05,0X06,0X01,0X00,0X02};
各個元素的含義依次為:
幀頭、幀頭、數(shù)據(jù)長度(幀頭除外)、動作組指令、動作組編號、動作組運行次數(shù)、動作組運行次數(shù)。
(6)語音文本播放子程序。當(dāng)機器人收到來自手機APP的文本信息時,驅(qū)動語音文本播放模塊播讀收到的文本信息。該文本的起始文本來源于圖靈機器人服務(wù)器[4],其針對用戶對話進行回復(fù),播讀出來,相當(dāng)于回答了用戶的對話。語音文本播放子程序流程如圖10所示。
(7)眼睛動作子程序。眼睛動作使用OLED屏來實現(xiàn),對眼睛圖片進行切換,使用定時器對圖片組進行定時切換,模擬出眼珠的滾動、眨眼等動作。另外,配合眼部動作舵機,控制整個眼睛的晃動。
3.2 ?動作控制芯片的程序設(shè)計
動作控制芯片STC15W4K16S4的程序設(shè)計流程如圖11所示。
系統(tǒng)啟動后,對串口通信、定時器等進行初始化。初始化完成后,等待串口通信中斷,并接收數(shù)據(jù)指令,根據(jù)收到的指令執(zhí)行相對應(yīng)的動作操作或存儲。機器人的動作執(zhí)行由6個舵機來完成,6個舵機分別由單片機P1.7、P5.4、P5.5、P3.2、P3.5、P3.6口進行控制。本設(shè)計采用的舵機為脈沖控制,單片機向舵機發(fā)送周期為20 ms的方波脈沖,其中高電平的持續(xù)時間為0~2.5 ms,通過改變高電平的持續(xù)時間來改變舵機的轉(zhuǎn)動角度。程序通過定時器配合來實現(xiàn),先用定時器定時輸出所需要的高電平時間t1,此段時間管腳輸出高電平,從高電平到再定時輸出低電平的持續(xù)時間為t2,且t2=20 ms-t1,此段時間管腳輸出低電平,以此往復(fù),即可輸出所需要的方波脈沖。在本設(shè)計中,6個舵機使用同一個定時器,采用時分復(fù)用的方法對6個舵機分別進行控制。
3.3 ?安卓應(yīng)用界面和程序組件設(shè)計
手機APP基于安卓系統(tǒng),主要使用app-inventor軟件[5]進行設(shè)計,設(shè)計界面如圖12所示,其中包括藍(lán)牙操作按鈕和列表選擇框、動作控制按鈕、畫布和精靈球(方向球)、話筒按鈕,以及顯示文本、布局、背景等。
APP啟動后,引導(dǎo)用戶進行機器人藍(lán)牙模塊的配對和連接。
藍(lán)牙連接完成后,實現(xiàn)與人的動作交互,例如:若用戶點擊了動作按鈕或者拖動了方向球,則通過藍(lán)牙客戶端發(fā)送相對應(yīng)的指令到藍(lán)牙模塊,藍(lán)牙模塊再將指令轉(zhuǎn)發(fā)到系統(tǒng)主控芯片,讓其控制機器人完成相對應(yīng)的動作。
當(dāng)用戶與APP進行語音交互時,調(diào)用科大訊飛語記程序?qū)τ脩舻恼Z音進行識別,并根據(jù)識別后的文本內(nèi)容進行處理,流程如圖13所示。如果包含關(guān)鍵字,則按照圖13中“含關(guān)鍵字”的流程進行處理;如果不含關(guān)鍵字,則為普通聊天,此時需要將用戶已被識別的語音文本通過手機網(wǎng)絡(luò)發(fā)送到圖靈機器人服務(wù)器進行處理。APP與圖靈服務(wù)器的通信協(xié)議為http協(xié)議,在這個通信過程中,APP發(fā)送get請求到圖靈機器人服務(wù)器,請求地址為服務(wù)器的地址,請求的參數(shù)一個為在服務(wù)器申請的api-key[6],另一個則為識別后的文本。圖靈機器人服務(wù)器經(jīng)云計算、知識庫等進行處理,處理后會返回相對于該文本的應(yīng)答語句文本。圖靈機器人服務(wù)器的應(yīng)答數(shù)據(jù)為JSON格式,需要對里面的文本信息進行提取,提取后再用GB2312格式對其進行編碼(服務(wù)器返回的格式為UTF-8,不能直接被系統(tǒng)的語音文本模塊識別)。此外,幀頭、幀尾通過藍(lán)牙客戶端被發(fā)送到主控MCU,主控MCU其進行處理后,將其發(fā)送到語音文本播放模塊進行播報,相當(dāng)于語音回復(fù)了用戶的對話。
4 ?結(jié)論與討論
本文從硬件和軟件設(shè)計兩方面,融合物聯(lián)網(wǎng)、無線通信、安卓軟件、語音文本播放等技術(shù),設(shè)計了一款能夠舞蹈、聊天的智能機器人。該機器人不僅通過關(guān)節(jié)舵機控制電路,實現(xiàn)了翻跟斗、踢腿、舞蹈等高難度動作,而且借助圖靈機器人,實現(xiàn)了與使用者的任意對話。雖然該機器人目前主要用于陪伴學(xué)習(xí)和娛樂,但其也為工業(yè)領(lǐng)域機器人設(shè)計和控制提出了一種新思路。
從成本上考慮,市場上的舞蹈機器人或聊天機器人一般都比較昂貴,而且大部分聊天機器人都是固定對話機器人,而任意對話的聊天機器人一般都要數(shù)千元。本文借助圖靈機器人服務(wù)器的設(shè)計思路使得互動功能的成本大大降低,由原來的數(shù)千元降低為數(shù)十元。盡管目前語音聊天只能配合手機才能完成,但相信這個缺點是容易解決的。
基金項目
1. 教育部“高等職業(yè)教育創(chuàng)新發(fā)展行動計劃”項目電子信息公共實訓(xùn)中心(教職成函〔2019〕10號);
2. 教育部產(chǎn)教融合促進計劃(教規(guī)建中心函〔2019〕9號);
3. “廣東省高職教育校內(nèi)實踐教學(xué)基地”項目智能產(chǎn)品技術(shù)與開發(fā)實訓(xùn)基地(粵教職函〔2018〕194號);
4. 汕尾職業(yè)技術(shù)學(xué)院高水平專業(yè)群建設(shè)項目(汕職院發(fā)〔2019〕62號)。
參考文獻
[1] 丁猛, 張中輝, 劉蔚釗. 開放式串聯(lián)教學(xué)機器人控制系統(tǒng)設(shè)計[J]. 機電信息, 2020(15): 140-141, 144.
[2] 謝宇忻, 劉延雯, 王鑠, 等. ROS框架下移動機器人室內(nèi)定位導(dǎo)航研究[J]. 工業(yè)技術(shù)創(chuàng)新, 2019, 6(1): 49-53.
[3] 袁瑞雪. 基于智能終端的聊天機器人設(shè)計[J]. 數(shù)字技術(shù)與應(yīng)用, 2019, 37(10): 144-145.
[4] 郭鵬, 楊武華, 楊國正, 等. 仿生機器人民族舞蹈表演的實現(xiàn)[J]. 科學(xué)技術(shù)創(chuàng)新, 2018(35): 68-69.
[5] 胡前雨, 汪正東, 曾沁月, 等. VEX機器人抓取方法設(shè)計與實現(xiàn)[J]. 工業(yè)技術(shù)創(chuàng)新, 2019, 6(6): 8-12.
[6] 黃道燚, 陳敏敏. 多功能化智能臺燈[J]. 電子制作, 2020(2): 11-16.
作者簡介:
黃道燚(1984—),男,漢族,廣東潮州人,講師,碩士。主要從事電子技術(shù)方面的工作。
陳樂珠(1986—),女,漢族,廣東揭陽人,講師,碩士研究生。主要從事電子技術(shù)方面的工作。
陳昌文(1969—),通信作者,男,廣東陽春人,副高,汕尾職業(yè)技術(shù)學(xué)院機電工程系主任,主要從事教育管理、數(shù)理統(tǒng)計、應(yīng)用統(tǒng)計、智能制造專業(yè)群建設(shè)研究。
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