張月,杜鑫凱,趙展,魏雯,黃志強
(蘇州工業職業技術學院,江蘇蘇州,215104)
機器人在日常生活中得到越來越多的應用,并慢慢地融入了人們生活中的各行各業,極大地解決了生活中的勞動力問題,很大地降低了生產成本,例如:餐廳中的機器人為人們送餐,自助商店的機器人在商店自助售賣,工業機器人在工廠進行加工、分揀等等。特別是在高山、深海、火山、地震等一些環境比較惡劣的地方,機器人可以很好地替代人類進出這些環境進行作業,既減少了人類在這些惡劣環境中的傷亡指數,也提高了在惡劣環境中的作業效率。例如:在地震中,機器人通過視覺導航和傳感器可以更有效地感知生命跡象,提高援救指數。
本文提出了一種基于STM32 的四足仿生機器人,采用了ARM Cortex M3 內核的STM32 單片機作為核心處理器,設計了四足仿生機器人的控制系統,并對四足機器人整體的穩定性和控制系統的能動性進行了判斷,提出了一種合理的解決方案。
四足仿生機器人具體的功能實現是以控制系統為基礎的,所以四足仿生機器人的控制系統由控制部分、執行部分和傳感器三部分組成,在控制部分,電源模塊連接STM32單片機,STM32 單片機與舵機控制板相連,且STM32 單片機上預留燒錄上位機APP 的USB 接口;在執行部分,STM32 單片機與驅動模塊相連,通過驅動模塊來帶動數字舵機DS041MG;在傳感器部分,WiFi 模塊與上位機之間進行無線通信使得四足仿生機器人可以流暢地行走[1]。
首先,當控制系統上電初始化結束后,上位機APP 發送無線控制信號,經過WiFi 模塊接收后,轉發到STM32單片機;然后STM32 主控芯片與舵機控制板之間進行通信,將信號發送至舵機控制板,舵機控制板將其發送的信號經過處理后,由所有被控舵機DS041MG 輸出PWM 來改變舵機的位置,從而使得仿生機器人實現相對應的動作組。四足仿生機器人控制系統總體設計框圖如圖1 所示。

圖1 總體設計框圖
四足仿生機器人控制系統在硬件電路部分主要包括三個部分,分別為單片機最小控制系統設計、WiFi 模塊電路設計、姿態傳感器電路設計。單片機最小控制系統包括電源輸入、晶振電路、復位電路、SWD 下載電路等;四足仿生機器人采用WiFi 模塊通過無線模式與單片機進行通信;WiFi 模塊電路采用了ESP32 模塊,ESP32 集成了WiFi 和藍牙,優于WSP8266,是目前主流的WiFi 模塊;行進部分通過舵機控制板驅動舵機來實現。系統總硬件原理圖如圖2 所示。

圖2 系統總硬件電路圖
單片機最小控制系統設計采用STM32F103C8T6 控制,STM32 處理器是目前微處理器領域應用最廣泛的處理器之一,它性能高、成本低、功耗小。
它的內核是ARM Cortex-M3 系列32 位中央處理器,采用先進的技術和工藝制作而成,它的功能十分強大,擁有多種可供使用的外設。STM32F103C8T6 為48 引腳,最高工作頻率 72MHz,采用LQFP-48 封裝,它的供電電壓是2V~3.6V,它擁有37 個準雙口I/O 口,它的內部具有64K片內Flash,20K 字節SRAM[2],可以提升控制器的存儲速度和讀寫速度,其引腳圖如圖3 所示。

圖3 STM32F103C8T6 引腳圖
ESP32-WROVER-E 是一款通用型WiFi 模組,集成了傳統藍牙、低功耗藍牙和WiFi,不僅功能非常強大,用途十分廣泛,同時WiFi 支持極大范圍的通信連接,還可以用于低功耗傳感器網絡和要求極高的任務,具有可擴展,自適應的特點。
本項目中ESP32 電路設計圖如圖4 所示,該ESP32 模組將大量器件進行了集成,如晶振、濾波器、Flash、射頻匹配鏈路等,極大地簡化了用戶對外圍電路的設計。比如在芯片上的GPIO6 至GPIO11 用于連接模組上集成的SPI Flash,便不再拉出至模組管腳。該ESP32 采用3.3V 供電,為確保該芯片在上電后可以正常工作,便在EN 管腳處增加了RC 延遲電路,同時EN 管腳還具有復位功能。該芯片內置40MHz 晶振,因此可以省去晶振電路。

圖4 WiFi 模塊電路圖
本項目的姿態傳感器采用的是MPU6050,這是一款整合性 6 軸運動處理組件,該傳感器內部集成了 3 軸陀螺儀和3 軸加速度傳感器,可以用于連接外部磁力傳感器,含有一個I2C 接口,芯片內部自帶有7 路16bit 的ADC 轉換電路,其中3 路為陀螺儀、3 路為加速度計、1 路為內部溫度傳感器。ADC 轉換后的數據通過DMP 處理后,存儲在FIFO 里。單片機通過對芯片內部寄存器進行讀寫操作,完成對MPU的控制。ADD 引腳和INT 引腳分別為從機地址設置引腳和中斷輸出引腳,這兩個引腳均懸空[3]。
該傳感器的電路圖如圖5 所示,由圖可以看到該傳感器的接線是比較簡單的,VCC 引腳接入3.3V 工作電壓,通過I2C 接口與MCU 完成通信,SCL 和SDA 分別負責設備間產生同步時鐘脈沖和傳輸串行數據。XDA 引腳和XCL 引腳同樣為串行數據信號和串行時鐘信號,但XDA 和XCL 用于MPU6050 芯片與其他I2C 傳感器通訊,所以在本系統中不使用這兩個引腳。

圖5 姿態傳感器電路
基于STM32 的四足仿生機器人控制系統的要求是能夠讓仿生機器人做到系統開機正常運行和做到通過APP 下發指令來達到控制其運動的能力,所以程序要達到以下要求:
(1)工作穩定:四足仿生機器人相對于其他物品來說,其優勢點在于四足仿生機器人可以做到許多比較復雜的動作,對舵機控制的角度也有一定的要求,所以本系統需要做到工作穩定。
(2)自定義動作組:四足仿生機器人需做到可自定義一些動作組,目前已經實現了的動作組包括原地踏步、行走、做俯臥撐、翻滾等。
(3)數據穩定傳輸:本設計采用WiFi 進行無線通信,在數據傳輸的過程中可能會出現“數據包丟失”的現象,因此下位機程序需要對數據進行校驗,保證從底層傳輸給上位機的數據是準確無誤的,如果底層發現數據有問題,需及時將本次數據丟棄,重新下發新的數據并傳輸給上位機。
Android端上位機APP 可以對機器人的參數進行設置,通過WiFi 無線通信按照通信協議發送控制指令,然后底層程序通過WiFi 無線通信來接受上位機APP 按照通信協議發出的控制指令,最后由底層程序來控制舵機完成指定的動作。總體設計框圖如圖6 所示。

圖6 總體設計框圖
首先當系統開機的時候,首先會初始化界面,等待初始化結束后,會進入等待WiFi 連接的界面,如若WiFi 未完成連接則需返回至界面初始化重新配置,如果WiFi 成功連接,則用戶可以進行參數設置來調整四足仿生機器人的初始姿態,然后可以操作動作按鍵來按照通信協議發出的控制指令,修改指令進行數據的發送,最后由底層程序來控制舵機完成指定的動作[4]。上位機軟件設計流程圖如圖7 所示。

圖7 上位機軟件設計流程圖
系統通電后會首先自檢各個功能,當初始化配置檢查無誤后,然后會對當前WiFi 進行連接,如果發現連接不成功會啟動自動配網模式,此時用戶開啟上位機APP 即可連接網絡,當網絡連接成功后蜂鳴器響一聲自動與四足仿生機器人進行連接,隨后等待WiFi 模塊按照通信協議發送運動指令,如若協議及指令正確且解析出有效數據則驅動舵機進行運動;如若指令解析失敗,則會按照解決方案重新初始化配置然后再發送運動指令,直至解析出有效數據使得指令正確。這樣做的目的就是為了保證數據的正確性和在傳輸過程中數據包丟失的概率。底層程序設計流程圖見圖8 所示。

圖8 底層程序設計流程圖
在初步完成硬件部分和軟件部分后,需要對仿生機器人進行組裝,并對其功能進行測試。在充分地調試后,便可以驗證該系統的硬件或軟件部分是否存在一些問題,并將發現的問題進行匯總、整理,然后對應解決出現的問題,最終完成該項目。
首先需要對固件進行燒錄,然后對WiFi 的賬號和密碼進行設置,并將其保存下來下載到固件里,在按下復位按鍵后,代碼運行結果中會出現一個IP 地址,這個就是控制器的訪問地址,然后打開仿生機器人機身下的開關,等待系統完成初始化后,打開手機WiFi 嘗試連接設置好的WiFi,在連接成功后說明WiFi 模塊正常,如圖9 所示。當按下開關后蜂鳴器長時間報警,且無法搜索到WiFi 時,說明該仿生機器人電量不足。

圖9 WiFi 連接
在完成連接后打開控制器,拖動高度調節下方的滑塊,舵機會發生轉動,可以對仿生機器人機身與地面之間的高度進行調節,在不同數值下腿部的狀態不同,設定的初始值為110mm,腿部狀態如圖10 所示。

圖10 舵機調試
在軟件設計時需要對該仿生機器人運動時的各項數據進行設定,確保在運動過程中保持平衡,在所有數值設定好后,連接WiFi,進入控制器,就可以對該仿生機器人進行控制。拖動控制器上方的圓盤就可以控制它運動,當圓盤指向不同的方向,它就可以向不同的方向運動,如圖11 所示。
本設計完成了一個基于STM32 核心微控制器的四足仿生機器人,此設計主要分為結構設計、硬件設計和軟件設計。本文設計的四足仿生機器人可以完成緩慢行走,跑步行走,上樓梯,保持平衡、手機端控制等功能。手機移動端控制時,可以對它的俯仰角、滾轉角、前后平移、高度進行調節,關閉和開啟踏步模式、陀螺儀,和預期效果基本相同。
該機器人能夠很好地解決生活中的勞動力問題,很大地降低了生產成本,特別是在地震救援,醫療領域以及公共服務等方面可以有著突出的貢獻,可見在該方向做深入研究具有重要的意義。