電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Arduino滑冰機(jī)器人

Arduino滑冰機(jī)器人

2022-12-05 | zip | 1.20 MB | 次下載 | 免費(fèi)

資料介紹

描述

介紹

這個項目是我參加 2018 年 Arduino / Distrelec Automattion 競賽的參賽作品。它基于我今年早些時候設(shè)計并作為一個想法發(fā)布的滑冰機(jī)器人。我需要做的“唯一”事情就是開發(fā)一個可以通過 Blynk 控制的版本,然后在有良好的用戶界面后添加更多功能。當(dāng)然事情從來沒有那么容易,我在下面寫了一些關(guān)于這個項目的東西。

目標(biāo)是擁有更多功能,比如自主模式,但我需要在 9 月初專注于擁有一個工作機(jī)器人和盡可能整潔的東西,以適應(yīng)比賽截止日期。我決定在我的 Blynk 應(yīng)用程序中添加帶有伺服和超聲波傳感器以及簡單用戶界面的功能。自主移動是我接下來要做的事情。無論如何,我確信我的機(jī)器人在很多方面都是獨(dú)一無二的,并且可能展示了一種將行走與輪式推進(jìn)相結(jié)合的方式。

背后的概念

機(jī)器人通??梢苑譃閮深悾喪交虿叫惺?。輪式機(jī)器人設(shè)計簡單(基本上是遙控汽車)且移動速度快。有腿機(jī)器人更像是一項工程挑戰(zhàn),因?yàn)樗鼈冃枰獜?fù)雜的編程才能移動四肢,挑戰(zhàn)本身就是我個人開發(fā) KITtyBot 的原因之一。有腿式的優(yōu)點(diǎn)是可以翻越障礙物和上下樓梯。這對于建筑物內(nèi)的救援任務(wù)至關(guān)重要。但是在平坦的地面上,步行機(jī)器人比帶輪子的機(jī)器人慢。當(dāng)然,這些概念可以通過多種方式組合,以便從兩個世界中獲得最佳效果。帶有高級懸架的輪式機(jī)器人可以越過障礙物,最終“懸架”可以更像“腿”,允許行走或攀爬。

我的項目評估了一個帶有被動輪子的機(jī)器人,即它們?nèi)狈ν七M(jìn)力。取而代之的是一個伺服系統(tǒng),可以讓車輪傾斜,基本上就像汽車的前輪一樣。移動是通過滑冰(或者可能像劃獨(dú)木舟)來完成的,即利用可能性來調(diào)整輪子的角度并使用腿部運(yùn)動向前推動。至少與普通步行相比,這允許進(jìn)行相當(dāng)快速且節(jié)能的運(yùn)動。與具有“腿懸架”的傳統(tǒng)輪式機(jī)器人相比的優(yōu)勢在于不需要電機(jī)驅(qū)動輪子。機(jī)器人可以隨時恢復(fù)行走。

大部分設(shè)計與我在項目中心發(fā)布的機(jī)器人 KITtyBot 相似。它使用相同的反向運(yùn)動學(xué)來移動腳,如果它確實(shí)行走,它使用我為 KITtyBot 開發(fā)的相同步行步態(tài)。新的部分是腳上增加的“旱冰鞋”。輪子的接觸點(diǎn)位于腳尖在 KITtyBot 上的位置。

構(gòu)建機(jī)器人

根據(jù)提供的文件打印零件。在開始之前,請花一些時間查看圖片并弄清楚如何組裝零件。

應(yīng)首先組裝髖關(guān)節(jié)。我通過添加更多 3D 打印部件從 KITtyBot 開發(fā)了設(shè)計。為此,我還必須重新設(shè)計身體,新的髖關(guān)節(jié)需要多出幾毫米的空間。如果您碰巧有 KITtyBot 的零件在身邊,或者想將其中一個改裝成這個機(jī)器人,您可以這樣做。組裝好所有部件后,外形尺寸將相同

請注意,有兩個版本稱為 fl/rr(左前/右后)和 fr/rl(右前/左后)。制作四個髖關(guān)節(jié)需要每類各兩套。確保您對零件進(jìn)行了分類。除了這四個引腳之外,還需要一個新的身體。保留了原版 KITtyBot 的腿和保險杠。

下圖顯示了關(guān)節(jié)的組裝。下圖中的分步說明顯示了如何進(jìn)行 fl/rr 接頭。一旦你用完了一半的零件,另一個關(guān)節(jié)應(yīng)該是直的。:)

?
?
?
?
poYBAGOIKqaALi5NAAAsaFTqjv8204.jpg
?
1 / 6 ?首先將銷釘安裝到內(nèi)部部件中
?

接下來是腳關(guān)節(jié)。這還包括兩個 3D 打印部件和兩個伺服系統(tǒng)。有四個部分,每個部分稱為先腳和后腳。它們沒有分為 fr/rl 和 fl/rr 版本,因?yàn)樗鼈儠S著伺服系統(tǒng)的安裝方式而改變。下面的圖片描述了安裝順序。

?
?
?
?
poYBAGOIKqqALQmXAAA3EyNiLn8815.jpg
?
1 / 3 ?通過簡單地連接零件的大平面區(qū)域來制作四個接頭。使用 CA 膠水我們的雙面膠帶
?

這樣做之后,腿就可以完成了。在繼續(xù)之前,最好確保所有 12 個舵機(jī)都居中。最好的方法是組裝電子設(shè)備,見下文,連接所有伺服系統(tǒng)并加載代碼。當(dāng) Arduino 啟動時,所有伺服系統(tǒng)將居中(命令信號 90 度)。

上肢、大腿和安裝輪子的部分(稱為腳)具有與伺服喇叭配合的凹槽,伺服喇叭通常與舵機(jī)一起交付。將喇叭粘到凹槽中。確保使用適用于連接 3D 打印材料和制成喇叭的尼龍塑料的膠水。我用的膠槍很好用,一些更好的 CA 膠也可以。

完整的腿組件應(yīng)如下圖所示。首先將兩個伺服組件連接到大腿部分。大腿與垂直方向成 30 度角。這將在車輪伺服中心與下臀部 alpha 伺服中心對齊時實(shí)現(xiàn)。使其盡可能靠近,并在組裝好所有內(nèi)容后微調(diào)代碼中的中心位置(見下文)。

然后可以將腳部組裝到它的伺服器上。車輪由 3D 打印的輪輞制成,帶有一個 O 形圈作為“輪胎”。輪子用 M3 螺絲和螺母安裝到腳上。在腳和輪之間使用兩個墊圈,以使其盡可能平穩(wěn)地滾動。

?
?
?
?
pYYBAGOIKq6AabbNAAA9PmDZ1Tc748.jpg
?
1 / 4 ?組裝好的前/后腿
?

然后可以將腿與身體組裝在一起。保險杠的凹槽中應(yīng)粘有伺服喇叭。最好的方法是將伺服驅(qū)動器安裝到保險杠上,盡可能接近所需的角度,見下文,并用螺絲固定。然后可以將帶有兩條腿的完整保險杠安裝到車身上,并用伺服螺釘固定保險杠。注意:伺服系統(tǒng)隨附的所有螺釘都需要將伺服系統(tǒng)組裝到髖關(guān)節(jié)和腳關(guān)節(jié)上。你可能有一些額外的安裝螺絲,至少有備用伺服系統(tǒng)是個好建議,因?yàn)樗鼈兒苋菀讐牡簟?/font>

下圖顯示了組裝好的機(jī)器人。電子面包板應(yīng)安裝在機(jī)器人頂部。用尼龍搭扣將電池固定在“腹部”下方。可以取下來充電,也可以換上新充電的,還可以通過左右移動電池來調(diào)整重心。

?
pYYBAGOIKrOAbm6CAADQFEj_rzE160.jpg
組裝好的機(jī)器人
?

添加超聲波傳感器和伺服

該項目的目標(biāo)是借助安裝在伺服系統(tǒng)上的超聲波傳感器 HC-SR04 實(shí)現(xiàn)自主導(dǎo)航。好吧,3D 打印部件方面的硬件已經(jīng)準(zhǔn)備就緒,功能本身已經(jīng)與電子設(shè)備一起進(jìn)行了測試。我只是簡單地添加這些項目,因?yàn)樗鼈冊诒荣惤刂谷掌跁r是這樣的,你可以選擇組裝它們并稍微玩一下,或者編寫自主導(dǎo)航和發(fā)布的代碼。:)

前保險杠應(yīng)更換為美國保險杠,傳感器支架應(yīng)組裝在第 17 個舵機(jī)的頂部。伺服本身安裝在前保險杠中。做這一切時,重心會向前移動。將機(jī)器人頂部的面包板移到后面是個好主意。

?
?
?
?
poYBAGOIK8SAMB8rAAwRynrsmmQ471.jpg
?
1 / 2 ?為機(jī)器人添加美國傳感器
?

連接電子設(shè)備

連接組件非常簡單。然而,有些事情值得一提。在繼續(xù)之前,我覺得有必要寫一些關(guān)于 LiPo 電池的東西(我也在我之前的項目 KITtyBot 中寫過免責(zé)聲明)。

我使用完全沒有保護(hù)的鋰聚合物電池。這可能是有風(fēng)險的,主要的危險是放電太快或太深。只要不是意外短路,第一個危險就可以避免。普通 R/C 電池的放電率為 25 C,在這種情況下允許 12 A。兩個 UBEC 將防止它在任何情況下各自高于 2 至 3 A。如果電池電壓降至 6 V,UBEC 無法為舵機(jī)和 MKR 提供電壓,這恰好是低電壓的限制,因此可以防止第二個危險。為了增加監(jiān)控,Blynk 應(yīng)用程序中安裝了一個電壓指示器。KITYBot 有一個主動電壓監(jiān)控,可以讓機(jī)器人休息,但不需要它,因?yàn)闄C(jī)器人會在電壓過高之前自行停止工作。

最后我必須強(qiáng)調(diào),電池應(yīng)使用專用充電器充電,并按常規(guī)小心處理,切勿在無人看管的情況下充電。電池應(yīng)從機(jī)器人上拆下(使用尼龍搭扣安裝)并在防火袋內(nèi)充電,或至少與易燃材料保持安全距離,以便火勢得以遏制且不會蔓延。還要安全地存放電池。

如果您不熟悉鋰聚合物電池,請咨詢當(dāng)?shù)氐?R/C 業(yè)余愛好商店并購買電池以及合適的充電器,可能還有用于充電和儲存的防火袋/容器。這些物品通常帶有警告標(biāo)志。閱讀它們并運(yùn)用您自己的良好判斷力。:)

將兩個 UBEC 連接到電池引線。還有另外兩根電線直接從電池側(cè)饋電。在我的例子中,這些“兩根電線”是一根報廢的伺服電纜,信號線(黃色或白色)已被移除。它整齊地安裝在面包板上的公-公接頭上。然后它變得類似于 UBEC 的電源輸出線。

?
pYYBAGOIK8qAI_MYAAumOCu5zJM247.jpg
我將電池連接器連接到兩個 UBEC 和電池電源線的方式。
?

如原理圖所示,一個電源 UBEC 1 為伺服控制器供電。另一個 UBEC2 連接到面包板上的“上電源軌”,為 MKR 供電。如果需要,此軌稍后可用于為更多 5 V 設(shè)備供電,請參見下文。電池電源(在我的例子中是剝離的伺服電纜)連接到較低的電源軌。A1 引腳由此通過兩個電阻饋電以測量電池電量。通過這兩個電阻器,電池功率按比例降低,因此 10.6 V 轉(zhuǎn)換為 3.3 V,從而為 8.4 V 的最大電池電壓提供了相當(dāng)大的余量。

當(dāng)我第一次連接電子設(shè)備時,我遇到了抖動伺服系統(tǒng)的嚴(yán)重問題。這是一個已知現(xiàn)象,伺服控制器準(zhǔn)備添加一個電容器來平衡電壓振蕩。我看到了“經(jīng)驗(yàn)法則”,每個伺服使用大約 100 uF 的容量,在我的例子中加起來達(dá)到 1600 uF。我在我的東西中發(fā)現(xiàn)了一個 2200 uF 的電容器并焊接到卡上,一切正常。所提供的 3 A 對于所有這些數(shù)量的伺服系統(tǒng)來說有點(diǎn)低(如果所有 16 個伺服系統(tǒng)同時停止,最壞的情況是大約 8 到 10 A),但是隨著電容器的增加,功耗的峰值可能是平了。

如果您想添加美國傳感器和伺服器,還有另一個示意圖顯示要添加的內(nèi)容。伺服和超聲波傳感器都在 5 V 下工作最佳。從面包板的 5 V 導(dǎo)軌供電。這些組件本身通過從 MKR1000 獲取 3.3 V 信號來工作。但要注意一件事。來自 US 傳感器的返回信號“回聲”將為 5V。為了保護(hù) MKR1000,分壓器必須使用 2.2 和 1.0 K 電阻(或任何其他電阻比約為 1 比 2 的電阻對)。

Blynk 應(yīng)用程序

這個項目真正的新穎之處在于使用 Blynk 以便在我的 iPhone 上擁有用戶界面并能夠通過 wifi 控制它。Blynk 的使用引起了對如何編寫代碼的重新思考。Blynk 的基本規(guī)則是:

  • 沒有延誤
  • 避免在 loop() 中有代碼
  • 使用時間(而不是做上面的兩個禁忌)

這樣做的原因(我認(rèn)為)是需要經(jīng)常調(diào)用 blynk.run() 。如果不是,一切都會變糟。我計劃重用和開發(fā)的 KITtyBot 代碼肯定打破了第二條規(guī)則,因?yàn)樗袔酌腌姷娜唛L函數(shù)調(diào)用。我可以通過偶爾在代碼中加入一個 blynk.run() 命令來讓它工作,但是當(dāng)閱讀論壇時,很明顯核心專家說“使用計時”然后是“它不是 har根本”。我把這當(dāng)作一個挑戰(zhàn)并決定重寫以適應(yīng)“Blynk方式”

所以 Arduino 每 100 毫秒調(diào)用一次函數(shù)。執(zhí)行此操作時,它要么讀取按鈕狀態(tài)以接收新命令,要么繼續(xù)執(zhí)行 100 毫秒前的操作。滑板或步行步態(tài)由幾個連續(xù)的動作組成,其中一些可以在 100 毫秒的間隔內(nèi)執(zhí)行,一些需要分成更小的部分,同步動作通常需要 500 毫秒。這一點(diǎn),連同電源問題,在比賽截止日期前花了相當(dāng)長的時間來解決。

操縱桿控制正?;?。機(jī)器人是非常可控的,它可以前進(jìn)和后退,也可以做非常急的轉(zhuǎn)彎。我還添加了一個開關(guān)來將模式更改為一種叫做“舞蹈”的東西,在這種模式中,操縱桿改為控制身體在兩個方向上的運(yùn)動。添加更多內(nèi)容是為了顯示通過添加 Blynk 小部件和幾行代碼并使用我為 KITtyBot 開發(fā)的功能可以輕松添加新功能。正常行走和轉(zhuǎn)彎的方式與 KITtyBot 上的相同,只需按下四個按鈕之一,并在您想讓它移動時一直按住它們(我必須做的“唯一”事情就是重新考慮 Blynk)。

電池指示器只需添加一個連接到 A1 的垂直電平即可。限制是 580 到 810。這個,10.6 V 是模擬引腳上的最大值 1023,電平測量值在 6.0 到 8.4 V 之間(電池應(yīng)在該限制內(nèi)運(yùn)行)。小部件每秒更新一次。

如果添加了 US 傳感器,則距離測量由標(biāo)記值小部件完成。還添加了一個滑塊來移動平移伺服。后者的值限制在 20 到 160 之間,以便在伺服系統(tǒng) 0 到 180 度的操作范圍內(nèi)發(fā)出命令(為端點(diǎn)提供 20 度的余量)。

下圖顯示了我如何在 iPhone 上組織小部件。我在 Arduino 代碼的開頭添加了關(guān)于如何定義每個小部件的注釋。

?
pYYBAGOIK8yAKE4rAAB9mMEbPxQ814.png
我在 Blink 應(yīng)用程序中的小部件。
?

校準(zhǔn)舵機(jī)

這張來自 KITtyBot 的圖片展示了如何定義不同的幾何參數(shù)。相應(yīng)的變量可以在 Arduino 代碼中找到。

?
poYBAGNOTZGAAYlTAAAbvr1eYQE667.png
不同幾何參數(shù)的變量
?

在使用機(jī)器人之前,應(yīng)微調(diào)中心位置。這是通過在代碼中編輯數(shù)組 servodeg0 來完成的:

const int servonum = 16; // The amount of servos
const float servodeg0[servonum] = {90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90};

這些值的順序?yàn)?alfa、beta gamma 和前/左、后/左、前/右、后/右。所以右前方的beta是數(shù)組中的第八個位置或者servodeg0[7](數(shù)組的編號從0開始)。最后四個是腳舵機(jī),順序?yàn)?f/l、r/l、f/rr/r。

還有一個稱為 servodir 的數(shù)組,用于定義舵機(jī)的旋轉(zhuǎn)方向。

const int servodir[servonum] = {  +1, +1, -1, -1, -1, +1, -1, -1, -1, +1, +1, +1, -1, -1, -1, -1};

我使用的舵機(jī)沿逆時針方向從 0 度移動到 180 度。我在某處讀到有舵機(jī)朝另一個方向移動。在這種情況下,陣列 servodir 必須一直改變它們的符號。

啟動 Arduino 并檢查所有舵機(jī)的角度。采取措施,看看一切看起來都是筆直和對稱的。

然后在客廳地板上溜冰。:)


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)