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