第1步:為什么選擇WebSocket?
網上有大量的WiFi遠程機器人。他們中的大多數都有一個簡單的Web界面,可以通過幾個箭頭按鈕控制機器人。它足以證明電路工作原理。然而,響應時間太慢,甚至將它與幾塊錢的RC車相比:(
每個遠程控制命令只能是1或2個字節,但是單個HTTP請求會引入數百個字節的開銷并需要等待建立每次都有一個新的連接.WebSocket可以消除這種開銷并獲得超過10倍的性能提升。
你可能不熟悉Web Socket,但實現起來非常簡單。這個Arduino源代碼文件只有5個KB大小,已包含客戶端HTML + Javascript和服務器端HTTP + Web Socket服務器。這是學習Web Socket的一個很好的起點。
第2步:準備
ESP8266開發板
任何ESP8266開發板都應該沒問題,這次我使用的是NodeMCU。
電機驅動板
任何2個電機驅動板都應該沒問題,這次我使用的是L9110S。
2WD機器人底盤
任何2WD機器人底盤都應該沒問題,我手頭沒人,所以我只是用一些LEGO制作一個。
電池
ESP8266工作電壓為3.3V,大多數開發板都有調節器來制作它。在大多數情況下,它可以在5V - 12V的范圍內供電。我這次使用帶電池座的8.4 V充電電池。
步驟3:軟件
Arduino IDE
下載并安裝Arduino IDE
ESP8266支持
按照ESP8266官方步驟添加ESP8266支持
第4步:HTML& Javascript
Web Socket遠程可以分為兩部分,即客戶端和服務器端。客戶端是移動電話的簡單網頁。主要區域是畫布,一旦您觸摸并滑動它,x和y坐標值將通過已建立的Web Socket連接傳遞到服務器端。下面是完整的網頁源代碼,它在Arduino源代碼中縮小為單行字符串值:
ESP TOUCH REMOTE
步驟5:引腳連接
這是連接摘要:
ESP8266 Dev Board -》 Motor Driver Board
Vin -》 Vcc -》 Battery +ve
GND -》 GND -》 Battery -ve
GPIO4 (D2) -》 A-IA
GPIO0 (D3) -》 A-IB
Motor A -》 Left motor
GPIO14 (D5) -》 B-IA
GPIO12 (D6) -》 B-IB
Motor B -》 Right motor
第6步:上傳程序
在Arduino IDE中打開ESPWebSocketRemote.ino
連接您的ESP8266開發板
在工具菜單中選擇您的ESP8266開發板類型和端口
按上傳
步驟7:首次設置步驟
大多數WiFi機器人要求您連接來自你的手機,但我不認為這是正確的方法。因為這意味著任何人的手機都可以連接到您自己的機器人。而且每次你需要等待你的機器人WiFi AP啟動然后使用你的移動搜索WiFi并連接它,它有點耗費時間。
我認為正確的方法應該是機器人自動啟動時連接到您的移動熱點。
但我仍然不想在源代碼中存儲我的熱點憑證,WiFiManager可以幫我解決這個問題。
WiFiManager會自動嘗試連接最后連接的WiFi。如果失敗,請啟動AP和強制網絡門戶等待您輸入WiFi詳細信息,然后重新啟動。
因此,首次設置步驟為:
打開ESP8266 Robot
連接到“espweremote”AP
填寫您的手機熱點詳細信息
步驟8:連接步驟
打開手機熱點
打開ESP8266機器人
等待ESP8266機器人連接到手機hotspot
觸摸并在畫布上滑動(白色方塊)以控制機器人
第9步:快樂遠程!
是時候玩你的低圈時間遠程機器人了!
第10步:下一步是什么?
ESPWebSocketRemote是一個非常簡單的例子,你可以做更多的事情。
例如:
使用PWM在不同坐標上滑動時更改兩種電機速度
添加更多控制,例如機器人燈t,武裝甚至發射火箭:》
裝飾HTML布局
建造一個更大的機器人
body{padding:024px024px;background-color:#ccc;}
#main{margin:0auto0auto;}
-
機器人
+關注
關注
210文章
28231瀏覽量
206615 -
ESP8266
+關注
關注
50文章
962瀏覽量
44852
發布評論請先 登錄
相關推薦
評論