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