基于ESP32的網(wǎng)絡(luò)控制物聯(lián)網(wǎng)機械臂
大家好,在這個項目中,我們將學習如何通過使用微控制器ESP32無線控制機器人手臂,該微控制器具有與WiFi網(wǎng)絡(luò)連接的內(nèi)置功能。我們將使用一個不需要任何互聯(lián)網(wǎng)連接的網(wǎng)頁來控制我們的機器人手臂運動。
我們將看到如何設(shè)計網(wǎng)頁,并深入了解手臂的連接和工作。
對于業(yè)余愛好者,研究人員或行業(yè)專業(yè)人士來說,這是一個革命性和有趣的項目,該項目為機器人手臂的遠程和自動控制提供了創(chuàng)新的解決方案,為各種應(yīng)用開辟了新的可能性。
我們之前已經(jīng)使用NodeMCU構(gòu)建了許多機器人項目,包括基于物聯(lián)網(wǎng)的機械臂。
組件的要求
?Esp32模塊
?零PCB
?母針和公針
?跳線
?Micro-USB母插孔
獲得3D打印機器人手臂和組裝
組裝機械臂是一個簡單的過程,因為它完全是3D打印的小部件。只需要幾個部件和簡單的說明,整個手臂就可以很容易地組裝起來。所需組件有:
3* MG995伺服(180度旋轉(zhuǎn))
不同尺寸的螺母和螺栓很少。
用于安裝伺服器的螺絲和喇叭可以在伺服器套件中獲得,其余部分可以通過螺母和螺栓輕松組裝,您可以從供應(yīng)商那里輕松獲得整個機械臂套件。
裝配過程需要稍微多一點的注意,以完美配合伺服的手臂與他們的正確旋轉(zhuǎn)角度為180度。你可以參考博客和YouTube視頻如何機電一體化使用鏈接。
在那里你會找到組裝整只手臂的最簡單的方法。此外,如果您希望從頭開始設(shè)計,您將獲得3d設(shè)計模型的STL文件的鏈接。
下面的圖片給出了一個關(guān)于最終組裝產(chǎn)品外觀的想法。
基于ESP32的機械臂電路圖
電路連接非常簡單,只需將每個伺服+ve和-ve端子連接到電源。為了給我們的伺服器供電,我使用的是一個Micro-USB母連接器,它可以在5伏的電壓下工作,并且能夠為伺服器提供足夠的電流。Micro-Usb插孔可以連接到任何USB通用適配器。
我們使用相同的外部電源為ESP32供電,其中+ve端接Vin, -ve端接ESP32的GND。
伺服的每個控制信號引腳連接到ESP32的數(shù)字PWM引腳。我們使用6臺伺服,其中3臺是MG995高扭矩伺服,其余3臺是SG90伺服。我已經(jīng)將信號引腳連接到電路板的14,27,26,25,33,32個數(shù)字引腳。您也可以使用其他引腳,但要確保它支持PWM(脈沖寬度調(diào)制),并在代碼中正確分配。
注意:不要直接從ESP32供電,這樣做會導(dǎo)致?lián)p壞板。
通過使用公/母頭分別連接微控制器板和跳線,而無需直接焊接,從而連接到穿孔板。此外,焊接時要小心短路。
在所有伺服器的設(shè)置和連接到控制器板之后,最終的RoboArm準備進行編程部分。
機械臂ESP32的編程
該程序使用Esp的WiFi功能與WiFi連接,通過WiFi連接,我們可以進一步使用我們的網(wǎng)頁控制RoboArm。我們還將學習如何創(chuàng)建網(wǎng)頁和控制手臂的所有運動。
為了確保程序的成功執(zhí)行,我們首先包含必要的庫:Servo.h和WiFi.h。servo .h庫通過提供基于所需角度的適當PWM信號來控制伺服電機。
我們創(chuàng)建了Servo類的六個不同對象,每個對象都有一個唯一的名稱,因為我們使用了六個不同的伺服器。
此外,我們定義了六個額外的變量來分配微控制器的控制引腳。在分配pin之前必須驗證硬件連接,以避免不正確的伺服功能。
Wi-Fi證書是使用名為“ssid”和“password”的指針變量定義的。這些憑證對于建立與無線網(wǎng)絡(luò)的成功連接是必要的。
接下來,將創(chuàng)建一個名為“server”的WiFiServer對象實例,并將HTTP端口號80作為參數(shù)傳遞。
此外,代碼聲明變量來存儲滑塊的位置,這將用于控制伺服電機。
在Setup()函數(shù)中,我們初始化波特率為115200的串行通信。然后,我們將每個伺服電機分別與Esp32板的數(shù)字PWM引腳相連。這設(shè)置了伺服電機和微控制器之間的通信,允許您控制伺服電機的位置。
我們通過提供SSID和Password作為參數(shù),使用WiFi.begin()函數(shù)啟動WiFi連接。連接成功后,它將在串行監(jiān)視器上打印IP地址。因此,WiFi服務(wù)器開始使用server.begin()命令。
在Loop()函數(shù)內(nèi)部,代碼通過調(diào)用server.available()來監(jiān)聽傳入的客戶端連接。如果客戶端連接,則創(chuàng)建一個名為“client”的WiFiClient對象來處理與該客戶端的通信。
在if(客戶端)塊中,代碼設(shè)置HTTP響應(yīng)頭并開始構(gòu)造要發(fā)送給客戶端的HTML網(wǎng)頁。
HTML網(wǎng)頁包括六組元素:標題(‘ h1 ‘),位置顯示(’ span ’),范圍輸入(‘ input ‘)和兩個按鈕(’ button ’)。每臺對應(yīng)一臺伺服電機。位置顯示器顯示伺服電機的當前位置,范圍輸入允許用戶調(diào)整位置。按鈕允許用戶增加或減少5個單位的位置。
處理完客戶機請求后,代碼使用client.stop()斷開客戶機的連接,并在串行監(jiān)視器上打印一條消息,表明客戶機已斷開連接。
基于網(wǎng)絡(luò)控制的機械臂工作原理
承受兩種類型伺服(MG995和SG90)的最大電壓約為7.2伏。通過使用Micro-USB,您可以使用任何通用的5伏適配器,最小輸出電流為2安培,足以為所有伺服器提供足夠的功率。
1 .單板上電前檢查外部+ve和-ve電源端子的排序。
此外,檢查WiFi憑據(jù)SSID和密碼,以建立與網(wǎng)絡(luò)的成功連接。
通過選擇正確的板和COM端口上傳代碼。在Arduino IDE中打開串口監(jiān)視器,設(shè)置波特率為115200。如果成功地連接到網(wǎng)絡(luò),將打印IP地址。
通過在搜索欄中搜索IP地址,在Windows或Android的任何瀏覽器中都可以訪問該IP地址。你會看到一個很吸引人的網(wǎng)頁界面,上面有控制Arm的滑塊和按鈕。
注意:請確保瀏覽器設(shè)備也連接到相同的WiFi網(wǎng)絡(luò),否則不會打開任何頁面。
現(xiàn)在,用戶可以使用網(wǎng)頁上的滑塊和按鈕來調(diào)整伺服位置,并且這些變化會反映在物理伺服電機上。
本文編譯自iotdesignpro