使用NodeMCU的基于物聯(lián)網(wǎng)的機(jī)械臂
掃描二維碼
隨時(shí)隨地手機(jī)看文章
自1962年問世以來,機(jī)械臂一直被各行業(yè)用于執(zhí)行復(fù)雜而繁瑣的工作。從裝配線到噴漆車間,這些機(jī)械臂廣泛應(yīng)用于汽車制造業(yè)。最近,隨著技術(shù)的進(jìn)步和物聯(lián)網(wǎng)(IoT)的出現(xiàn),機(jī)器人手臂也開始在醫(yī)療應(yīng)用中投入使用,醫(yī)生可以通過無線控制機(jī)器人手臂進(jìn)行遠(yuǎn)程手術(shù)。在這個(gè)項(xiàng)目中,我們將使用NodeMCU構(gòu)建一個(gè)基于物聯(lián)網(wǎng)的無線機(jī)械臂。
3D打印機(jī)器人手臂的位置可以通過一個(gè)名為Blynk的應(yīng)用程序在任何支持互聯(lián)網(wǎng)的智能手機(jī)上進(jìn)行控制,該應(yīng)用程序?qū)ndroid和IOS用戶都是免費(fèi)的。我們以前使用Blynk與NodeMCU和樹莓派來控制GPIO連接的設(shè)備。
3D打印你的機(jī)械手臂
如前所述,在這個(gè)項(xiàng)目中使用的機(jī)械臂是3D打印的,如果你沒有打印機(jī),你可以使用任何機(jī)械臂或用硬紙板制作一個(gè)粗糙的機(jī)械臂。3D打印機(jī)械臂的設(shè)計(jì)來自Thingiverse的這個(gè)鏈接。這個(gè)鏈接也有完整的詳細(xì)視頻顯示制作和組裝這個(gè)3D打印機(jī)械臂的過程。
這是我用4臺(tái)Towerpro SG90伺服電機(jī)組裝后的3D打印機(jī)械臂的圖像。我只是簡單地用螺母和螺栓來組裝完整的機(jī)械臂。所有的信息都可以在thingiverse上找到。
機(jī)器人手臂Blynk應(yīng)用程序的搭建
Blynk是一個(gè)物聯(lián)網(wǎng)平臺(tái),允許我們快速構(gòu)建項(xiàng)目來控制和監(jiān)控使用Android和iOS設(shè)備的數(shù)據(jù)。我們可以創(chuàng)建項(xiàng)目儀表板,并添加按鈕、顯示器、滑塊等控件,用于控制微控制器和其他外圍設(shè)備。使用這些小部件,我們可以控制設(shè)備,并可以監(jiān)控手機(jī)屏幕上的傳感器數(shù)據(jù)。按照以下步驟安裝Blynk并創(chuàng)建用于機(jī)械臂控制的儀表板。
1. 在您的手機(jī)上安裝b谷歌Play Store中的blynk應(yīng)用程序。
2. 接下來,使用電子郵件id注冊Blynk應(yīng)用程序。
3. 注冊后登錄Blynk應(yīng)用程序。
4. 登錄后,單擊New Project。
5. 根據(jù)要求給出下一個(gè)項(xiàng)目名稱,我們使用的板是“NodeMCU”,連接類型是“WiFi”。
6. 然后單擊Create。并且一個(gè)認(rèn)證令牌代碼會(huì)發(fā)送到您的郵件ID。
7. 復(fù)制授權(quán)令牌代碼發(fā)送到您的郵件ID,我們將在我們的NodeMCU編碼中使用它。
8. 接下來,我們必須通過在小部件框中添加小部件來創(chuàng)建我們自己的機(jī)器人手臂控制應(yīng)用程序。由于我們有四個(gè)伺服電機(jī)控制,我增加了四個(gè)滑塊。
9. 添加滑塊后。你可以改變每個(gè)滑塊的名稱和滑塊值,然后是滑塊設(shè)置。
這里我設(shè)置了
滑塊1作為夾持器,設(shè)置為輸出V0從0到180。
滑塊2為左/右,設(shè)置為輸出V1從0到180。
滑塊3為UP/DOWN,設(shè)置為OUTPUT V2從0到90。
滑塊4為正向/反向,設(shè)置為OUTPUT V3從0到60。
對于所有滑塊,我已經(jīng)關(guān)閉了SEND ON RELEASE。這樣我們就可以在兩個(gè)值之間保持100ms的寫延遲。
10. 在用上述設(shè)置添加了所有的滑塊之后,應(yīng)用程序看起來是這樣的。之后,您可以通過單擊Play按鈕來運(yùn)行應(yīng)用程序。
11. 現(xiàn)在我們的應(yīng)用程序已經(jīng)準(zhǔn)備好了。下一步是進(jìn)行電路連接并將代碼上傳到NodeMCU。之后,我們可以使用Blynk應(yīng)用程序控制我們的機(jī)器人手臂。
組件的要求
?NodeMCU ESP8266
?伺服電機(jī)- 4
?機(jī)械手臂
?5V 1A直流電源適配器
?電路試驗(yàn)板
?連接電線
線路圖
如上所示,我們總共需要4個(gè)伺服電機(jī)來操作我們的機(jī)械臂,因?yàn)檫@些電機(jī)不消耗太多的功率,它們是由1A適配器的5V直流電源直接驅(qū)動(dòng)的。我已經(jīng)使用面包板使上述連接;一旦連接完成,我的設(shè)置看起來像這樣。
電路連接:
基于物聯(lián)網(wǎng)的機(jī)械臂的工作原理
這個(gè)項(xiàng)目的工作非常簡單,我們只是通過互聯(lián)網(wǎng)從一個(gè)應(yīng)用程序控制機(jī)器人手臂的四個(gè)伺服電機(jī)。NodeMCU有一個(gè)內(nèi)置的ESP8266 Wi-Fi模塊,因此我們可以將NodeMCU連接到互聯(lián)網(wǎng)。接下來,在移動(dòng)設(shè)備中使用Blynk應(yīng)用程序,我們創(chuàng)建了一個(gè)應(yīng)用程序,通過互聯(lián)網(wǎng)發(fā)送值,以控制與NodeMCU連接的四伺服電機(jī)的PWM值。
在Blynk應(yīng)用程序中使用了四個(gè)滑塊。伺服電機(jī)由用戶根據(jù)滑塊的運(yùn)動(dòng)來控制。
為Arduino IDE設(shè)置Blynk和NodeMCU (ESP8266)庫
這個(gè)物聯(lián)網(wǎng)機(jī)械臂項(xiàng)目的編碼非常簡單,在文章末尾給出了完整的代碼和工作視頻。首先,我們需要Arduino IDE的Blynk庫。按照下面的鏈接手動(dòng)下載和設(shè)置。
1. 從這里的GitHub鏈接下載Blynk庫。
2. 之后安裝Blynk Library for Arduino請點(diǎn)擊這里的鏈接。
因此,在為Arduino IDE設(shè)置Blynk庫之后。其次,我們需要Arduino IDE的NodeMCU庫。
要用Arduino IDE編程N(yùn)odeMCU,請進(jìn)入File - > preferences - >Settings。
在“附加板管理器URL”字段中輸入,然后單擊“確定”。
現(xiàn)在轉(zhuǎn)到Tools > Board > Boards Manager。
在板管理器窗口中,在搜索框中輸入esp, esp8266將在下面列出?,F(xiàn)在選擇最新版本的板并點(diǎn)擊安裝。
安裝完成后,進(jìn)入Tools >Board >,選擇“NodeMCU 1.0(ESP-12E Module)”?,F(xiàn)在您可以使用Arduino IDE對NodeMCU進(jìn)行編程。
編碼的解釋
安裝Blynk和NodeMCU (ESP8266)的庫后。在本教程的末尾給出了完整的代碼。代碼通過microrousb線纜上傳到NodeMCU?,F(xiàn)在,讓我們詳細(xì)了解如何為這個(gè)項(xiàng)目編碼。
1. 首先包括必要的庫
對于ESP8266 (NodeMCU):
使用Blynk:
伺服電機(jī)使用:
2. 接下來,通過郵件收到Blynk認(rèn)證碼,并根據(jù)以下給出的代碼輸入Wifi用戶名(ssid)和密碼。
3. 在這個(gè)項(xiàng)目中,我們使用了四個(gè)伺服電機(jī)和機(jī)械臂,所以我們創(chuàng)建了四個(gè)帶有伺服類的物體。
4. 接下來,在void setup()函數(shù)中,我們通過提供具有Auth令牌的Wi-Fi用戶名和密碼來初始化設(shè)備,并開始串行通信。
還初始化與NodeMCU連接的伺服電機(jī)PWM引腳,使用引腳D0,D1,D2,D3。
5. 然后根據(jù)從Blynk應(yīng)用程序接收到的值控制伺服電機(jī)的位置。這里的虛擬引腳V0, V1, V2, V3用于從Blynk應(yīng)用程序獲取輸入值,并將PWM值寫入相應(yīng)的伺服電機(jī)。
6. 循環(huán)運(yùn)行Blynk函數(shù)
這就是使用Blynk應(yīng)用程序遠(yuǎn)程構(gòu)建和控制物聯(lián)網(wǎng)機(jī)械臂的方式。
本文編譯自iotdesignpro