黃道燚 陳樂珠 陳昌文



摘 ? 要: 融合物聯網、無線通信、安卓系統、語音文本播放等技術,設計一款基于圖靈機器人的多功能智能機器人。在多功能智能系統硬件設計上,以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