因為機器人,自動化才成為可能,現在他們正在做工業(yè)中的大部分工作。機器人被編程來完成重復的任務,但它們也可以被手動操作來完成一些復雜的任務,比如手術。但現在,隨著人工智能和物聯網的引入,機器人能夠自己做出決策,并能夠在沒有任何人為干預的情況下執(zhí)行許多任務。
機器人可以通過藍牙、LoRa、Wifi等多種方式進行無線控制。在本教程中,我們將使用NodeMCU制作一個可以通過互聯網瀏覽器無線控制的網絡控制機器人汽車。該網頁還將顯示機器人與障礙物的實時距離。那么,我們開始吧。
組件的要求
?NodeMCU (ESP-12e)
?L293D或L298電機驅動IC
?2個直流電機
?超聲波傳感器(HC-SR04)
?12 v電池
?5v電源(選配)
L298D電機驅動模塊有一個內置的5v電源,但如果你使用的是L293D IC,那么你必須使用7805 IC制作一個5v電源電路。
線路圖
使用NodeMCU的Wi-Fi控制汽車的完整電路圖如下:
電路連接如下:
NodeMCU的L298的IN1引腳->的D6
NodeMCU的L298的IN2引腳-> D7
L298的IN3引腳-> NodeMCU的D1
NodeMCU的L298的IN4引腳-> D3
傳感器的觸發(fā)腳- NodeMCU的> D4
NodeMCU的> D8傳感器回波引腳
NodeMCU的Vin -> 12v電池
傳感器5v和GND -> L298模塊5v和GND。
L298模塊12v -> 12v電池
為了調整電機的速度,使用驅動模塊的使能引腳并將其連接到NodeMCU的PWM引腳(D2, D5),否則使用跳線將它們連接到5v。
Web控制的Robot的最終設置如下所示
代碼與說明
要用Arduino IDE編程NodeMCU,請進入File - > preferences - >Settings。
在“附加板管理器URL”字段中輸入,然后單擊“確定”。
現在轉到Tools > Board > Boards Manager。
在板管理器窗口中,在搜索框中輸入esp, esp8266將在下面列出?,F在選擇最新版本的板并點擊安裝。
安裝完成后,進入“工具>單板> NodeMCU 1.0(ESP-12E模塊)”。現在您可以使用Arduino IDE對NodeMCU進行編程。
我們需要兩個庫來制作基于本地web服務器的NodeMCU。從給出的鏈接下載這些庫,然后進入
ESPAsyncTCP
ESPAsycnWebServer
完整的代碼在本教程的末尾給出,在這里我們一步一步地解釋代碼。
1. 首先,使用#include<>包含所有必需的庫
2. 設置Wi-Fi證書,并聲明傳感器和電機驅動器所需的所有NodeMCU引腳。
3. 現在,我們將制作一個HTML頁面,其中將有5個按鈕來移動機器人向前,向后,向右,向左和停止。該網頁還顯示了任何障礙物與機器人的距離。此HTML代碼將使用programm關鍵字存儲在Program內存中。
4. 然后在HTML內容中編寫一個腳本,該腳本可以在預定義的時間之后運行,以更新汽車與墻壁的距離。Setinterval函數負責在不刷新頁面的情況下定期更新距離。這里我們每隔5秒更新一次距離。
5. 現在,創(chuàng)建一個函數來計算到墻的距離。我們可以用聲速乘以接收到聲音的時間來計算距離。
6. 在void setup函數中,將模塊與Wi-Fi連接,并檢查來自服務器的傳入消息。初始化波特率為115200的串行通信,檢查給定的Wi-Fi網絡并打印IP地址。
現在,將帶有輸入字段的網頁發(fā)送到客戶機計算機。
檢查來自客戶機-服務器的輸入URL,并根據方向將GPIO設置為HIGH/LOW。
同樣,調用server.on()獲取其他方向和更新網頁上顯示的距離
使用NodeMCU測試Wi-Fi控制機器人
使用USB線將NodeMCU與筆記本電腦/PC相連,在工具菜單中選擇單板并上傳代碼。確保您的模塊和筆記本電腦/PC連接到相同的Wi-Fi網絡。
現在,打開串行監(jiān)視器。在這里,您將看到NodeMCU的IP地址。復制此IP并粘貼到瀏覽器的地址欄中。
在瀏覽器中輸入IP地址后,屏幕上就會加載包含所有5個按鈕的網頁。
現在,你可以在任何地方使用網絡瀏覽器控制你的機器人汽車。為了使汽車更先進,你可以在機器人的所有側面添加更多的超聲波傳感器,也可以通過使用我們在智能公告板項目中使用的HTML表單發(fā)送速度值來調整汽車的速度。
本文編譯自iotdesignpro





