86小六足組裝教學
專案起源
此專案源起自機械蠍子史加納專案,
「看來還是六隻腳的機器人比較好做呢!」老大沉思樣。
「恩卓博士,我們去收買 U大吧!請他做一隻用 3D 列印的小六足機器人!」
隨後恩卓博士帶著一打台啤與燒肉串去找了 U大,
隔天,全世界的第一台 86小六足就這樣誕生了。
功能說明
本專案利用 86Duino Enjoy 和 86Duino Zero 或 86Duino One 實作,由於會使用到銳利的工具,所以製作時小朋友需要家長陪同,動作編輯使用 86ME,一行程式都不用寫就能讓 86小六足動起來!
準備材料
- 一片 86Duino One 或 86Duino Zero
- 12顆 Tower Pro SG90 伺服機(可以多準備一些備用)
- 3D列印機(此專案使用印匠ENJOY)
- 2mm x 4mm 螺絲
- 2mm x 8mm 螺絲
- 2mm x 15mm 螺絲
- 杜邦線
- 電子擴充板(使用 86DuinoZero 時才需要)
- 杜邦針腳
電子擴充板的電路相當簡單,各位可以自己實做一個,使用烙鐵時,小朋友請務必要有家長陪同。
列印機構
首先要下載並安裝 86DuinoRepetier-Host,可參照印匠 ENJOY 快速入門教學。
安裝完成後便可以至 Thingiverse 網站下載 86小六足 STL 檔案
解壓縮後有六個檔案,如下圖:
零件名稱和實際對應圖:
A_arm_bottom、A_arm_top、leg、linker 為小六足足部的組合零件,這 4 個零件可以組合成一個足部,
body_top 為小六足身體上半部零件,
body_bottom 為小六足身體下半部零件。
開啟我們已經安裝好的 86DuinoRepetier-Host,並且點擊 Load 按鈕,載入 86小六足足部檔案:A_arm_bottom、A_arm_top、leg 、linker
載入後的圖如下:
點選 Linker,將零件沿著 Y 軸翻轉 90 度,如下圖:
翻轉後的 linker 零件,擺放角度應如下圖:
點選 A_arm_bottom,將零件沿著 Y 軸翻轉 180 度,如下圖:
翻轉後的 A_arm_bottom 零件,擺放角度應如下圖:
翻轉完成後的足部零件如下圖:
打開支撐選項,設定 Support Type 為 Everywhere:
按下切片按鈕,就會立即進行切片,
切片完成後會出現類似下面畫面:
傳輸檔案給 86Duino Enjoy 的方法有兩種:
方法一:使用 USB 線傳輸
切片完成後,直接按下列印按鈕,86DuinoEnjoy 會立即開始列印
方法二:使用 SD 卡
插上 SD 卡至您的電腦,
切片完成後,點擊如下圖示, 將 G-code 檔儲存至 SD 卡中:選擇 G-Code Editor 分頁 > 按下儲存按鈕
將檔案儲存在 SD 卡中的 gcode 資料夾下,儲存檔名改成 auto.gcode,按存檔
從電腦拔出 SD 卡,將此 SD 卡置入 86Duino Enjoy 背面的 SD 卡插槽,
打開 86Duino Enjoy 電源,86Duino Enjoy 會自動讀取 auto.gcode 檔開始列印!
要完成一整隻 86小六足一共要列印:
6 個足部
1 個身體上半部
1 個身體下半部
組合零件
在組合零件前,我們必須先拆除並打磨零件的支撐材料:
linker 零件,使用尖嘴鉗拆除以下支撐:
body_top 零件,使用尖嘴鉗拆除以下支撐:
打磨 linker 零件,使用銼刀來回將不平整的表面磨平:
磨到可以將伺服機順利置入即可:
打磨 body_top 零件,重複使用平銼刀打磨拆除支撐後的面,直到伺服機可以容易的置入:
使用平銼刀磨平 body_bottom 與伺服機的接觸表面,直到伺服機可以順利壓入:
完成拆除與打磨零件後,我們要做鑽孔與攻牙:
需要攻牙的孔,如下圖紅圈處:
Linker 零件:
A_arm_bottom 、leg 零件:
body_top 、body_bottom 零件:
需要鑽孔的孔,如下圖紅圈處:
Linker、A_arm_bottom、A_arm_top 零件:
body_top、body_bottom 零件:
完成後,我們便可以準備將轉盤安裝至伺服機上,但要先對伺服機做歸零的動作,歸零是指將伺服機轉動至可動範圍的正中央,我們利用 Servo86 函式庫將伺服機歸零,並使用 86Duino IDE 燒錄歸零程式至 86Duino 開發板上,以下提供範例程式碼:
86Duino Zero 歸零程式
#include <Servo86.h> // 使用 Servo86 函式庫 Servo myservo1; // 初始化 Servo 物件 void setup() { // 設定 Servo 腳位為 2 myservo1.attach(2); // 送出 1500us 的 PWM 信號,使伺服機歸零至中點 myservo1.write(1500); } void loop() {}
86Duino One 歸零程式
#include <Servo86.h> // 使用 Servo86 函式庫 Servo myservo1; // 初始化 Servo 物件 void setup() { // 設定 Servo 腳位為 21 myservo1.attach(21); // 送出 1500us 的 PWM 信號,使伺服機歸零至中點 myservo1.write(1500); } void loop() {}
燒錄完成後, 86Duino 會立刻從指定腳位送出 duty 為 1500us 的 PWM,接著我們要將伺服機與 86Duino 連接起來。
將 86Duino 接上電源/電池後,伺服機會立即轉到中點位置,此時將十字型配件盤的短軸對齊中點 (標記線),套在伺服機輸出軸上,如下圖所示:
完成後便可用螺絲鎖上零件,最後完成圖如下,也可以用斜口鉗修飾配件盤,剪除較長的邊:
完成六個足部後接著就可以來組合身體,將 6 顆伺服機置於 body_bootom,如下圖:
將落在外側的伺服機連接線,各別拉至身體中央,統一從一端伸出 (這麼做是為了方便後續整線):
蓋上 body_top 零件,並用 6 顆長度15mm 的螺絲鎖緊 body_top,如下圖紅圈處:
使用鑽孔刀對一字型配件盤鑽孔 (由中心數來第二個孔,如下圖),一共要對 6 個一字型配件盤鑽孔:
用剛才提供的歸零程式把六顆伺服機分別歸零至中點,並將一字型配件盤照下圖方式套至伺服機輸出軸:
用 3 顆 2mm x 4mm 螺絲結合足部 (2 顆固定配件盤,另一顆固定 linker 與 body_bottom),並以自攻螺絲鎖緊伺服機一字型配件盤,可以用斜口鉗將一字型配件盤凸出的部分剪除,增加美觀:
6 個足部全部鎖上後,如下圖:
裝上 86Duino Zero 開發板
對應下圖紅圈處,用 3 顆 2mm x 4mm 螺絲固定 86DuinoZero 於 body_top 上:
用 2 顆 2mm x 4mm 螺絲固定擴充板:
86小六足伺服機編號與擴充板上的腳位對應如下:
使用 12 條黃色 (PWM)、1 條紅色(VIN)、1 條黑色(GND)的杜邦線連接 86DuinoZero 和轉接板:
裝上 86Duino One 開發板
對應下圖紅圈處,用 3 顆 2mm x 4mm 螺絲將 86DuinoOne 固定於 body_top 零件上:
86小六足伺服機編號與 86DuinoOne 上的腳位對應如下:
將所有伺服機連接線連接至 86DuinoOne 上:
最後我們將外露的連接線稍做整理,讓 86小六足看起來更美觀。
先將外露的伺服機連接線拉至 86小六足身體內,將伺服機連接線來回折短,用束線帶固定在兩旁支架:
用束線帶固定完成後,盡量讓右圖紅框處沒有伺服機連接線穿過,因為這是未來要放置鋰電池的空間。
動作控制
由於 86ME Mk-II 已經將 86小六足的應用專案設為範例專案,你可以在 C:\ProgramData\86ME\examples 裡面找到 86Hexapod.rbm 的步行動作。
開啟專案後記得要根據每台 86小六足去微調它的 offset 值,可以校正一些伺服機上的小誤差。
成果展示
— DEMO影片 —
相關資料
[1] 完整課程影片
[2] STL 機構檔下載
[3] 86小六足機器人 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.