Arduino六足機器人第一部分-機械原理與接線

arduino hexapod

六足機器人是最炫酷的機器人之一,但是通常價格昂貴。原因之一是它們由多個零件所組成,並且使用18個伺服系統,而這些都需要由某些微控制器來供電和驅動。在本課程中,我將展示如何透過使用3D列印所有零件並僅使用12個伺服系統來構建您自己的Arduino六足機器人,或簡稱為Ardupod。準備好了嗎?那讓我們開始吧!

硬體

  • Arduino UNO (或其他可相容Arduino的研發板)
  • Adafruit 16 通道PWM擴展板(或模組;但是,此處強烈建議使用該擴展板,因為它的原型面積很小)
  • 12 個帶有金屬齒輪的微型伺服系統(MG90S或其他同等規格產品)
  • 4.8 或 6 V 電池(鎳氫、鋰離子等)
  • 60 個M3螺栓+120個螺母和墊圈(僅用於身體,對於其他零件的安裝您需要再另外添加)
  • 6 個相同的圓珠筆彈簧
  • HC-SR04 超聲波測距模組(可選)

軟體

  • Arduino IDE
  • SolidWorks 或其他3D建模軟體
  • Github – 您在這裡可以找到所有用於列印的 Arduino原始程式碼和3D模型

其他工具

  • 3D 印表機
  • 非常建議使用萬用表、烙鐵和電鑽等其他工具

設計

如上所述,本次所設計的六足機器人僅需要12個伺服系統來行動六條腿。這意味著每條腿只配有兩個伺服系統,具有兩個自由度(DOF)。與通常的每條腿有三個伺服系統相比,這種方法有幾個優點。我們將需要更少的功率以及更少的處理時間來驅動伺服系統。但是,移除一個伺服系統也意味著我們犧牲了一個自由度,因此在對機器人進行穩定爬行的程式設計上會更具有挑戰性。

為了彌補缺少一個伺服系統所帶來的缺陷,所有腿部都有一個可以將伺服系統的角運動轉換為腿部線性運動的機械系統。您可以在以下動畫演示中看到該機制的工作原理。

正如您在視訊中所看到的那樣,該機制內含一個彈簧。彈簧的作用是對在列印過程中造成的所有誤差進行補償。另外,彈簧還可以提供更強大的支撐力,從而有助於實現更自然的爬行運動。您可以在任何地方獲取彈簧。比如,圓珠筆裡的小彈簧就可以用在這裡,但是您可能需要稍微修剪一下長度。請確保您所獲取的彈簧可以壓縮,並且足夠支撐機器人的重量。此外,在開始列印零件之前,請確保彈簧適用於列印好的零件 leg_1和 leg_1_seg_1(詳情參見Github)。

組裝

接下來,歡迎進入本文中最難的部分:組裝腿部。無論是在構建上還是程式設計上,這都屬於相當高階的一個項目。我們將假設打算製造這台機器人的人對於使用諸如電鑽和烙鐵之類的裝置具有基本的操作技能。

arduino hexapod

圖1:腿部組裝概覽

arduino hexapod

圖2:腿部組裝細節

arduino hexapod

圖3:組裝好的腿部

組裝腿部時,請始終記得必須在每兩個需要上下行動的塑膠件之間放置一個墊圈。您可能需要用電鑽調整孔的大小,保證螺栓能夠自由旋轉。同時,請注意每個螺栓需要兩個螺母。

arduino hexapod

圖4:連接腿部關節:塑膠件(黑色)和金屬件(淺灰色)

這對於保持整個支撐系統的正常工作十分重要。組裝腿部時,請確保不要將底部螺母擰得太緊,並調整至使塑膠零件仍可以自由行動。然後,頂部螺母要盡可能擰到最緊。底部螺母保證了所有零件的自由行動,而頂部螺母保證了所有零件的緊固連接。如果您的螺母擰的過松,那麼腿部會變得非常不穩定;如果擰的過緊,將會對伺服系統帶來不必要的負載。對腿部的調整可能要經過幾次嘗試才能完成。這是本課程中最重要的部分,因此請確保正確完成此步驟。

伺服系統透過一個小小的“三角臂”來固定在適當位置,這種三角臂通常用於將伺服系統齒輪軸連接到您想要行動的任何物體上。但是,在這種情況下,三角臂的位置將會被固定,以便當伺服系統運轉時,它也會自行行動,從而使腿部行動。

請確保您使用的是金屬齒輪伺服系統,而不是塑膠齒輪伺服系統!在這種應用中如果使用塑膠齒輪,不僅強度比金屬的低,而且其齒輪也可能會很快就損壞。

arduino hexapod

圖5:伺服系統附件細節。確保三角臂固定在適當位置。

伺服系統支架分為三部分,使其更易於列印。假設零件是用丙烯晴丁二烯苯乙烯(ABS)列印的,那麼可以使用丙酮來稍微溶解ABS,然後將這三部分粘在一起,再使其變幹。或者,如果您有條件使用更高品質的3D印表機,也可以一次性列印出整個零件。

arduino hexapod

圖6:伺服系統支架組裝細節

六足機器人的剩餘部分就沒有那麼複雜了:機身身體由兩塊板組成,我們可以在其上安裝所需的所有電子裝置、電池和感測器。您可以在列印之前設定好用於安裝電子裝置的孔,也可以在列印之後再鑽孔。所有零件和列印說明均可在 Github上獲取。

arduino hexapod

圖7:組裝好的身體:“A”為上板,“B”為底板。您還可以看到安裝在伺服系統上的超聲波感測器。

成功!到這裡,您已經完成了機器人的組裝,完成了本課程中最困難的部分。如果出現了什麼問題,請不要擔心,再次進行嘗試。如有必要,請嘗試對列印件進行微調,然後查看是否有效。

接線

到目前為止,這是最簡單的部分了,因為我們將使用 Adafruit PWM擴展板來完成大部分工作。我們把擴展板連接到 Arduino,然後把伺服系統連接到擴展板。如果您使用的模組無法直接連接到 Arduino,只需要將SDA、SCL以及 V+連接到 Arduino相應引腳即可(詳細資訊請參見下圖)。

您可能已經注意到了,這裡有一個放置電容的位置,但是卻沒有電容。不用擔心,這是有意為之!當許多伺服系統同時運轉時,電流峰值將達到幾安培。電容將用來消除這些尖峰。您可能需要這種電容來確保所有伺服系統的電源穩定。對於這種目的,使用電解電容是最合適的,但是對電容值的選擇更多的是憑藉猜測,而不是確切的科學計算。通常來說,電容值越大越好。電容的電壓應略高於電池電壓,因此,如果使用6V電池為所有伺服系統供電,那麼6.3V 4700µF應該可以滿足需求。

arduino hexapod

圖8:接線圖

在擴展板上,您還會注意到有一個單獨的電源端子。那是因為 Arduino本身無法提供足夠的電流來一次運行一個以上或兩個以上的伺服系統,需要將電池連接到此端子以及 Arduino電源輸入端(VIN和GND引腳)。

就是這樣,基本的接線已經完成!如果需要,您還可以添加更多模組和感測器,例如超聲波測距儀。

arduino hexapod

圖9:接線細節:建議將所有連接到同一條腿上的伺服系統的電纜困紮在一起。這樣,您將就知道哪條電纜通向哪個伺服系統。而且,這樣看起來也會比一團纏結的線纜更美觀一些。

arduino hexapod

圖10:帶有 HC-SR04超聲波感測器的接線圖

在本課程中,我將添加一個超聲波感測器,以使機器人能夠在附近有障礙物的情況下行動。我之所以選擇 HC-SR04,是因為它們非常便宜,並且易於與 Arduino一起使用。而且,這種特定感測器的形狀類似於眼睛,您可以借此來分辨出機器人在看什麼!

我將感測器安裝在一個額外的伺服系統上(有關安裝細節請參見圖7)。對該感測器進行接線也非常簡單,只是請注意不要將VCC引腳直接連接到電池上!如果您使用的是6V電池,這樣連接可能會損壞感測器。將VCC引腳連接到 Arduino 5V輸出端,並將GND連接到GND。您可以將TRIG和ECHO引腳連接到剩下的任何數位引腳上,但要記得在代碼中對它們進行適當設定。我將它們連接到引腳3(TRIG)和引腳2(ECHO)上,因為我想在需要序列埠的情況下保持引腳0和1斷開。

結論

現在,您應該已經完成了所有硬體的組裝。接通電源之前,強烈建議您對所建立的每個連接進行測試和確認。
希望您到目前為止沒有遇到很棘手的問題。如果您對該設計有任何改進的建議,請在 Github上與我交流!請繼續關注本專案的第二部分,我們將進入到下一階段,進一步研究分析逆動力學,並且對這個神奇的 Arduino六角機器人(或者Ardupod )進行程式設計。

接下來您將看到的是 ArduPod一次伸展所有腿部!

繼續閱讀 >