王莉,陳文宇,吳寶磊,張海天,盧熾杏,馮瑞
(航天工程大學(xué),北京,101401)
中國航天目前正處于迅猛發(fā)展的時期,需要大量的人才投身航天事業(yè)、建功航天事業(yè)。為了向這些航天人致敬,推動航天文化的多元化傳播,激發(fā)廣大有志青年投身航天事業(yè)的志向,本文設(shè)計了航天主題創(chuàng)意宣傳機(jī)器人,希望通過機(jī)器人表演和宣講的形式勾起觀眾的興趣、通過推廣航天文化的創(chuàng)意設(shè)計為航天文化的傳承和發(fā)展注入新的活力,更好地向公眾展示這些英勇無畏的航天人的奉獻(xiàn)精神和航天精神,喚起更多人對航天人的尊敬和關(guān)注,讓航天事業(yè)在觀眾中的認(rèn)知度和影響力得到進(jìn)一步的擴(kuò)大。以激勵廣大有志青年積極投身航天事業(yè),也成為那群在背后默默奉獻(xiàn)、無私付出的航天人,為祖國的航天事業(yè)貢獻(xiàn)出自己的一份力量。 本文采用伺服舵機(jī)、STM32 單片機(jī)和 ESP32-A1S 處理器等材料制作了一個航天主題宣傳機(jī)器人,起到了宣傳航天文化的作用。
機(jī)器人外殼結(jié)構(gòu)由鋁合金板構(gòu)成,通過控制伺服電機(jī)來進(jìn)行關(guān)節(jié)的轉(zhuǎn)動。機(jī)器人整體共15 個伺服電機(jī),即15 個自由度,頭部1 個自由度,左右臂各自2 個自由度,左右下肢各5 個自由度。
2.1.1 外殼結(jié)構(gòu)
小組通過定制鋁合金板來準(zhǔn)備機(jī)器人外殼材料,而后通過在鋁合金板上打孔,用螺絲把伺服電機(jī)、鋁合金板連接起來,構(gòu)成機(jī)器人的整體外殼結(jié)構(gòu)。
圖1 航天主題創(chuàng)意宣傳機(jī)器人外殼結(jié)構(gòu)圖
2.1.2 伺服舵機(jī)
機(jī)器人使用的是SH15-M 伺服舵機(jī),SH15-M 舵機(jī)是一種小型舵機(jī),尺寸為43.8mm×23mm×31.4mm。它的工作電壓范圍為8V~15V,重量約為48g。它的耗電低、質(zhì)量輕、結(jié)構(gòu)緊湊、價格便宜,適合在小型機(jī)器人上應(yīng)用。
表1 舵機(jī)具體參數(shù)
表2 舵機(jī)功能介紹
表3 舵機(jī)協(xié)議、角度、ID編碼介紹
2.2.1 基于ESP32-A1S 的智能語音模塊
(1)語音模塊
智能語音模塊基于ESP32-A1S 處理器,集成了麥克風(fēng)、聲卡、MP3 格式音頻編解碼器、TF 存儲卡插槽、音頻輸入接口、音頻輸出接口、揚(yáng)聲器接口、網(wǎng)絡(luò)接口、藍(lán)牙。問答指令可以通過計算機(jī)傳輸?shù)絋F 卡中,隨后將TF 卡插入語音模塊上的存儲卡插槽,處理器通過讀取存TF 卡中的指令來進(jìn)行問答準(zhǔn)備。問題則通過麥克風(fēng)輸入后,聲卡將語音信號轉(zhuǎn)換為數(shù)字信號,而后通過處理器中的語音識別算法,將其轉(zhuǎn)換成文本格式,再提取出文本格式的問題意圖和關(guān)鍵信息與知識庫中的數(shù)據(jù)進(jìn)行匹配和檢索,找到最相關(guān)的答案,進(jìn)行回答。
(2)外接設(shè)備
①外接喇叭:用于加大音量;
圖2 智能語言模塊問答流程圖
圖3 語言模塊及外接喇叭硬件圖
②外接麥克風(fēng):用于在開闊環(huán)境大廳下替代板載集成麥克風(fēng),其能夠自適應(yīng)調(diào)節(jié)強(qiáng)度聲音和瞬間沖擊音,有效防止語言失真和衰減。
圖4 外接麥克風(fēng)硬件圖
(3)實(shí)現(xiàn)功能
語音識別、離線智能問答、通過websocket 協(xié)議和http 協(xié)議后臺對接實(shí)現(xiàn)的在線智能問答。
(4) 模塊性能
語音模塊性能如表4 所示。
表4 語音模塊性能
2.2.2 控制主板
主板操控電機(jī)的控制板采用STM32 系列單片機(jī),大部分元器件采用全表貼工藝。控制主板通過控制電機(jī)、驅(qū)動器和執(zhí)行器來驅(qū)動仿生機(jī)器人的關(guān)節(jié)和肢體,使其執(zhí)行各種運(yùn)動。這包括前進(jìn)、后退、旋轉(zhuǎn)、彎曲和伸展等動作;控制主板通常與傳感器接口,以接收來自各種傳感器的數(shù)據(jù),如位置傳感器、速度傳感器、加速度傳感器和觸覺傳感器等。這些數(shù)據(jù)用于調(diào)整機(jī)器人的運(yùn)動和行為,以適應(yīng)不同的環(huán)境和條件??刂浦靼逋ǔR簿哂邪踩珯C(jī)制,以保護(hù)機(jī)器人免受潛在的傷害和損害。這可能包括過載保護(hù)、短路保護(hù)、溫度監(jiān)控和其他安全措施。此外使用TF卡存儲動作數(shù)據(jù),數(shù)據(jù)量大,可靠性強(qiáng)。
在控制主板上,還有一顆型號為CH340 的USB 轉(zhuǎn)串口芯片。在串口方式下,CH340 提供常用的MODEM 聯(lián)絡(luò)信號,用于為計算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備直接升級到USB 總線。
圖5 CH340 芯片的使用場景模擬圖
為了方便對機(jī)器人的動作進(jìn)行編寫和調(diào)整,我們編寫了一個Windows 窗口程序進(jìn)行可視化編程。該程序基于.NET Framework 3.5 框架,是用C#語言開發(fā)的WPF 程序。我們在編寫代碼的過程中,使用Microsoft Visual Studio 2022 作為集成開發(fā)環(huán)境(IDE)。
連接機(jī)器人設(shè)備是與設(shè)備通信的第一步。以下是連接的主要步驟:
①檢查用戶是否選擇了串口;
②如果已存在打開的串口對象,關(guān)閉它并清除接收緩沖區(qū);
③獲取用戶選擇的串口名稱,并更新界面狀態(tài)以顯示連接進(jìn)度;
④創(chuàng)建新的串口對象并設(shè)置通信參數(shù),如波特率、數(shù)據(jù)位等;
⑤打開串口;
⑥啟動后臺線程來處理數(shù)據(jù)讀取和發(fā)送操作。
圖6 機(jī)器人連接主要步驟流程圖
圖7 連接機(jī)器人設(shè)備窗口設(shè)計
制作數(shù)據(jù)是為了將動作數(shù)據(jù)、默認(rèn)姿勢數(shù)據(jù)和選定的動作編號轉(zhuǎn)換為設(shè)備可下載和執(zhí)行的字節(jié)數(shù)據(jù)數(shù)組。以下是制作數(shù)據(jù)的主要步驟:
①計算動作的數(shù)量,確定字節(jié)數(shù)組的長度;
②初始化數(shù)組和變量,包括標(biāo)記每個動作是否需要下載的數(shù)組、統(tǒng)計動作編號出現(xiàn)次數(shù)的數(shù)組、存儲動作數(shù)據(jù)的字符串?dāng)?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ù)中的負(fù)值,并將其轉(zhuǎn)換為字節(jié)表示;
⑥最后,將生成的字節(jié)數(shù)據(jù)存儲在數(shù)組中,并返回作為輸出。
圖8 制作數(shù)據(jù)的主要步驟圖
數(shù)據(jù)上傳到電腦涉及復(fù)雜的串口通信邏輯,包括發(fā)送指令、等待響應(yīng)和報告上傳進(jìn)度。數(shù)據(jù)上傳的主要步驟如圖9所示。
圖9 數(shù)據(jù)上傳的主要步驟圖
圖10 數(shù)據(jù)上傳窗口設(shè)計
圖11 可視化操作界面設(shè)計
圖12 機(jī)器人仿真編輯窗口設(shè)計
在程序的主界面中,設(shè)計了一個畫板,用于存放各種動作組件。在畫板中,可以插入單個動作、循環(huán)、連接線。
對于動作,可以對每個舵機(jī)位置、速度、延遲分別進(jìn)行調(diào)整,且每個動作的音樂也可以進(jìn)行自定義。
使用的類庫和類:
在應(yīng)用程序中使用了以下主要類庫和類:
①System.ComponentModel:用于支持后臺線程工作流。
②System.IO.Ports:用于串口通信。
③System.Windows.Controls.Viewport3D:用于3D建模。
④System.Windows.Media.Media3D:用于3D 操作。
本文實(shí)現(xiàn)了航天主題創(chuàng)意宣傳機(jī)器人的設(shè)計與制作,基于 STM32 單片機(jī)和 ESP32-A1S 處理器實(shí)現(xiàn)了對機(jī)器人的控制,用C#語言開發(fā)的WPF 程序?qū)崿F(xiàn)了對機(jī)器人的可視化操縱,完成了機(jī)器人設(shè)備的連接和機(jī)器人數(shù)據(jù)的下載、制作以及數(shù)據(jù)從機(jī)器人上傳到電腦的功能。