資料介紹
描述
介紹
這個(gè)項(xiàng)目是我參加 2018 年 Arduino / Distrelec Automattion 競賽的參賽作品。它基于我今年早些時(shí)候設(shè)計(jì)并作為一個(gè)想法發(fā)布的滑冰機(jī)器人。我需要做的“唯一”事情就是開發(fā)一個(gè)可以通過 Blynk 控制的版本,然后在有良好的用戶界面后添加更多功能。當(dāng)然事情從來沒有那么容易,我在下面寫了一些關(guān)于這個(gè)項(xiàng)目的東西。
目標(biāo)是擁有更多功能,比如自主模式,但我需要在 9 月初專注于擁有一個(gè)工作機(jī)器人和盡可能整潔的東西,以適應(yīng)比賽截止日期。我決定在我的 Blynk 應(yīng)用程序中添加帶有伺服和超聲波傳感器以及簡單用戶界面的功能。自主移動(dòng)是我接下來要做的事情。無論如何,我確信我的機(jī)器人在很多方面都是獨(dú)一無二的,并且可能展示了一種將行走與輪式推進(jìn)相結(jié)合的方式。
背后的概念
機(jī)器人通常可以分為兩類,輪式或步行式。輪式機(jī)器人設(shè)計(jì)簡單(基本上是遙控汽車)且移動(dòng)速度快。有腿機(jī)器人更像是一項(xiàng)工程挑戰(zhàn),因?yàn)樗鼈冃枰獜?fù)雜的編程才能移動(dòng)四肢,挑戰(zhàn)本身就是我個(gè)人開發(fā) KITtyBot 的原因之一。有腿式的優(yōu)點(diǎn)是可以翻越障礙物和上下樓梯。這對(duì)于建筑物內(nèi)的救援任務(wù)至關(guān)重要。但是在平坦的地面上,步行機(jī)器人比帶輪子的機(jī)器人慢。當(dāng)然,這些概念可以通過多種方式組合,以便從兩個(gè)世界中獲得最佳效果。帶有高級(jí)懸架的輪式機(jī)器人可以越過障礙物,最終“懸架”可以更像“腿”,允許行走或攀爬。
我的項(xiàng)目評(píng)估了一個(gè)帶有被動(dòng)輪子的機(jī)器人,即它們?nèi)狈ν七M(jìn)力。取而代之的是一個(gè)伺服系統(tǒng),可以讓車輪傾斜,基本上就像汽車的前輪一樣。移動(dòng)是通過滑冰(或者可能像劃獨(dú)木舟)來完成的,即利用可能性來調(diào)整輪子的角度并使用腿部運(yùn)動(dòng)向前推動(dòng)。至少與普通步行相比,這允許進(jìn)行相當(dāng)快速且節(jié)能的運(yùn)動(dòng)。與具有“腿懸架”的傳統(tǒng)輪式機(jī)器人相比的優(yōu)勢在于不需要電機(jī)驅(qū)動(dòng)輪子。機(jī)器人可以隨時(shí)恢復(fù)行走。
大部分設(shè)計(jì)與我在項(xiàng)目中心發(fā)布的機(jī)器人 KITtyBot 相似。它使用相同的反向運(yùn)動(dòng)學(xué)來移動(dòng)腳,如果它確實(shí)行走,它使用我為 KITtyBot 開發(fā)的相同步行步態(tài)。新的部分是腳上增加的“旱冰鞋”。輪子的接觸點(diǎn)位于腳尖在 KITtyBot 上的位置。
構(gòu)建機(jī)器人
根據(jù)提供的文件打印零件。在開始之前,請(qǐng)花一些時(shí)間查看圖片并弄清楚如何組裝零件。
應(yīng)首先組裝髖關(guān)節(jié)。我通過添加更多 3D 打印部件從 KITtyBot 開發(fā)了設(shè)計(jì)。為此,我還必須重新設(shè)計(jì)身體,新的髖關(guān)節(jié)需要多出幾毫米的空間。如果您碰巧有 KITtyBot 的零件在身邊,或者想將其中一個(gè)改裝成這個(gè)機(jī)器人,您可以這樣做。組裝好所有部件后,外形尺寸將相同
請(qǐng)注意,有兩個(gè)版本稱為 fl/rr(左前/右后)和 fr/rl(右前/左后)。制作四個(gè)髖關(guān)節(jié)需要每類各兩套。確保您對(duì)零件進(jìn)行了分類。除了這四個(gè)引腳之外,還需要一個(gè)新的身體。保留了原版 KITtyBot 的腿和保險(xiǎn)杠。
下圖顯示了關(guān)節(jié)的組裝。下圖中的分步說明顯示了如何進(jìn)行 fl/rr 接頭。一旦你用完了一半的零件,另一個(gè)關(guān)節(jié)應(yīng)該是直的。:)
接下來是腳關(guān)節(jié)。這還包括兩個(gè) 3D 打印部件和兩個(gè)伺服系統(tǒng)。有四個(gè)部分,每個(gè)部分稱為先腳和后腳。它們沒有分為 fr/rl 和 fl/rr 版本,因?yàn)樗鼈儠?huì)隨著伺服系統(tǒng)的安裝方式而改變。下面的圖片描述了安裝順序。
這樣做之后,腿就可以完成了。在繼續(xù)之前,最好確保所有 12 個(gè)舵機(jī)都居中。最好的方法是組裝電子設(shè)備,見下文,連接所有伺服系統(tǒng)并加載代碼。當(dāng) Arduino 啟動(dòng)時(shí),所有伺服系統(tǒng)將居中(命令信號(hào) 90 度)。
上肢、大腿和安裝輪子的部分(稱為腳)具有與伺服喇叭配合的凹槽,伺服喇叭通常與舵機(jī)一起交付。將喇叭粘到凹槽中。確保使用適用于連接 3D 打印材料和制成喇叭的尼龍塑料的膠水。我用的膠槍很好用,一些更好的 CA 膠也可以。
完整的腿組件應(yīng)如下圖所示。首先將兩個(gè)伺服組件連接到大腿部分。大腿與垂直方向成 30 度角。這將在車輪伺服中心與下臀部 alpha 伺服中心對(duì)齊時(shí)實(shí)現(xiàn)。使其盡可能靠近,并在組裝好所有內(nèi)容后微調(diào)代碼中的中心位置(見下文)。
然后可以將腳部組裝到它的伺服器上。車輪由 3D 打印的輪輞制成,帶有一個(gè) O 形圈作為“輪胎”。輪子用 M3 螺絲和螺母安裝到腳上。在腳和輪之間使用兩個(gè)墊圈,以使其盡可能平穩(wěn)地滾動(dòng)。
然后可以將腿與身體組裝在一起。保險(xiǎn)杠的凹槽中應(yīng)粘有伺服喇叭。最好的方法是將伺服驅(qū)動(dòng)器安裝到保險(xiǎn)杠上,盡可能接近所需的角度,見下文,并用螺絲固定。然后可以將帶有兩條腿的完整保險(xiǎn)杠安裝到車身上,并用伺服螺釘固定保險(xiǎn)杠。注意:伺服系統(tǒng)隨附的所有螺釘都需要將伺服系統(tǒng)組裝到髖關(guān)節(jié)和腳關(guān)節(jié)上。你可能有一些額外的安裝螺絲,至少有備用伺服系統(tǒng)是個(gè)好建議,因?yàn)樗鼈兒苋菀讐牡簟?/font>
下圖顯示了組裝好的機(jī)器人。電子面包板應(yīng)安裝在機(jī)器人頂部。用尼龍搭扣將電池固定在“腹部”下方。可以取下來充電,也可以換上新充電的,還可以通過左右移動(dòng)電池來調(diào)整重心。
添加超聲波傳感器和伺服
該項(xiàng)目的目標(biāo)是借助安裝在伺服系統(tǒng)上的超聲波傳感器 HC-SR04 實(shí)現(xiàn)自主導(dǎo)航。好吧,3D 打印部件方面的硬件已經(jīng)準(zhǔn)備就緒,功能本身已經(jīng)與電子設(shè)備一起進(jìn)行了測試。我只是簡單地添加這些項(xiàng)目,因?yàn)樗鼈冊(cè)诒荣惤刂谷掌跁r(shí)是這樣的,你可以選擇組裝它們并稍微玩一下,或者編寫自主導(dǎo)航和發(fā)布的代碼。:)
前保險(xiǎn)杠應(yīng)更換為美國保險(xiǎn)杠,傳感器支架應(yīng)組裝在第 17 個(gè)舵機(jī)的頂部。伺服本身安裝在前保險(xiǎn)杠中。做這一切時(shí),重心會(huì)向前移動(dòng)。將機(jī)器人頂部的面包板移到后面是個(gè)好主意。
連接電子設(shè)備
連接組件非常簡單。然而,有些事情值得一提。在繼續(xù)之前,我覺得有必要寫一些關(guān)于 LiPo 電池的東西(我也在我之前的項(xiàng)目 KITtyBot 中寫過免責(zé)聲明)。
我使用完全沒有保護(hù)的鋰聚合物電池。這可能是有風(fēng)險(xiǎn)的,主要的危險(xiǎn)是放電太快或太深。只要不是意外短路,第一個(gè)危險(xiǎn)就可以避免。普通 R/C 電池的放電率為 25 C,在這種情況下允許 12 A。兩個(gè) UBEC 將防止它在任何情況下各自高于 2 至 3 A。如果電池電壓降至 6 V,UBEC 無法為舵機(jī)和 MKR 提供電壓,這恰好是低電壓的限制,因此可以防止第二個(gè)危險(xiǎn)。為了增加監(jiān)控,Blynk 應(yīng)用程序中安裝了一個(gè)電壓指示器。KITYBot 有一個(gè)主動(dòng)電壓監(jiān)控,可以讓機(jī)器人休息,但不需要它,因?yàn)闄C(jī)器人會(huì)在電壓過高之前自行停止工作。
最后我必須強(qiáng)調(diào),電池應(yīng)使用專用充電器充電,并按常規(guī)小心處理,切勿在無人看管的情況下充電。電池應(yīng)從機(jī)器人上拆下(使用尼龍搭扣安裝)并在防火袋內(nèi)充電,或至少與易燃材料保持安全距離,以便火勢得以遏制且不會(huì)蔓延。還要安全地存放電池。
如果您不熟悉鋰聚合物電池,請(qǐng)咨詢當(dāng)?shù)氐?R/C 業(yè)余愛好商店并購買電池以及合適的充電器,可能還有用于充電和儲(chǔ)存的防火袋/容器。這些物品通常帶有警告標(biāo)志。閱讀它們并運(yùn)用您自己的良好判斷力。:)
將兩個(gè) UBEC 連接到電池引線。還有另外兩根電線直接從電池側(cè)饋電。在我的例子中,這些“兩根電線”是一根報(bào)廢的伺服電纜,信號(hào)線(黃色或白色)已被移除。它整齊地安裝在面包板上的公-公接頭上。然后它變得類似于 UBEC 的電源輸出線。
如原理圖所示,一個(gè)電源 UBEC 1 為伺服控制器供電。另一個(gè) UBEC2 連接到面包板上的“上電源軌”,為 MKR 供電。如果需要,此軌稍后可用于為更多 5 V 設(shè)備供電,請(qǐng)參見下文。電池電源(在我的例子中是剝離的伺服電纜)連接到較低的電源軌。A1 引腳由此通過兩個(gè)電阻饋電以測量電池電量。通過這兩個(gè)電阻器,電池功率按比例降低,因此 10.6 V 轉(zhuǎn)換為 3.3 V,從而為 8.4 V 的最大電池電壓提供了相當(dāng)大的余量。
當(dāng)我第一次連接電子設(shè)備時(shí),我遇到了抖動(dòng)伺服系統(tǒng)的嚴(yán)重問題。這是一個(gè)已知現(xiàn)象,伺服控制器準(zhǔn)備添加一個(gè)電容器來平衡電壓振蕩。我看到了“經(jīng)驗(yàn)法則”,每個(gè)伺服使用大約 100 uF 的容量,在我的例子中加起來達(dá)到 1600 uF。我在我的東西中發(fā)現(xiàn)了一個(gè) 2200 uF 的電容器并焊接到卡上,一切正常。所提供的 3 A 對(duì)于所有這些數(shù)量的伺服系統(tǒng)來說有點(diǎn)低(如果所有 16 個(gè)伺服系統(tǒng)同時(shí)停止,最壞的情況是大約 8 到 10 A),但是隨著電容器的增加,功耗的峰值可能是平了。
如果您想添加美國傳感器和伺服器,還有另一個(gè)示意圖顯示要添加的內(nèi)容。伺服和超聲波傳感器都在 5 V 下工作最佳。從面包板的 5 V 導(dǎo)軌供電。這些組件本身通過從 MKR1000 獲取 3.3 V 信號(hào)來工作。但要注意一件事。來自 US 傳感器的返回信號(hào)“回聲”將為 5V。為了保護(hù) MKR1000,分壓器必須使用 2.2 和 1.0 K 電阻(或任何其他電阻比約為 1 比 2 的電阻對(duì))。
Blynk 應(yīng)用程序
這個(gè)項(xiàng)目真正的新穎之處在于使用 Blynk 以便在我的 iPhone 上擁有用戶界面并能夠通過 wifi 控制它。Blynk 的使用引起了對(duì)如何編寫代碼的重新思考。Blynk 的基本規(guī)則是:
- 沒有延誤
- 避免在 loop() 中有代碼
- 使用時(shí)間(而不是做上面的兩個(gè)禁忌)
這樣做的原因(我認(rèn)為)是需要經(jīng)常調(diào)用 blynk.run() 。如果不是,一切都會(huì)變?cè)恪?/font>我計(jì)劃重用和開發(fā)的 KITtyBot 代碼肯定打破了第二條規(guī)則,因?yàn)樗袔酌腌姷娜唛L函數(shù)調(diào)用。我可以通過偶爾在代碼中加入一個(gè) blynk.run() 命令來讓它工作,但是當(dāng)閱讀論壇時(shí),很明顯核心專家說“使用計(jì)時(shí)”然后是“它不是 har根本”。我把這當(dāng)作一個(gè)挑戰(zhàn)并決定重寫以適應(yīng)“Blynk方式”
所以 Arduino 每 100 毫秒調(diào)用一次函數(shù)。執(zhí)行此操作時(shí),它要么讀取按鈕狀態(tài)以接收新命令,要么繼續(xù)執(zhí)行 100 毫秒前的操作。滑板或步行步態(tài)由幾個(gè)連續(xù)的動(dòng)作組成,其中一些可以在 100 毫秒的間隔內(nèi)執(zhí)行,一些需要分成更小的部分,同步動(dòng)作通常需要 500 毫秒。這一點(diǎn),連同電源問題,在比賽截止日期前花了相當(dāng)長的時(shí)間來解決。
操縱桿控制正常滑行。機(jī)器人是非??煽氐模梢郧斑M(jìn)和后退,也可以做非常急的轉(zhuǎn)彎。我還添加了一個(gè)開關(guān)來將模式更改為一種叫做“舞蹈”的東西,在這種模式中,操縱桿改為控制身體在兩個(gè)方向上的運(yùn)動(dòng)。添加更多內(nèi)容是為了顯示通過添加 Blynk 小部件和幾行代碼并使用我為 KITtyBot 開發(fā)的功能可以輕松添加新功能。正常行走和轉(zhuǎn)彎的方式與 KITtyBot 上的相同,只需按下四個(gè)按鈕之一,并在您想讓它移動(dòng)時(shí)一直按住它們(我必須做的“唯一”事情就是重新考慮 Blynk)。
電池指示器只需添加一個(gè)連接到 A1 的垂直電平即可。限制是 580 到 810。這個(gè),10.6 V 是模擬引腳上的最大值 1023,電平測量值在 6.0 到 8.4 V 之間(電池應(yīng)在該限制內(nèi)運(yùn)行)。小部件每秒更新一次。
如果添加了 US 傳感器,則距離測量由標(biāo)記值小部件完成。還添加了一個(gè)滑塊來移動(dòng)平移伺服。后者的值限制在 20 到 160 之間,以便在伺服系統(tǒng) 0 到 180 度的操作范圍內(nèi)發(fā)出命令(為端點(diǎn)提供 20 度的余量)。
下圖顯示了我如何在 iPhone 上組織小部件。我在 Arduino 代碼的開頭添加了關(guān)于如何定義每個(gè)小部件的注釋。
校準(zhǔn)舵機(jī)
這張來自 KITtyBot 的圖片展示了如何定義不同的幾何參數(shù)。相應(yīng)的變量可以在 Arduino 代碼中找到。
在使用機(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ù)組中的第八個(gè)位置或者servodeg0[7](數(shù)組的編號(hào)從0開始)。最后四個(gè)是腳舵機(jī),順序?yàn)?f/l、r/l、f/rr/r。
還有一個(gè)稱為 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ī)沿逆時(shí)針方向從 0 度移動(dòng)到 180 度。我在某處讀到有舵機(jī)朝另一個(gè)方向移動(dòng)。在這種情況下,陣列 servodir 必須一直改變它們的符號(hào)。
啟動(dòng) Arduino 并檢查所有舵機(jī)的角度。采取措施,看看一切看起來都是筆直和對(duì)稱的。
然后在客廳地板上溜冰。:)
- 制作Arduino控制的機(jī)器人
- Arduino機(jī)器人開源
- Arduino機(jī)器人
- Arduino飛行機(jī)器人
- Arduino越野機(jī)器人
- Arduino機(jī)器人開源項(xiàng)目
- 如何制作Arduino相撲機(jī)器人
- Arduino機(jī)器人開源分享
- Arduino機(jī)器人Ludos開源
- Arduino機(jī)器人螞蟻
- ARLOK arduino機(jī)器人
- 魔方機(jī)器人(三)Arduino
- Arduino教學(xué)機(jī)器人的使用教程免費(fèi)下載 37次下載
- Arduino開發(fā)機(jī)器人經(jīng)典書籍推薦Arduino開發(fā)實(shí)戰(zhàn)指南:機(jī)器人卷
- Arduino機(jī)器人制作指南-奧松機(jī)器人 34次下載
- 如何使用Arduino制造一個(gè)自動(dòng)平衡機(jī)器人 4429次閱讀
- 鑄造機(jī)器人是什么?選擇工業(yè)機(jī)器人應(yīng)該考慮的方向 1137次閱讀
- 面對(duì)疫情 醫(yī)療機(jī)器人能幫上什么忙? 2126次閱讀
- dfrobotSparki機(jī)器人套裝簡介 2064次閱讀
- dfrobotDevastator履帶機(jī)器人移動(dòng)平臺(tái)簡介 1515次閱讀
- dfrobotArduino 創(chuàng)意機(jī)器人入門簡介 1748次閱讀
- 工業(yè)機(jī)器人編程入門_工業(yè)機(jī)器人的編程要求 9571次閱讀
- 醫(yī)用機(jī)器人的定義_醫(yī)用機(jī)器人發(fā)展 3122次閱讀
- 醫(yī)用機(jī)器人的功能_醫(yī)用機(jī)器人分類 2227次閱讀
- 機(jī)器人控制器有哪些類型_機(jī)器人控制器發(fā)展 1.1w次閱讀
- 協(xié)作機(jī)器人的起源_為什么需要協(xié)作機(jī)器人 8127次閱讀
- 機(jī)器視覺的機(jī)器人取代四臺(tái)傳統(tǒng)的火焰處理機(jī)器人 3270次閱讀
- 如何區(qū)分機(jī)器人、協(xié)作機(jī)器人和移動(dòng)機(jī)器人? 6828次閱讀
- 軟體機(jī)器人 前所未見的機(jī)器人 3692次閱讀
- 機(jī)器人的最佳編程語言是什么?機(jī)器人十大流行編程語言匯總 3.4w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多