匡 暢,錢奕辰,梁浩明
(1.廣東水利電力職業(yè)技術(shù)學(xué)院,廣東 廣州 510635;2.廣州蓋得信息科技有限公司,廣東 廣州 511446)
隨著機(jī)器人技術(shù)的發(fā)展,越來越多的智能機(jī)器人產(chǎn)品出現(xiàn)在市場上,例如Anki 公司推出的家用機(jī)器人Vector,該機(jī)器人搭載Qualcomm APQ8009 處理器,擁有強(qiáng)大的計(jì)算能力、連接性和網(wǎng)絡(luò)兼容性。 但是,該機(jī)器人的售價(jià)高達(dá)3 000 元以上,且擴(kuò)展性較弱,無法進(jìn)行二次開發(fā),影響其實(shí)用性。
針對以上問題,本文設(shè)計(jì)了一種基于單片機(jī)的四足智能機(jī)器人,該機(jī)器人通過模仿蜘蛛爬行來移動,全身共搭載8 個(gè)舵機(jī),通過PCA9685 芯片進(jìn)行驅(qū)動。 機(jī)器人可使用手機(jī)等終端控制,并可以進(jìn)行OTA,背部可安裝超聲波、攝像頭等模塊,具有良好的擴(kuò)展性。 機(jī)器人能夠完成爬行、旋轉(zhuǎn)、起伏、打招呼等動作,可使用圖形化工具進(jìn)行編程,性價(jià)比較高,可作為桌面陪伴機(jī)器人和教育機(jī)器人使用[1]。
本文設(shè)計(jì)的機(jī)器人采用ESPRESSIF(樂鑫)公司的ESP8266 芯片模組作為主控模塊,該芯片模組內(nèi)置了32 位RISC 處理器WiFi 和低功耗藍(lán)牙芯片,能夠通過Wi-Fi 和藍(lán)牙進(jìn)行通信,非常適合作為機(jī)器人控制器。為了滿足8 臺舵機(jī)同時(shí)運(yùn)行,機(jī)器人通過PCA9685 驅(qū)動芯片輸出8 路PWM 信號,單獨(dú)控制每個(gè)舵機(jī)獨(dú)立運(yùn)行,PCA9685 芯片與主控芯片通過IIC 協(xié)議通信。 機(jī)器人內(nèi)部搭建了服務(wù)器,可以向手機(jī)等終端發(fā)送網(wǎng)頁,用戶可以使用網(wǎng)頁上的按鈕來控制機(jī)器人執(zhí)行各種動作和指令[2]。 系統(tǒng)總體設(shè)計(jì)如圖1 所示。
圖1 系統(tǒng)總體設(shè)計(jì)
為了保證機(jī)器人運(yùn)行性能和較好的連接性,同時(shí)兼顧機(jī)器人的安裝體積,本文選擇的ESP8266 芯片模組具有32 位架構(gòu),性能強(qiáng)大,內(nèi)置一個(gè)泰思立達(dá)(Tensilica)L106 32-bit RISC 處理器(80 MHz),最大時(shí)鐘速度為160 MHz,同時(shí)內(nèi)置了iBus,dBus 和AHB 接口。 可以使用高達(dá)16MB 的外部SPI 閃存[3]。
支持Wi-Fi 無線連接方式,價(jià)格低廉,開發(fā)語言包含C 語言( Arduino)、 Lua ( nodemcu)、 JavaScript(Espruino) 和 Python (Micropython)。 同時(shí), 兼容Arduino 開發(fā)工具,支持圖形化編程工具。
ESP8266 模組擁有Mode -sleep,Light-sleep,Deepsleep 3 種電源管理模式,平時(shí)工作在active 模式中。 芯片接口包括17 個(gè)GPIO 引腳,4 個(gè)軟件實(shí)現(xiàn)的PWM 輸出引腳,以及SDIO,SPI,HSPI,I2C,I2S,UART 接口,ESP8266 還支持紅外遙控接口和嵌入式模數(shù)轉(zhuǎn)換器。
主控模塊被安裝在一套3D 打印機(jī)器人骨架上,該骨架通過SolidWorks 設(shè)計(jì),使用PLA 材質(zhì)打印,堅(jiān)固耐用,能夠有效支撐機(jī)器人所搭載的硬件設(shè)備。
為了保障8 路舵機(jī)同時(shí)運(yùn)行,本文采用基于PCA9685 芯片的I2C 轉(zhuǎn)16 路PWM 控制板作為舵機(jī)驅(qū)動模塊。 該驅(qū)動板支持IIC 通信協(xié)議,允許高達(dá)16 路PWM 同時(shí)輸出,每路PWM 分辨率可達(dá)12 位(4 096級)。 支持2.3 ~ 5.5V 的電源輸入,PWM 周期為20 ms,時(shí)間分辨率為4.88 μs,最大脈寬時(shí)間為2 ms,角度分辨率為0.439°。
為保障機(jī)器人運(yùn)行穩(wěn)定,本文使用SG90 舵機(jī)作為執(zhí)行電機(jī),該舵機(jī)體積小,重量輕,性價(jià)比高,非常適合作為桌面機(jī)器人的執(zhí)行電機(jī)。
主控模塊ESP8266 模組支持14 個(gè)無線信道、2.4GHz 的接收器和發(fā)射器。 在Wi-Fi(72.2mbps)方面,ESP8266 實(shí)現(xiàn)了TCP/IP 和完整的802.11 b/g/n WLAN MAC 協(xié)議(2 個(gè)虛擬Wi-Fi 接口)。 因此,ESP8266 可以非常方便地通過Wi-Fi 和手機(jī)進(jìn)行無線連接。
ESP8266 的Wi-Fi 有3 種工作模式,分別是Station模式、Soft-AP 模式和Station + Soft-AP 模式。 AP 模式,即無線接入點(diǎn),是網(wǎng)絡(luò)的中心節(jié)點(diǎn),例如路由器;STA模式,即站點(diǎn),是接入網(wǎng)絡(luò)的終端,例如手機(jī)、筆記本電腦等。 機(jī)器人提供兩種控制方式,手機(jī)直連模式和遠(yuǎn)程連接模式。
手機(jī)直連模式,ESP8266 工作在AP 模式,并在內(nèi)部建立了一個(gè)Web Server,手機(jī)可以通過ESP8266 的IP 地址對Web Server 進(jìn)行訪問,服務(wù)器收到請求后會回復(fù)一個(gè)機(jī)器人控制終端頁面,用戶可以通過點(diǎn)擊該頁面內(nèi)的按鈕控制機(jī)器人執(zhí)行各種動作。
遠(yuǎn)程連接模式,ESP8266 工作在STA 模式,與AP模式不同的是,在上電后,ESP8266 會根據(jù)之前保存的登錄密碼,自動連接附近的無線路由器,并自動獲取網(wǎng)絡(luò)IP 地址,內(nèi)部同樣建立了一個(gè)Web Server,手機(jī)可以通過ESP8266 獲取到的IP 地址對Web Server 進(jìn)行訪問。 此時(shí),用戶可以在該網(wǎng)絡(luò)覆蓋的范圍內(nèi)對機(jī)器人進(jìn)行遠(yuǎn)程控制以及多人控制[4]。
機(jī)器人程序流程如圖2 所示,上電后,先對內(nèi)部資源進(jìn)行初始化,再對WiFi 通信初始化,通信建立后,保持等待接收狀態(tài),等待用戶發(fā)送指令到機(jī)器人。 機(jī)器人接收到指令,自動判斷指令類型,并根據(jù)指令執(zhí)行動作。
圖2 軟件流程
本文設(shè)計(jì)的四足機(jī)器人通過Arduino IDE 編寫,能夠?qū)崿F(xiàn)爬行、旋轉(zhuǎn)、起伏、打招呼和跳舞等動作。 程序開始先對各個(gè)內(nèi)部資源進(jìn)行初始化,然后設(shè)置WiFi 的AP 名稱和接入密碼,設(shè)置WiFi 工作模式為AP 模式,并開啟Web 服務(wù)器。 當(dāng)手機(jī)APP 連接到ESP8266 的WiFi 后,可以通過訪問單片機(jī)WiFi 的IP 地址訪問服務(wù)器,服務(wù)器獲取請求后回復(fù)一個(gè)網(wǎng)頁給終端,通過點(diǎn)擊網(wǎng)頁上按鈕,發(fā)送Get 請求到單片機(jī),單片機(jī)服務(wù)器通過判斷Get 請求的參數(shù)控制機(jī)器人執(zhí)行相應(yīng)的動作。
機(jī)器人的框架模型是通過SolidWorks 設(shè)計(jì)的,設(shè)計(jì)了三維結(jié)構(gòu)圖和3D 模型,并使用Cura 軟件進(jìn)行切片,機(jī)器人3D 打印如圖3 所示,最后通過3D 打印機(jī)打印出來,手工組裝。 機(jī)器人控制端界面如圖4 所示,該界面被保存在機(jī)器人的存儲器內(nèi),終端通過網(wǎng)頁訪問機(jī)器人內(nèi)部服務(wù)器時(shí),會顯示終端在瀏覽器上。
圖3 機(jī)器人3D 打印估計(jì)(部分)
圖4 機(jī)器人控制終端界面
本文設(shè)計(jì)的四足機(jī)器人使用ESP8266 作為主控芯片,通過PCA9685 芯片驅(qū)動舵機(jī),內(nèi)置WiFi 服務(wù)器,無須安裝任何軟件即可通過網(wǎng)絡(luò)控制機(jī)器人。 經(jīng)實(shí)驗(yàn),機(jī)器人運(yùn)行穩(wěn)定,功能完善,性價(jià)比高,可作為桌面陪伴機(jī)器人和教育機(jī)器人使用。