如果您以前從未編寫過(guò)代碼,那么進(jìn)入DIY Arduino機(jī)器人領(lǐng)域可能會(huì)令人生畏。如果您不能對(duì)微控制器進(jìn)行編程,無(wú)論您的想法多么宏大,機(jī)器人都不會(huì)做很多事情。
幸運(yùn)的是,有許多方法可以對(duì)Arduino進(jìn)行編程而無(wú)需編寫任何代碼。今天,我們正在使用Xod來(lái)研究基本的機(jī)器人技術(shù),Xod是一種基于開源可視化程序的基于節(jié)點(diǎn)的Arduino兼容IDE。
無(wú)代碼機(jī)器人
今天的項(xiàng)目使用了一些標(biāo)準(zhǔn)的業(yè)余機(jī)器人技術(shù)來(lái)創(chuàng)建一個(gè)距離感應(yīng)機(jī)器人手臂的原型。業(yè)余機(jī)器人通常將伺服和超聲波距離傳感器結(jié)合使用,您將添加一個(gè)LCD屏幕。
完成的項(xiàng)目將在LCD屏幕上記錄距離值,并將伺服臂移入
有點(diǎn)想像力,這是一個(gè)機(jī)械臂,如果您離得太近,它會(huì)試圖抓住您。
硬件要求
您將需要:
Arduino兼容板(該項(xiàng)目使用Uno)
16×2 LCD屏幕
HC-SR04超聲波距離傳感器
業(yè)余伺服器
10k電位器
220歐姆電阻器
5v電源
面包板和連接線
該項(xiàng)目需要一些組件,但是任何好的Arduino入門套件都應(yīng)具備您所需的一切。我在Elegoo Uno R3入門套件中找到了所需的一切。另外,上面列出的每個(gè)組件都非常便宜,并且可以在所有業(yè)余愛(ài)好電子零售商處購(gòu)買。
設(shè)置LCD屏幕
根據(jù)上面的Fritzing圖,將LCD屏幕,10k電位器和220 ohm電阻添加到面包板上。
第一次設(shè)置LCD可能會(huì)很嚇人,但請(qǐng)繼續(xù)參考該圖,您會(huì)得到的!為簡(jiǎn)化起見(jiàn),我將LCD和Arduino引腳設(shè)置為與Arduino官方LCD教程中的引腳完全相同,因此如果遇到問(wèn)題也請(qǐng)參考。
添加伺服和超聲波傳感器
現(xiàn)在將HC-SR04超聲波傳感器添加到實(shí)驗(yàn)板上。將 VCC 和 GND 引腳連接到面包板的5v和接地軌。將 Trig 引腳連接到Arduino引腳 7 ,將 Echo 引腳連接到 8 。
下一步,連接您的伺服器。接線顏色在這里可能有所不同,但通常紅色連接到 5v 引腳,并棕色或黑色連接到 GND 引腳。數(shù)據(jù)線通常為黃色或橙色,連接至引腳10 。
最后,將面包板的接地軌連接到Arduino的 GND 引腳之一。而已!一切都準(zhǔn)備就緒。
下載Xod IDE
前往Xod.io并下載免費(fèi)的Xod IDE。適用于Windows,Mac和Linux。還有一個(gè)基于瀏覽器的版本,但是由于不能使用它來(lái)上傳Arduino草圖,因此不適用于該項(xiàng)目。
下載:適用于Windows,Mac的Xod IDE ,以及Linux
與Xod閃爍
首次打開Xod時(shí),您會(huì)看到教程項(xiàng)目;或者,您可以在幫助菜單下將其打開。在左側(cè)的項(xiàng)目瀏覽器中展開 welcome-to-Xod 集合,然后選擇 101上傳。
此節(jié)點(diǎn)設(shè)置用于測(cè)試代碼是否成功上傳到Arduino。它的功能與Arduino IDE中的眨眼草圖相同。 clock 節(jié)點(diǎn)每秒創(chuàng)建一個(gè)信號(hào)。這連接到觸發(fā)器節(jié)點(diǎn),該節(jié)點(diǎn)在每次接收到信號(hào)時(shí)在true和false之間來(lái)回切換。觸發(fā)器的輸出連接到 led 節(jié)點(diǎn),將其關(guān)閉然后再打開。
單擊led節(jié)點(diǎn),您將看到Inspector窗格更改為顯示其參數(shù)。如上圖所示,將 Port 更改為13,這是Arduino上帶有板載LED的引腳。請(qǐng)注意,Xod會(huì)自動(dòng)將13變成 D13 。您無(wú)需自己鍵入D,但是如果您這樣做,則對(duì)本教程沒(méi)有影響!
要測(cè)試其是否可以通過(guò)USB連接Arduino,請(qǐng)前往 Deploy》 Upload to Arduino ,然后選擇正確的電路板類型和COM端口。
如果看到Arduino LED閃爍,那就好了!如果沒(méi)有,請(qǐng)檢查板卡和端口號(hào),然后再次測(cè)試,然后再繼續(xù)。
對(duì)LCD進(jìn)行編程
通常,我們現(xiàn)在將進(jìn)入漫長(zhǎng)的編碼過(guò)程,但是由于我們正在使用Xod,我們不會(huì)編寫任何東西。在項(xiàng)目瀏覽器中,選擇 text-lcd-16×2 -您可以在 xod/common-hardware 下找到它。將其拖到您的程序中,然后使用檢查器按如圖所示的銷釘進(jìn)行設(shè)置。
L1 是LCD的第一行, L2 是第二行,目前,我們已經(jīng)對(duì)“ Hello World”進(jìn)行了硬編碼,以檢查一切是否正常。將您的程序部署到Arduino,以查看其工作情況。如果您看不清文字,請(qǐng)嘗試旋轉(zhuǎn)10k電位器來(lái)調(diào)整LCD對(duì)比度。
現(xiàn)在設(shè)置距離傳感器,并獲取它
Distance Sensing
將 hc-sr04-ultrasonic-range 節(jié)點(diǎn)拖到您的項(xiàng)目中,然后設(shè)置 TRIG 和 ECHO 分別固定到 7 和 8 ,以匹配您之前的設(shè)置方式。
您將在項(xiàng)目瀏覽器的 xod/core 下找到 concat 節(jié)點(diǎn)。將其拖動(dòng)到超聲波距離傳感器節(jié)點(diǎn)和LCD節(jié)點(diǎn)之間。您將使用它來(lái)將范圍傳感器的讀數(shù)與您自己的一些文本連接起來(lái)(這是一個(gè)組合詞)。
此圖顯示了正在發(fā)生的情況。范圍傳感器節(jié)點(diǎn)的 Dm 輸出已插入 IN2 ,您可以看到Inspector將其標(biāo)記為已鏈接。在 IN1 框中鍵入“距離:” ?,F(xiàn)在,將concat節(jié)點(diǎn)的輸出鏈接到LCD節(jié)點(diǎn)的 L1 。
保存并部署修改后的程序。 LCD的第一行現(xiàn)在顯示了距離傳感器的讀數(shù)!
伺服設(shè)置
要使伺服器正常運(yùn)行,需要三個(gè)零件,所以讓我們一一講解它們。首先將 map-clip 節(jié)點(diǎn)從 xod/math 拖動(dòng)到程序中。該節(jié)點(diǎn)從范圍傳感器節(jié)點(diǎn)的 Dm 輸出中獲取信息,并將其映射到伺服器可以理解的值。
Smin 和 Smax 表示激活伺服的最小和最大范圍,在這種情況下介于5到20cm之間。這些值映射到 Tmin 和 Tmax ,它們?cè)O(shè)置為0和1作為最小和最大伺服位置。
xod/core 下的 fade 節(jié)點(diǎn)獲取map-clip節(jié)點(diǎn)的輸出值,并以定義的 rate 。這樣可以防止任何不必要的伺服運(yùn)動(dòng)。比率2是一個(gè)很好的平衡點(diǎn),但是您可以在此處嘗試不同的值,以使伺服器反應(yīng)更快或更慢。
最后,《您可以在 xod-dev/servo 下找到的strong》 servo 節(jié)點(diǎn),從衰落節(jié)點(diǎn)獲取輸出值。將端口更改為 10 。您可以將 UPD 留在 Continuously (連續(xù))上,因?yàn)槲覀兿M鶕?jù)范圍傳感器對(duì)伺服器進(jìn)行連續(xù)更新。
保存您的腳本并將其部署到Arduino板。機(jī)械臂原型已完成!
對(duì)其進(jìn)行測(cè)試
現(xiàn)在,當(dāng)您將物體放在距離傳感器附近時(shí),LCD會(huì)記錄距離,伺服將與檢測(cè)到的距離成比例地移動(dòng)。所有這些完全沒(méi)有任何代碼。
完整的節(jié)點(diǎn)樹顯示了在Xod中創(chuàng)建復(fù)雜程序的簡(jiǎn)單性。如果您有任何問(wèn)題,請(qǐng)仔細(xì)檢查電路和每個(gè)節(jié)點(diǎn)是否有錯(cuò)誤。
無(wú)代碼Arduino機(jī)器人
Xod允許任何人對(duì)Arduino板進(jìn)行編程,而無(wú)需考慮編碼知識(shí)。 Xod甚至可以與Blynk DIY IoT應(yīng)用程序配合使用,從而使完全免費(fèi)的DIY智能家居成為現(xiàn)實(shí)。
責(zé)任編輯:wv
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
29735瀏覽量
212854 -
編碼
+關(guān)注
關(guān)注
6文章
969瀏覽量
55767 -
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192142
發(fā)布評(píng)論請(qǐng)先 登錄
盤點(diǎn)#機(jī)器人開發(fā)平臺(tái)
【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】視覺(jué)實(shí)現(xiàn)的基礎(chǔ)算法的應(yīng)用
【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】機(jī)器人入門的引路書
名單公布!【書籍評(píng)測(cè)活動(dòng)NO.58】ROS 2智能機(jī)器人開發(fā)實(shí)踐
開源項(xiàng)目!基于Arduino控制的六足機(jī)器人
【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人的基礎(chǔ)模塊
【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人大模型
【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】1.初步理解具身智能
鴻蒙機(jī)器人與鴻蒙開發(fā)板聯(lián)動(dòng)演示
編碼器在機(jī)器人技術(shù)中的應(yīng)用 編碼器在傳感器系統(tǒng)中的作用
利用NVIDIA Isaac平臺(tái)構(gòu)建、設(shè)計(jì)并部署機(jī)器人應(yīng)用

構(gòu)建語(yǔ)音控制機(jī)器人 - 深入研究電路

開源項(xiàng)目!用ESP32做一個(gè)可愛(ài)的無(wú)用機(jī)器人
MT6825 磁編碼 IC 賦能智能耕種機(jī)器人的技術(shù)密碼
深度剖析:MT6816 磁編碼 IC 在機(jī)器人焊接變位機(jī)中的應(yīng)用

評(píng)論