張?jiān)?,杜鑫凱,趙展,魏雯,黃志強(qiáng)
(蘇州工業(yè)職業(yè)技術(shù)學(xué)院,江蘇蘇州,215104)
機(jī)器人在日常生活中得到越來越多的應(yīng)用,并慢慢地融入了人們生活中的各行各業(yè),極大地解決了生活中的勞動(dòng)力問題,很大地降低了生產(chǎn)成本,例如:餐廳中的機(jī)器人為人們送餐,自助商店的機(jī)器人在商店自助售賣,工業(yè)機(jī)器人在工廠進(jìn)行加工、分揀等等。特別是在高山、深海、火山、地震等一些環(huán)境比較惡劣的地方,機(jī)器人可以很好地替代人類進(jìn)出這些環(huán)境進(jìn)行作業(yè),既減少了人類在這些惡劣環(huán)境中的傷亡指數(shù),也提高了在惡劣環(huán)境中的作業(yè)效率。例如:在地震中,機(jī)器人通過視覺導(dǎo)航和傳感器可以更有效地感知生命跡象,提高援救指數(shù)。
本文提出了一種基于STM32 的四足仿生機(jī)器人,采用了ARM Cortex M3 內(nèi)核的STM32 單片機(jī)作為核心處理器,設(shè)計(jì)了四足仿生機(jī)器人的控制系統(tǒng),并對(duì)四足機(jī)器人整體的穩(wěn)定性和控制系統(tǒng)的能動(dòng)性進(jìn)行了判斷,提出了一種合理的解決方案。
四足仿生機(jī)器人具體的功能實(shí)現(xiàn)是以控制系統(tǒng)為基礎(chǔ)的,所以四足仿生機(jī)器人的控制系統(tǒng)由控制部分、執(zhí)行部分和傳感器三部分組成,在控制部分,電源模塊連接STM32單片機(jī),STM32 單片機(jī)與舵機(jī)控制板相連,且STM32 單片機(jī)上預(yù)留燒錄上位機(jī)APP 的USB 接口;在執(zhí)行部分,STM32 單片機(jī)與驅(qū)動(dòng)模塊相連,通過驅(qū)動(dòng)模塊來帶動(dòng)數(shù)字舵機(jī)DS041MG;在傳感器部分,WiFi 模塊與上位機(jī)之間進(jìn)行無線通信使得四足仿生機(jī)器人可以流暢地行走[1]。
首先,當(dāng)控制系統(tǒng)上電初始化結(jié)束后,上位機(jī)APP 發(fā)送無線控制信號(hào),經(jīng)過WiFi 模塊接收后,轉(zhuǎn)發(fā)到STM32單片機(jī);然后STM32 主控芯片與舵機(jī)控制板之間進(jìn)行通信,將信號(hào)發(fā)送至舵機(jī)控制板,舵機(jī)控制板將其發(fā)送的信號(hào)經(jīng)過處理后,由所有被控舵機(jī)DS041MG 輸出PWM 來改變舵機(jī)的位置,從而使得仿生機(jī)器人實(shí)現(xiàn)相對(duì)應(yīng)的動(dòng)作組。四足仿生機(jī)器人控制系統(tǒng)總體設(shè)計(jì)框圖如圖1 所示。
圖1 總體設(shè)計(jì)框圖
四足仿生機(jī)器人控制系統(tǒng)在硬件電路部分主要包括三個(gè)部分,分別為單片機(jī)最小控制系統(tǒng)設(shè)計(jì)、WiFi 模塊電路設(shè)計(jì)、姿態(tài)傳感器電路設(shè)計(jì)。單片機(jī)最小控制系統(tǒng)包括電源輸入、晶振電路、復(fù)位電路、SWD 下載電路等;四足仿生機(jī)器人采用WiFi 模塊通過無線模式與單片機(jī)進(jìn)行通信;WiFi 模塊電路采用了ESP32 模塊,ESP32 集成了WiFi 和藍(lán)牙,優(yōu)于WSP8266,是目前主流的WiFi 模塊;行進(jìn)部分通過舵機(jī)控制板驅(qū)動(dòng)舵機(jī)來實(shí)現(xiàn)。系統(tǒng)總硬件原理圖如圖2 所示。
圖2 系統(tǒng)總硬件電路圖
單片機(jī)最小控制系統(tǒng)設(shè)計(jì)采用STM32F103C8T6 控制,STM32 處理器是目前微處理器領(lǐng)域應(yīng)用最廣泛的處理器之一,它性能高、成本低、功耗小。
它的內(nèi)核是ARM Cortex-M3 系列32 位中央處理器,采用先進(jìn)的技術(shù)和工藝制作而成,它的功能十分強(qiáng)大,擁有多種可供使用的外設(shè)。STM32F103C8T6 為48 引腳,最高工作頻率 72MHz,采用LQFP-48 封裝,它的供電電壓是2V~3.6V,它擁有37 個(gè)準(zhǔn)雙口I/O 口,它的內(nèi)部具有64K片內(nèi)Flash,20K 字節(jié)SRAM[2],可以提升控制器的存儲(chǔ)速度和讀寫速度,其引腳圖如圖3 所示。
圖3 STM32F103C8T6 引腳圖
ESP32-WROVER-E 是一款通用型WiFi 模組,集成了傳統(tǒng)藍(lán)牙、低功耗藍(lán)牙和WiFi,不僅功能非常強(qiáng)大,用途十分廣泛,同時(shí)WiFi 支持極大范圍的通信連接,還可以用于低功耗傳感器網(wǎng)絡(luò)和要求極高的任務(wù),具有可擴(kuò)展,自適應(yīng)的特點(diǎn)。
本項(xiàng)目中ESP32 電路設(shè)計(jì)圖如圖4 所示,該ESP32 模組將大量器件進(jìn)行了集成,如晶振、濾波器、Flash、射頻匹配鏈路等,極大地簡(jiǎn)化了用戶對(duì)外圍電路的設(shè)計(jì)。比如在芯片上的GPIO6 至GPIO11 用于連接模組上集成的SPI Flash,便不再拉出至模組管腳。該ESP32 采用3.3V 供電,為確保該芯片在上電后可以正常工作,便在EN 管腳處增加了RC 延遲電路,同時(shí)EN 管腳還具有復(fù)位功能。該芯片內(nèi)置40MHz 晶振,因此可以省去晶振電路。
圖4 WiFi 模塊電路圖
本項(xiàng)目的姿態(tài)傳感器采用的是MPU6050,這是一款整合性 6 軸運(yùn)動(dòng)處理組件,該傳感器內(nèi)部集成了 3 軸陀螺儀和3 軸加速度傳感器,可以用于連接外部磁力傳感器,含有一個(gè)I2C 接口,芯片內(nèi)部自帶有7 路16bit 的ADC 轉(zhuǎn)換電路,其中3 路為陀螺儀、3 路為加速度計(jì)、1 路為內(nèi)部溫度傳感器。ADC 轉(zhuǎn)換后的數(shù)據(jù)通過DMP 處理后,存儲(chǔ)在FIFO 里。單片機(jī)通過對(duì)芯片內(nèi)部寄存器進(jìn)行讀寫操作,完成對(duì)MPU的控制。ADD 引腳和INT 引腳分別為從機(jī)地址設(shè)置引腳和中斷輸出引腳,這兩個(gè)引腳均懸空[3]。
該傳感器的電路圖如圖5 所示,由圖可以看到該傳感器的接線是比較簡(jiǎn)單的,VCC 引腳接入3.3V 工作電壓,通過I2C 接口與MCU 完成通信,SCL 和SDA 分別負(fù)責(zé)設(shè)備間產(chǎn)生同步時(shí)鐘脈沖和傳輸串行數(shù)據(jù)。XDA 引腳和XCL 引腳同樣為串行數(shù)據(jù)信號(hào)和串行時(shí)鐘信號(hào),但XDA 和XCL 用于MPU6050 芯片與其他I2C 傳感器通訊,所以在本系統(tǒng)中不使用這兩個(gè)引腳。
圖5 姿態(tài)傳感器電路
基于STM32 的四足仿生機(jī)器人控制系統(tǒng)的要求是能夠讓仿生機(jī)器人做到系統(tǒng)開機(jī)正常運(yùn)行和做到通過APP 下發(fā)指令來達(dá)到控制其運(yùn)動(dòng)的能力,所以程序要達(dá)到以下要求:
(1)工作穩(wěn)定:四足仿生機(jī)器人相對(duì)于其他物品來說,其優(yōu)勢(shì)點(diǎn)在于四足仿生機(jī)器人可以做到許多比較復(fù)雜的動(dòng)作,對(duì)舵機(jī)控制的角度也有一定的要求,所以本系統(tǒng)需要做到工作穩(wěn)定。
(2)自定義動(dòng)作組:四足仿生機(jī)器人需做到可自定義一些動(dòng)作組,目前已經(jīng)實(shí)現(xiàn)了的動(dòng)作組包括原地踏步、行走、做俯臥撐、翻滾等。
(3)數(shù)據(jù)穩(wěn)定傳輸:本設(shè)計(jì)采用WiFi 進(jìn)行無線通信,在數(shù)據(jù)傳輸?shù)倪^程中可能會(huì)出現(xiàn)“數(shù)據(jù)包丟失”的現(xiàn)象,因此下位機(jī)程序需要對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),保證從底層傳輸給上位機(jī)的數(shù)據(jù)是準(zhǔn)確無誤的,如果底層發(fā)現(xiàn)數(shù)據(jù)有問題,需及時(shí)將本次數(shù)據(jù)丟棄,重新下發(fā)新的數(shù)據(jù)并傳輸給上位機(jī)。
Android端上位機(jī)APP 可以對(duì)機(jī)器人的參數(shù)進(jìn)行設(shè)置,通過WiFi 無線通信按照通信協(xié)議發(fā)送控制指令,然后底層程序通過WiFi 無線通信來接受上位機(jī)APP 按照通信協(xié)議發(fā)出的控制指令,最后由底層程序來控制舵機(jī)完成指定的動(dòng)作。總體設(shè)計(jì)框圖如圖6 所示。
圖6 總體設(shè)計(jì)框圖
首先當(dāng)系統(tǒng)開機(jī)的時(shí)候,首先會(huì)初始化界面,等待初始化結(jié)束后,會(huì)進(jìn)入等待WiFi 連接的界面,如若WiFi 未完成連接則需返回至界面初始化重新配置,如果WiFi 成功連接,則用戶可以進(jìn)行參數(shù)設(shè)置來調(diào)整四足仿生機(jī)器人的初始姿態(tài),然后可以操作動(dòng)作按鍵來按照通信協(xié)議發(fā)出的控制指令,修改指令進(jìn)行數(shù)據(jù)的發(fā)送,最后由底層程序來控制舵機(jī)完成指定的動(dòng)作[4]。上位機(jī)軟件設(shè)計(jì)流程圖如圖7 所示。
圖7 上位機(jī)軟件設(shè)計(jì)流程圖
系統(tǒng)通電后會(huì)首先自檢各個(gè)功能,當(dāng)初始化配置檢查無誤后,然后會(huì)對(duì)當(dāng)前WiFi 進(jìn)行連接,如果發(fā)現(xiàn)連接不成功會(huì)啟動(dòng)自動(dòng)配網(wǎng)模式,此時(shí)用戶開啟上位機(jī)APP 即可連接網(wǎng)絡(luò),當(dāng)網(wǎng)絡(luò)連接成功后蜂鳴器響一聲自動(dòng)與四足仿生機(jī)器人進(jìn)行連接,隨后等待WiFi 模塊按照通信協(xié)議發(fā)送運(yùn)動(dòng)指令,如若協(xié)議及指令正確且解析出有效數(shù)據(jù)則驅(qū)動(dòng)舵機(jī)進(jìn)行運(yùn)動(dòng);如若指令解析失敗,則會(huì)按照解決方案重新初始化配置然后再發(fā)送運(yùn)動(dòng)指令,直至解析出有效數(shù)據(jù)使得指令正確。這樣做的目的就是為了保證數(shù)據(jù)的正確性和在傳輸過程中數(shù)據(jù)包丟失的概率。底層程序設(shè)計(jì)流程圖見圖8 所示。
圖8 底層程序設(shè)計(jì)流程圖
在初步完成硬件部分和軟件部分后,需要對(duì)仿生機(jī)器人進(jìn)行組裝,并對(duì)其功能進(jìn)行測(cè)試。在充分地調(diào)試后,便可以驗(yàn)證該系統(tǒng)的硬件或軟件部分是否存在一些問題,并將發(fā)現(xiàn)的問題進(jìn)行匯總、整理,然后對(duì)應(yīng)解決出現(xiàn)的問題,最終完成該項(xiàng)目。
首先需要對(duì)固件進(jìn)行燒錄,然后對(duì)WiFi 的賬號(hào)和密碼進(jìn)行設(shè)置,并將其保存下來下載到固件里,在按下復(fù)位按鍵后,代碼運(yùn)行結(jié)果中會(huì)出現(xiàn)一個(gè)IP 地址,這個(gè)就是控制器的訪問地址,然后打開仿生機(jī)器人機(jī)身下的開關(guān),等待系統(tǒng)完成初始化后,打開手機(jī)WiFi 嘗試連接設(shè)置好的WiFi,在連接成功后說明WiFi 模塊正常,如圖9 所示。當(dāng)按下開關(guān)后蜂鳴器長(zhǎng)時(shí)間報(bào)警,且無法搜索到WiFi 時(shí),說明該仿生機(jī)器人電量不足。
圖9 WiFi 連接
在完成連接后打開控制器,拖動(dòng)高度調(diào)節(jié)下方的滑塊,舵機(jī)會(huì)發(fā)生轉(zhuǎn)動(dòng),可以對(duì)仿生機(jī)器人機(jī)身與地面之間的高度進(jìn)行調(diào)節(jié),在不同數(shù)值下腿部的狀態(tài)不同,設(shè)定的初始值為110mm,腿部狀態(tài)如圖10 所示。
圖10 舵機(jī)調(diào)試
在軟件設(shè)計(jì)時(shí)需要對(duì)該仿生機(jī)器人運(yùn)動(dòng)時(shí)的各項(xiàng)數(shù)據(jù)進(jìn)行設(shè)定,確保在運(yùn)動(dòng)過程中保持平衡,在所有數(shù)值設(shè)定好后,連接WiFi,進(jìn)入控制器,就可以對(duì)該仿生機(jī)器人進(jìn)行控制。拖動(dòng)控制器上方的圓盤就可以控制它運(yùn)動(dòng),當(dāng)圓盤指向不同的方向,它就可以向不同的方向運(yùn)動(dòng),如圖11 所示。
本設(shè)計(jì)完成了一個(gè)基于STM32 核心微控制器的四足仿生機(jī)器人,此設(shè)計(jì)主要分為結(jié)構(gòu)設(shè)計(jì)、硬件設(shè)計(jì)和軟件設(shè)計(jì)。本文設(shè)計(jì)的四足仿生機(jī)器人可以完成緩慢行走,跑步行走,上樓梯,保持平衡、手機(jī)端控制等功能。手機(jī)移動(dòng)端控制時(shí),可以對(duì)它的俯仰角、滾轉(zhuǎn)角、前后平移、高度進(jìn)行調(diào)節(jié),關(guān)閉和開啟踏步模式、陀螺儀,和預(yù)期效果基本相同。
該機(jī)器人能夠很好地解決生活中的勞動(dòng)力問題,很大地降低了生產(chǎn)成本,特別是在地震救援,醫(yī)療領(lǐng)域以及公共服務(wù)等方面可以有著突出的貢獻(xiàn),可見在該方向做深入研究具有重要的意義。