匡 暢,錢奕辰,梁浩明
(1.廣東水利電力職業技術學院,廣東 廣州 510635;2.廣州蓋得信息科技有限公司,廣東 廣州 511446)
隨著機器人技術的發展,越來越多的智能機器人產品出現在市場上,例如Anki 公司推出的家用機器人Vector,該機器人搭載Qualcomm APQ8009 處理器,擁有強大的計算能力、連接性和網絡兼容性。 但是,該機器人的售價高達3 000 元以上,且擴展性較弱,無法進行二次開發,影響其實用性。
針對以上問題,本文設計了一種基于單片機的四足智能機器人,該機器人通過模仿蜘蛛爬行來移動,全身共搭載8 個舵機,通過PCA9685 芯片進行驅動。 機器人可使用手機等終端控制,并可以進行OTA,背部可安裝超聲波、攝像頭等模塊,具有良好的擴展性。 機器人能夠完成爬行、旋轉、起伏、打招呼等動作,可使用圖形化工具進行編程,性價比較高,可作為桌面陪伴機器人和教育機器人使用[1]。
本文設計的機器人采用ESPRESSIF(樂鑫)公司的ESP8266 芯片模組作為主控模塊,該芯片模組內置了32 位RISC 處理器WiFi 和低功耗藍牙芯片,能夠通過Wi-Fi 和藍牙進行通信,非常適合作為機器人控制器。為了滿足8 臺舵機同時運行,機器人通過PCA9685 驅動芯片輸出8 路PWM 信號,單獨控制每個舵機獨立運行,PCA9685 芯片與主控芯片通過IIC 協議通信。 機器人內部搭建了服務器,可以向手機等終端發送網頁,用戶可以使用網頁上的按鈕來控制機器人執行各種動作和指令[2]。 系統總體設計如圖1 所示。

圖1 系統總體設計
為了保證機器人運行性能和較好的連接性,同時兼顧機器人的安裝體積,本文選擇的ESP8266 芯片模組具有32 位架構,性能強大,內置一個泰思立達(Tensilica)L106 32-bit RISC 處理器(80 MHz),最大時鐘速度為160 MHz,同時內置了iBus,dBus 和AHB 接口。 可以使用高達16MB 的外部SPI 閃存[3]。
支持Wi-Fi 無線連接方式,價格低廉,開發語言包含C 語言( Arduino)、 Lua ( nodemcu)、 JavaScript(Espruino) 和 Python (Micropython)。 同時, 兼容Arduino 開發工具,支持圖形化編程工具。
ESP8266 模組擁有Mode -sleep,Light-sleep,Deepsleep 3 種電源管理模式,平時工作在active 模式中。 芯片接口包括17 個GPIO 引腳,4 個軟件實現的PWM 輸出引腳,以及SDIO,SPI,HSPI,I2C,I2S,UART 接口,ESP8266 還支持紅外遙控接口和嵌入式模數轉換器。
主控模塊被安裝在一套3D 打印機器人骨架上,該骨架通過SolidWorks 設計,使用PLA 材質打印,堅固耐用,能夠有效支撐機器人所搭載的硬件設備。
為了保障8 路舵機同時運行,本文采用基于PCA9685 芯片的I2C 轉16 路PWM 控制板作為舵機驅動模塊。 該驅動板支持IIC 通信協議,允許高達16 路PWM 同時輸出,每路PWM 分辨率可達12 位(4 096級)。 支持2.3 ~ 5.5V 的電源輸入,PWM 周期為20 ms,時間分辨率為4.88 μs,最大脈寬時間為2 ms,角度分辨率為0.439°。
為保障機器人運行穩定,本文使用SG90 舵機作為執行電機,該舵機體積小,重量輕,性價比高,非常適合作為桌面機器人的執行電機。
主控模塊ESP8266 模組支持14 個無線信道、2.4GHz 的接收器和發射器。 在Wi-Fi(72.2mbps)方面,ESP8266 實現了TCP/IP 和完整的802.11 b/g/n WLAN MAC 協議(2 個虛擬Wi-Fi 接口)。 因此,ESP8266 可以非常方便地通過Wi-Fi 和手機進行無線連接。
ESP8266 的Wi-Fi 有3 種工作模式,分別是Station模式、Soft-AP 模式和Station + Soft-AP 模式。 AP 模式,即無線接入點,是網絡的中心節點,例如路由器;STA模式,即站點,是接入網絡的終端,例如手機、筆記本電腦等。 機器人提供兩種控制方式,手機直連模式和遠程連接模式。
手機直連模式,ESP8266 工作在AP 模式,并在內部建立了一個Web Server,手機可以通過ESP8266 的IP 地址對Web Server 進行訪問,服務器收到請求后會回復一個機器人控制終端頁面,用戶可以通過點擊該頁面內的按鈕控制機器人執行各種動作。
遠程連接模式,ESP8266 工作在STA 模式,與AP模式不同的是,在上電后,ESP8266 會根據之前保存的登錄密碼,自動連接附近的無線路由器,并自動獲取網絡IP 地址,內部同樣建立了一個Web Server,手機可以通過ESP8266 獲取到的IP 地址對Web Server 進行訪問。 此時,用戶可以在該網絡覆蓋的范圍內對機器人進行遠程控制以及多人控制[4]。
機器人程序流程如圖2 所示,上電后,先對內部資源進行初始化,再對WiFi 通信初始化,通信建立后,保持等待接收狀態,等待用戶發送指令到機器人。 機器人接收到指令,自動判斷指令類型,并根據指令執行動作。

圖2 軟件流程
本文設計的四足機器人通過Arduino IDE 編寫,能夠實現爬行、旋轉、起伏、打招呼和跳舞等動作。 程序開始先對各個內部資源進行初始化,然后設置WiFi 的AP 名稱和接入密碼,設置WiFi 工作模式為AP 模式,并開啟Web 服務器。 當手機APP 連接到ESP8266 的WiFi 后,可以通過訪問單片機WiFi 的IP 地址訪問服務器,服務器獲取請求后回復一個網頁給終端,通過點擊網頁上按鈕,發送Get 請求到單片機,單片機服務器通過判斷Get 請求的參數控制機器人執行相應的動作。
機器人的框架模型是通過SolidWorks 設計的,設計了三維結構圖和3D 模型,并使用Cura 軟件進行切片,機器人3D 打印如圖3 所示,最后通過3D 打印機打印出來,手工組裝。 機器人控制端界面如圖4 所示,該界面被保存在機器人的存儲器內,終端通過網頁訪問機器人內部服務器時,會顯示終端在瀏覽器上。

圖3 機器人3D 打印估計(部分)

圖4 機器人控制終端界面
本文設計的四足機器人使用ESP8266 作為主控芯片,通過PCA9685 芯片驅動舵機,內置WiFi 服務器,無須安裝任何軟件即可通過網絡控制機器人。 經實驗,機器人運行穩定,功能完善,性價比高,可作為桌面陪伴機器人和教育機器人使用。