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