王莉,陳文宇,吳寶磊,張海天,盧熾杏,馮瑞
(航天工程大學,北京,101401)
中國航天目前正處于迅猛發(fā)展的時期,需要大量的人才投身航天事業(yè)、建功航天事業(yè)。為了向這些航天人致敬,推動航天文化的多元化傳播,激發(fā)廣大有志青年投身航天事業(yè)的志向,本文設(shè)計了航天主題創(chuàng)意宣傳機器人,希望通過機器人表演和宣講的形式勾起觀眾的興趣、通過推廣航天文化的創(chuàng)意設(shè)計為航天文化的傳承和發(fā)展注入新的活力,更好地向公眾展示這些英勇無畏的航天人的奉獻精神和航天精神,喚起更多人對航天人的尊敬和關(guān)注,讓航天事業(yè)在觀眾中的認知度和影響力得到進一步的擴大。以激勵廣大有志青年積極投身航天事業(yè),也成為那群在背后默默奉獻、無私付出的航天人,為祖國的航天事業(yè)貢獻出自己的一份力量。 本文采用伺服舵機、STM32 單片機和 ESP32-A1S 處理器等材料制作了一個航天主題宣傳機器人,起到了宣傳航天文化的作用。
機器人外殼結(jié)構(gòu)由鋁合金板構(gòu)成,通過控制伺服電機來進行關(guān)節(jié)的轉(zhuǎn)動。機器人整體共15 個伺服電機,即15 個自由度,頭部1 個自由度,左右臂各自2 個自由度,左右下肢各5 個自由度。
2.1.1 外殼結(jié)構(gòu)
小組通過定制鋁合金板來準備機器人外殼材料,而后通過在鋁合金板上打孔,用螺絲把伺服電機、鋁合金板連接起來,構(gòu)成機器人的整體外殼結(jié)構(gòu)。

圖1 航天主題創(chuàng)意宣傳機器人外殼結(jié)構(gòu)圖
2.1.2 伺服舵機
機器人使用的是SH15-M 伺服舵機,SH15-M 舵機是一種小型舵機,尺寸為43.8mm×23mm×31.4mm。它的工作電壓范圍為8V~15V,重量約為48g。它的耗電低、質(zhì)量輕、結(jié)構(gòu)緊湊、價格便宜,適合在小型機器人上應(yīng)用。

表1 舵機具體參數(shù)

表2 舵機功能介紹

表3 舵機協(xié)議、角度、ID編碼介紹
2.2.1 基于ESP32-A1S 的智能語音模塊
(1)語音模塊
智能語音模塊基于ESP32-A1S 處理器,集成了麥克風、聲卡、MP3 格式音頻編解碼器、TF 存儲卡插槽、音頻輸入接口、音頻輸出接口、揚聲器接口、網(wǎng)絡(luò)接口、藍牙。問答指令可以通過計算機傳輸?shù)絋F 卡中,隨后將TF 卡插入語音模塊上的存儲卡插槽,處理器通過讀取存TF 卡中的指令來進行問答準備。問題則通過麥克風輸入后,聲卡將語音信號轉(zhuǎn)換為數(shù)字信號,而后通過處理器中的語音識別算法,將其轉(zhuǎn)換成文本格式,再提取出文本格式的問題意圖和關(guān)鍵信息與知識庫中的數(shù)據(jù)進行匹配和檢索,找到最相關(guān)的答案,進行回答。
(2)外接設(shè)備
①外接喇叭:用于加大音量;

圖2 智能語言模塊問答流程圖

圖3 語言模塊及外接喇叭硬件圖
②外接麥克風:用于在開闊環(huán)境大廳下替代板載集成麥克風,其能夠自適應(yīng)調(diào)節(jié)強度聲音和瞬間沖擊音,有效防止語言失真和衰減。

圖4 外接麥克風硬件圖
(3)實現(xiàn)功能
語音識別、離線智能問答、通過websocket 協(xié)議和http 協(xié)議后臺對接實現(xiàn)的在線智能問答。
(4) 模塊性能
語音模塊性能如表4 所示。

表4 語音模塊性能
2.2.2 控制主板
主板操控電機的控制板采用STM32 系列單片機,大部分元器件采用全表貼工藝。控制主板通過控制電機、驅(qū)動器和執(zhí)行器來驅(qū)動仿生機器人的關(guān)節(jié)和肢體,使其執(zhí)行各種運動。這包括前進、后退、旋轉(zhuǎn)、彎曲和伸展等動作;控制主板通常與傳感器接口,以接收來自各種傳感器的數(shù)據(jù),如位置傳感器、速度傳感器、加速度傳感器和觸覺傳感器等。這些數(shù)據(jù)用于調(diào)整機器人的運動和行為,以適應(yīng)不同的環(huán)境和條件。控制主板通常也具有安全機制,以保護機器人免受潛在的傷害和損害。這可能包括過載保護、短路保護、溫度監(jiān)控和其他安全措施。此外使用TF卡存儲動作數(shù)據(jù),數(shù)據(jù)量大,可靠性強。
在控制主板上,還有一顆型號為CH340 的USB 轉(zhuǎn)串口芯片。在串口方式下,CH340 提供常用的MODEM 聯(lián)絡(luò)信號,用于為計算機擴展異步串口,或者將普通的串口設(shè)備直接升級到USB 總線。

圖5 CH340 芯片的使用場景模擬圖
為了方便對機器人的動作進行編寫和調(diào)整,我們編寫了一個Windows 窗口程序進行可視化編程。該程序基于.NET Framework 3.5 框架,是用C#語言開發(fā)的WPF 程序。我們在編寫代碼的過程中,使用Microsoft Visual Studio 2022 作為集成開發(fā)環(huán)境(IDE)。
連接機器人設(shè)備是與設(shè)備通信的第一步。以下是連接的主要步驟:
①檢查用戶是否選擇了串口;
②如果已存在打開的串口對象,關(guān)閉它并清除接收緩沖區(qū);
③獲取用戶選擇的串口名稱,并更新界面狀態(tài)以顯示連接進度;
④創(chuàng)建新的串口對象并設(shè)置通信參數(shù),如波特率、數(shù)據(jù)位等;
⑤打開串口;
⑥啟動后臺線程來處理數(shù)據(jù)讀取和發(fā)送操作。

圖6 機器人連接主要步驟流程圖

圖7 連接機器人設(shè)備窗口設(shè)計
制作數(shù)據(jù)是為了將動作數(shù)據(jù)、默認姿勢數(shù)據(jù)和選定的動作編號轉(zhuǎn)換為設(shè)備可下載和執(zhí)行的字節(jié)數(shù)據(jù)數(shù)組。以下是制作數(shù)據(jù)的主要步驟:
①計算動作的數(shù)量,確定字節(jié)數(shù)組的長度;
②初始化數(shù)組和變量,包括標記每個動作是否需要下載的數(shù)組、統(tǒng)計動作編號出現(xiàn)次數(shù)的數(shù)組、存儲動作數(shù)據(jù)的字符串數(shù)組,以及最終生成的字節(jié)數(shù)據(jù)數(shù)組;
③遍歷輸入的動作數(shù)據(jù),根據(jù)動作編號將動作數(shù)據(jù)分組,并統(tǒng)計每個編號的出現(xiàn)次數(shù);
④生成字節(jié)數(shù)據(jù),包括動作編號、是否循環(huán)、關(guān)節(jié)角度等信息;
⑤處理特殊情況,包括動作是否循環(huán)、循環(huán)的開始和結(jié)束等情況,以及處理姿勢數(shù)據(jù)中的負值,并將其轉(zhuǎn)換為字節(jié)表示;
⑥最后,將生成的字節(jié)數(shù)據(jù)存儲在數(shù)組中,并返回作為輸出。

圖8 制作數(shù)據(jù)的主要步驟圖
數(shù)據(jù)上傳到電腦涉及復(fù)雜的串口通信邏輯,包括發(fā)送指令、等待響應(yīng)和報告上傳進度。數(shù)據(jù)上傳的主要步驟如圖9所示。

圖9 數(shù)據(jù)上傳的主要步驟圖

圖10 數(shù)據(jù)上傳窗口設(shè)計

圖11 可視化操作界面設(shè)計

圖12 機器人仿真編輯窗口設(shè)計
在程序的主界面中,設(shè)計了一個畫板,用于存放各種動作組件。在畫板中,可以插入單個動作、循環(huán)、連接線。
對于動作,可以對每個舵機位置、速度、延遲分別進行調(diào)整,且每個動作的音樂也可以進行自定義。
使用的類庫和類:
在應(yīng)用程序中使用了以下主要類庫和類:
①System.ComponentModel:用于支持后臺線程工作流。
②System.IO.Ports:用于串口通信。
③System.Windows.Controls.Viewport3D:用于3D建模。
④System.Windows.Media.Media3D:用于3D 操作。
本文實現(xiàn)了航天主題創(chuàng)意宣傳機器人的設(shè)計與制作,基于 STM32 單片機和 ESP32-A1S 處理器實現(xiàn)了對機器人的控制,用C#語言開發(fā)的WPF 程序?qū)崿F(xiàn)了對機器人的可視化操縱,完成了機器人設(shè)備的連接和機器人數(shù)據(jù)的下載、制作以及數(shù)據(jù)從機器人上傳到電腦的功能。