組裝一隻 PrintBot Crab 小螃蟹!
專案起源
![](http://www.86duino.com/wp-content/uploads/2016/11/crab17.jpg)
此專案源起自廢材小六足專案的衍伸,
「竟然有個 PrintBot Crab 專案和廢材小六足那麼類似?」老大說道。
「恩卓博士的士兵 C,這個 PrintBot Crab 專案就交給你啦!」
隨後士兵 C 就被指派為此專案的負責人。
功能說明
在 Thingiverse 上有一個有趣的專案叫做 PrintBot Crab,它包含了 GUIA_Printbot_Cangrejo 的組裝文件。
我們可以使用 86Duino Enjoy 和 86Duino Zero 實作,並搭配 86ME 使用,就能讓 PrintBot Crab 動起來,連一行程式都不用寫呢!
準備材料
— 3D 列印件 —
首先把 PrintBot Crab 所有的零件用 86Duino Enjoy 印出來(如果在使用 86Duino Enjoy 時有問題可以參考這份教學文件),在用切片軟體產生 G-code 的時候發現 PrintBot Crab 有兩個零件會超出 86Duino Enjoy 的列印範圍,分別是下面的這兩個零件:
利用可以修改 STL 檔案的軟體,把這兩個超出列印範圍的零件各自拆成兩半,拆成兩半後就不會超出 86Duino Enjoy 的列印範圍了,如果有需要可以在這裡下載。
下圖就是所有印出來的零件,其中被小編拆開來印的零件也已經利用瞬間膠黏在一起了:
除了列印件外,還需要準備其他的零件才可以來組裝 PrintBot Crab ,在此使用的零件並不完全與 PrintBot Crab 專案使用的一樣。
— 螺絲 —
在此使用現有的螺絲與螺帽,所以規格與原作者不同,在 GUIA_Printbot_Cangrejo 的組裝文件裡有列出原作者使用的螺絲規格。
— 伺服機 —
伺服機使用的是 EMAX ES08MAII,它的工作電壓為 4.8V ~ 6V。
— 電池 —
電池的部份選擇鋰電池,要注意充電時不能充超過伺服機工作電壓太多,有可能會使伺服機毀壞。
— 線材與擴充板 —
準備幾條杜邦線用來連接 PWM 的訊號以及電源,以及製作一個擴充板(點我看詳細)方便連接伺服機。
擴充板最上方的兩根腳位是用來連接鋰電池,從擴充板反面可以看出來正電源以及負電源的針腳用銲錫整排連接在一起,除了電源以外,在最上面還有一排用來連接 PWM,PWM 這一排的針腳不像電源有用銲錫連接在一起,每一個 PWM 的腳位是獨立的,有了這個擴充板連接伺服機時,只需要把伺服機的線插在擴充板上即可。
硬體架設
在此不會將組裝的每一步都說明得很清楚,只會提一些較需要提醒的部份,或是作法與原作者作法不同的部份,更詳細的組裝教學請參照 GUIA_Printbot_Cangrejo。
安裝伺服機
把伺服機固定於 PrintBot Crab 的列印件上時使用的螺絲在伺服機的配件包裡可以找到。
將轉盤安裝至伺服機上前,要先對伺服機做歸零的動作,歸零是指將伺服機轉動至可動範圍的正中央,我們利用 Servo86 函式庫將伺服機歸零,以下提供範例程式碼:
#include <Servo86.h> Servo myservo; void setup() { myservo.attach(3); // 使用 pin 3 輸出 PWM myservo.setPosition(1500); // 設定伺服機的位置為 1500 ,1500 為歸零的位置 myservo.run(); // 使伺服機開始動作 } void loop() { }
伺服機歸零後我們才能將轉盤安裝到伺服機上,有時轉盤並沒有辦法完美的安裝至你要的位置,但這並不影響,因為後續我們可以在編輯動作時解決這個問題。
三個轉盤都安裝好後會和下圖相同:
用來把 PrintBot Crab 的列印件固定在伺服機轉盤上的螺絲,可以在伺服機的配件包中找到:
連接擴充板
將伺服機和 86Duino Zero 都固定在 PrintBot Crab 身上後,就可以將 86Duino Zero、擴充板和伺服機連接在一起,先來看一下接上線後的擴充板:
上圖中有標示 86Duino PWM 的線要連接到 86Duino Zero的 PWM 腳位上,下圖可以看到連接完成的 86Duino Zero:
PWM 的腳位可以在數位腳位中任選,在此選擇使用 9、10、11。
最後將擴充板固定起來就可以了,把擴充板固定在 PrintBot Crab 的底部,並好好的整線的話,就能讓 PrintBot Crab 外觀看起來非常整齊!
步態解說
組裝完 PrintBot Crab 後當然要讓 PrintBot Crab 動起來,但在編輯動作前我們先來研究 PrintBot Crab 是怎麼動作的。
PrintBot Crab 雖然有六隻腳,但是實際上只有用到三顆伺服機,因為右前和右後是由一顆伺服機控制,左前左後是由一顆伺服機控制,右中左中是由一顆伺服機控制,我們要控制這三顆伺服機藉以控制這六隻腳。
為了方便說明,先把這六隻腳分成三組,把右前和右後稱為”右邊的腳″、左前和左後稱為”左邊的腳″、右中左中稱為”中間的腳″,接著小編將一步一步的說明 PrintBot Crab 是如何移動的:
1. 歸零:我們先從 PrintBot Crab 的腳在起始位置開始。
2. 右邊抬高:讓中間的腳往右下轉,撐起右邊的身體。
3. 右往前,左往後:右邊的腳往前移動,左邊的腳往後移動。
4. 左邊抬高:讓中間的腳往左下轉,撐起左邊的身體。
5. 右往後,左往前:右邊的腳往後移動,左邊的腳往前移動。
接著只要重複 2->3->4->5->2->3->…,這樣 PrintBot Crab 就會一直往前走,一去不復返了~!
動作編輯
理解 PrintBot Crab 是怎麼移動後,我們就可以用 86ME 來編輯動作,讓 PrintBot Crab 動起來!
這一小節會提供本專案使用的設定值,各位可以參考然後進一步設定出自己覺得更理想的樣子,如果在使用 86ME 時有遇到困難可以參考 86ME 使用文件。
為了讓 PrintBot Crab 前進,我們要建立一個 Motion,這個 Motion 內會包含四個 Frame,分別就是上一小節提到的步驟 2、3、4、5,接著只要重複的執行這個 Motion, PrintBot Crab 就會一直往前走。
1. 右邊抬高。
![zero_size](http://www.86duino.com/wp-content/uploads/2016/10/86Crab01.png)
2. 右往前,左往後。
![zero_size](http://www.86duino.com/wp-content/uploads/2016/10/86Crab02.png)
3. 左邊抬高。
![zero_size](http://www.86duino.com/wp-content/uploads/2016/10/86Crab03.png)
4. 右往後,左往前。
![zero_size](http://www.86duino.com/wp-content/uploads/2016/10/86Crab04.png)
5. 最後記得,將 Trigger Command 設定為 Always On。
![zero_size](http://www.86duino.com/wp-content/uploads/2016/10/86Crab05.png)
編輯完動作,即可產生 All-In-One Sketch ,再利用 86Duino IDE 編譯並上傳到 86Duino Zero,接上電池後,PrintBot Crab 就會向前走了!
在此有提供我們編輯好的 86ME 檔案,供各位參照。
成果展示
— DEMO影片 —
相關連結
[1] 本專案 Github
[2] 本專案 STL 機構檔案
[3] 86ME 使用教學
[4] 廢柴小六足機器人 DIY 課程投影片:
The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.