2016年9月28日 星期三

[MeArm.Rover] 火星探險車

MeArm.Rover 搭載 4 只直流強磁減速馬達,提供全時四輪傳動動力,搭配超大橡膠輪胎,完美的抓地效果讓 MeArm.Rover 即使遇到崎嶇不平的道路也如履平地般勇往前行。

MeArm.Rover 全方位的機械手臂可以讓您輕鬆排除障礙,搬開眼前的絆腳石;如果對象是個龐然大物,也可以透過超音波雷達安全地轉進。


MeArm.Rover 火星探險車是由一組機械手臂、紅外線循跡、超音波避障和四輪傳動動力系統所組成,以下將說明如何組裝MeArm.Rover 火星探險車。


一、準備材料

機械手臂 *1
(請參考 http://pizgchen.blogspot.tw/2016/09/mearmrover_21.html 預先組裝好。)

動力系統 *1
(請參考 http://pizgchen.blogspot.tw/2016/09/mearmrover_16.htmlhttp://pizgchen.blogspot.tw/2016/09/mearmrover_18.html 預先組裝好。)

除上面材料外,我們還需要:

TT減速馬達 *2
輪胎 *2
馬達固定鐵件 *2


二、開始組裝

Step1 改造層板。

準備下列材料:
機械手臂

鬆開層板上的 4 只螺絲,將搖桿與層板取下,移除層板上的搖桿。


用 M3x12 螺絲、螺帽和墊圈各 4 只,將 Arduino 擴展板鎖到層板上。



將 2 只隔離柱往車體底板內側移動並鎖固。


移除方向輪,並用 4 套馬達固定鐵件將 4 只馬達輪胎固定到車體底板。(為清楚顯示先暫時移除機械手臂)


將層板歸位,用 4 只 M3x8 螺絲鎖固。


為防止電池盒在移動中掉落,建議您可以綁上一條橡皮筋圍繞四根隔離柱。


用 M3x8 螺絲、M3x20+6 隔離柱和螺帽各 2 只,將紅外線循跡模塊固定到車體底板。


用 M3x10 螺絲和螺帽各 1 只,將超音波避障模塊固定到車體底板。


這是完成的樣貌



三、電路接線

這裡要提醒的是,左前輪和左後輪兩組馬達電源線同時接在 L9110S 馬達驅動模塊的 MOTOR 埠,右前輪和右後輪兩組馬達電源線同時接在 L9110S 馬達驅動模塊的另一個 MOTOR 埠,其餘接線請詳循跡車與避障車這兩篇文。

由於同時驅動 4 只馬達需要較大的電流,所以 L9110S 馬達驅動模塊上面的電源可以考慮由電池盒直接供電。電池盒那兩條杜邦線即是供電給馬達驅動模塊,DC5521 插頭則是供電給 Arduino nano 擴展板。



您也可以使用兩組獨立電源,一組電源供電給 Arduino nano 擴展板,另一組電源供電給馬達驅動模塊,如此整體運作會更加穩定





2016年9月27日 星期二

[Servo] 指定舵機(伺服馬達)特定角度

為了在安裝機械手臂時不損壞機構件與伺服馬達,也為了在上電後不必為了不妥適的安裝而調整程式,為了避免在最壞的情況下打掉重練(拆掉重新組裝),在將塑膠片鎖固到馬達時,建議將下列程式 Upload 到 Arduino 板子裡,然後在上電的情況下組裝機械手臂。



電路接線

伺服馬達有3條線,紅色需接 5V,棕色需接 GND,橘色為訊號線,需接 Arduino 的腳位,電路接法如下:

Arduino      伺服馬達訊號線
D2              底座馬達
D3              右馬達
D4              左馬達
D5              夾子馬達


程式碼

#include <Servo.h>
Servo s1,s2,s3,s4;

void setup()
{
  s1.attach(2);
  s2.attach(3);
  s3.attach(4);
  s4.attach(5);

  s1.write(90); // 底座馬達
  s2.write(90); // 右馬達
  s3.write(170); // 左馬達
  s4.write(90); // 夾子馬達
}

void loop() {}


相關連結

SG90 Datasheet http://www.micropik.com/PDF/SG90Servo.pdf
MG90S Datasheet http://www.electronicoscaldas.com/datasheet/MG90S_Tower-Pro.pdf

2016年9月21日 星期三

[MeArm.Rover] 機械手臂





一、準備材料

機構件

註:MeArm 套件比 MeArm.Rover 套件少了1片層板和2片夾子。


建議您可以把壓克力表面的保護紙撕除。


機電零件

Arduino nano 開發板 * 1
Arduino UNO nano 兩用擴展板 * 1


您也可以使用 UNO 及其擴展板



SG90 伺服馬達 * 4
(建議使用 MG90S * 1 + SG90 * 3)



雙軸按鍵搖桿 * 2
註:MeArm 套件無搖桿。



杜邦線 母母頭 * 10
註:MeArm 套件無此材料。


杜邦線 公母頭 * 3




螺絲 M3x8 * 18
螺絲 M3x10 * 17
螺絲 M3x12 * 20
螺帽 M3 * 30
墊片 M3 * 4
墊圈 M3 * 12
隔離柱 M3x12+6 * 2
隔離柱 M3x15+6 * 2
隔離柱 M3x20+6 * 4
隔離柱 M3x30+6 * 4


二、開始組裝

組裝前注意事項:

1.本套件所有螺絲孔都是 M3 孔,但孔有2種,一種是鬆孔,另一種是緊孔(自攻孔)。鬆孔在螺絲穿過後機構件仍可以鬆動;緊孔在螺絲穿過後機構件無法鬆動,在穿螺絲時請注意方向。

因為機器在加工時會有誤差,如果在鎖緊孔時發現太鬆,請在緊孔內塗抹樹脂再鎖螺絲,或是在鎖好螺絲後用快乾膠點黏緊孔處。


2.為了我們在組裝時方便識別起見,需要先定義一下機械手臂各部位名稱。把手臂放在胸前,夾子跟眼睛的方向一樣朝前放置,機身左側的馬達稱為左馬達,右側馬達稱為右馬達,底部的馬達稱為底座馬達,而夾子處的馬達理所當然稱為夾子馬達。

3. 請先參考下列網址確認伺服馬達是否正確運轉(其實我們在出貨前都已測試過OK)
http://pizgchen.blogspot.tw/2017/03/servo.html

4.***最重要是這件事*** 
在將機構件固定到馬達時,建議夾子馬達、右馬達和底座馬達需上電並固定在 90 度;左側馬達,需上電並固定在 170 度(註A),而後再鎖緊螺絲。

註A:

有些 SG90 伺服馬達無法轉到 180 度,如果程式持續要求它要 180 度,馬達有可能會燒毀。建議在組裝前先了解一下伺服馬達的可轉動範圍,而此處的 170 度只是一個保守的安全角度,並非絕對。

指定馬達轉動到特定角度程式詳 http://pizgchen.blogspot.tw/2016/09/mearmrover.html


Step1 組裝夾子。



準備下列材料:
SG90 伺服馬達 * 1
螺絲 M3x8 * 4
螺絲 M3x10 * 4
螺絲 M3x12 * 2
螺帽 M3 * 4
隔離柱 M3x12+6 * 2
隔離柱 M3x15+6 * 2
機構件


使用 4 只 M3x10 螺絲將機構件與伺服馬達組合起來。比較大片那4個孔是自攻孔,不需要鎖螺帽,唯一要注意的是鎖螺絲時不要鎖太緊或太鬆,以伺服馬達不會晃動為原則。組合後如下圖



這是底視圖。
注意此處左側兩只螺栓不可凸出板材,以避免凸出的螺絲妨礙稍後組裝的夾子開閤。



 M3x12 螺絲穿過機構件。此處是緊孔,所以要稍微用點力鎖到底。




 M3x12+6 隔離柱將夾子鎖到大板子上。注意此處不要鎖太緊,以免妨礙夾子開閤。



 用 M3x8 螺絲 M3x15+6 隔離柱鎖到夾子上。此處需鎖緊。



用 M3 螺帽將上夾子與上面的部件組合。此處需鎖緊。


先用 SG90 伺服馬達自帶螺絲將伺服馬達塑膠片鎖緊,再用 M3x8 螺絲將 2 片機構件鎖起來。注意此處不要鎖太緊,以免妨礙夾子開閤。


這是背面


這裡要將上面的組件固定到大部件上。
用 M3x8 螺絲將機構件鎖到夾子上。注意此處不要鎖太緊,以免妨礙夾子開閤。

這個步驟很重要。請務必先將 SG90 伺服馬達保持在 90 度(通電讓它保持在90度),然後在夾子儘量保持閉合情況下,用馬達自帶螺絲將機構件鎖到馬達


這是完成的樣貌



Step2 為夾子裝上 3 根桿件。



準備下列材料:
螺絲 M3x10 * 3
墊圈 M3 * 1
機構件


用 M3x10 螺絲將長桿子鎖上。此處不能鎖太緊,要讓它能夠靈活轉動。


用 M3x10 螺絲將粗桿子鎖上。此處不能鎖太緊,要讓它能夠靈活轉動。


用 M3x10 螺絲將細桿子和墊圈鎖上,此處不能鎖太緊,要讓它能夠靈活轉動。



Step3 鎖上三角片與其它桿件。




準備下列材料:
螺絲 M3x8 * 1
螺絲 M3x10 * 2
墊圈 M3 * 1
機構件


用 M3x10 螺絲將粗桿子、大桿子和三角片鎖上,要注意自攻孔並且此處不能鎖太緊,要讓它能夠靈活轉動


用 M3x8 螺絲將細桿子和三角片鎖上,要注意自攻孔並且此處不能鎖太緊,要讓它能夠靈活轉動


用 M3x10 螺絲將細桿子、墊圈和三角片鎖上,要注意自攻孔並且此處不能鎖太緊,要讓它能夠靈活轉動



Step4 組合右側板。




螺絲 M3x8 * 1
螺絲 M3x10 * 2
墊片 M3 * 2
機構件


用 2 只 M3x10 螺絲將馬達固定片、墊片和右側板鎖上,此處需鎖緊,讓馬達無法鬆動。



用 1 只 M3x8 螺絲將細桿子與右側板鎖上。要注意自攻孔並且此處不能鎖太緊,要讓它能夠靈活轉動。


伺服馬達自帶螺絲將伺服馬達搖臂塑膠片鎖緊



此時請務必通電讓馬達保持在90度位置,然後用伺服馬達自帶螺絲將上面組件鎖到馬達轉軸上面



Step5 組合 H 形組件。




準備下列材料:
螺絲 M3x8 * 4
螺絲 M3x12 * 2
機構件


用 1 只 M3x12 螺絲和螺帽將 H 組件側板與腰板鎖上。


用 1 只 M3x8 螺絲將 H 組件側板與山形板鎖上。要注意自攻孔並且此處不能鎖太緊,要讓它能夠靈活轉動。


用 1 只 M3x12 螺絲和螺帽將 H 組件另一側板與腰板鎖上。


用 1 只 M3x8 螺絲將長桿與 H 組件側板鎖上。要注意自攻孔並且此處不能鎖太緊,要讓它能夠靈活轉動。


伺服馬達自帶螺絲將伺服馬達搖臂塑膠片與短桿鎖緊


用 1 只 M3x8 螺絲將短桿與細桿鎖上。要注意自攻孔並且此處不能鎖太緊,要讓它能夠靈活轉動。


用 1 只 M3x8 螺絲將長桿與細桿鎖上。要注意自攻孔並且此處不能鎖太緊,要讓它能夠靈活轉動。



Step6 組裝左側馬達。




準備下列材料:
螺絲 M3x10 * 2
墊片 M3 * 2
機構件


用 2 只 M3x10 螺絲將馬達固定片、墊片和左側板鎖上,此處需鎖緊,讓馬達無法鬆動。


此時請務必通電讓馬達保持在170度位置,然後用伺服馬達自帶螺絲將上面組件鎖到馬達轉軸上面



Step7 組裝支架馬達。




準備下列材料:
螺絲 M3x8 * 4
螺絲 M3x10 * 4
塑料柱 M3x20+6 * 4
機構件


用 4 只 M3x10 螺絲將馬達固定片和支架板鎖上。此處需鎖緊,讓馬達無法鬆動。


用 4 只 M3x8 螺絲和 4 只 M3x20+6 將塑料柱和支架板鎖上。此處需鎖緊,讓馬達無法鬆動。



Step8 組裝基座。




準備下列材料:
機構件


伺服馬達自帶螺絲將伺服馬達搖臂塑膠片與基板鎖緊注意基板的正反面,有箭頭這面是正面。


這是背面


再來要把基板鎖到支架馬達上,
此時請務必通電讓馬達保持在90度位置,然後用伺服馬達自帶螺絲將基板組件鎖到馬達轉軸上


Step9 組裝基座。




準備下列材料:
螺絲 M3x12 * 4
螺帽 M3 * 4
機構件


先把前胸板和後背板插入右側板孔位,同時中間再用山形板插入前胸板和後背板孔位。


再把基板插入右側板,同時山形板也要插入基板孔位。


蓋上左側板。此時需要用左手夾住左、右側板以防鬆脫,或是用一條繩子或橡皮筋圈住也可以。


用 2 只 M3x12 螺絲和螺帽鎖緊前胸板。


用 2 只 M3x12 螺絲和螺帽鎖緊後背板。



Step10 將機械手臂上部件組合到底板。




準備下列材料:
螺帽 M3 * 4
機構件


將塑料柱穿過底板並用 4 只螺帽鎖緊。



Step11 將 Arduino 控制板固定到底板(為了清楚展示,我先暫時移除機械手臂部件)。




準備下列材料:
Arduino nano 開發板 * 1
Arduino UNO & nano 兩用擴展板 * 1
螺絲 M3x12 * 2
螺帽 M3 * 2
機構件


上圖之大墊圈是取自超音波固定片內部零件,詳下圖


在底板 "a" 字樣上擺置大墊圈(墊圈表面之保護紙有無撕除不會影響組裝)。


先組合 Arduino nano 開發板與 Arduino UNO nano 兩用擴展板,並擺放到墊圈上面,然後用 2 只 M3x12 螺絲和螺帽固定到底板。



待會兒我們會蓋上搖桿層板,但蓋上搖桿層板後不方便插線,所以最好先把伺服馬達與搖桿的電線全都插到擴展板上比較好。

夾子伺服馬達的杜邦線穿過 H 組件腰板的圓洞。另外,因為夾子伺服馬達的杜邦線長度稍嫌不足,所以此處最好用3根公母頭的杜邦線做一個接續,然後再插到擴展板。



其它接線如下:

Arduino    SG90
5V            VCC
GND        GND
D2            底板馬達橘色線
D3            右側馬達橘色線
D4            左馬達橘色線
D5            夾子馬達橘色線



Arduino     左搖桿
GND         GND
5V             VCC
A0             VRX
A1             VRY
D6             SW

Arduino     右搖桿
GND         GND
5V             VCC
A2             VRX
A3             VRY
D7             SW




Step12 組裝搖桿。




準備下列材料:
螺絲 M3x8 * 4
螺絲 M3x12 * 8
螺帽 M3 * 12
塑料柱 M3x30+6 * 4
機構件


將 8 只小墊圈置於搖桿孔位上。


用 8 只 M3x12 螺絲和螺帽將搖桿固定到層板。


用 4 只 M3x8 螺絲將 M3x30+6 塑料柱固定到層板。


用 4 只螺帽將塑料柱固定到底板。


將杜邦線插到搖桿。


至此全部組裝完成。


二、程式

//2016-09-21 by PizG Chen
#include <Servo.h>
Servo s1,s2,s3,s4;
int b1,b2;
int v0,v1,v2,v3;
int a,a1,a2,a3,a4;

void setup() {
  Serial.begin(9600);
  s1.attach(2);
  s2.attach(3);
  s3.attach(4);
  s4.attach(5);
  pinMode(6, INPUT_PULLUP);
  pinMode(7, INPUT_PULLUP);
  a=2;
  a1=90;
  a2=90;
  a3=120;
  a4=90;
}

void loop() {
  // get data
  b1 = digitalRead(6);
  v0 = analogRead(A0);
  v1 = analogRead(A1);
  b2 = digitalRead(7);
  v2 = analogRead(A2);
  v3 = analogRead(A3);

  // print data
  // turn data
  if (v3 < 340) a1 = a1 + a;
  if (v3 > 680) a1 = a1 - a;
  s1.write(a1);
  if (v2 < 340) a2 = a2 - a;
  if (v2 > 680) a2 = a2 + a;
  s2.write(a2);
  if (v1 < 340) a3 = a3 - a;
  if (v1 > 680) a3 = a3 + a;
  s3.write(a3);
  if (v0 < 340) a4 = a4 - a;
  if (v0 > 680) a4 = a4 + a;
  s4.write(a4);

  delay(100);
}

右搖桿往右手臂往右轉;往左手臂往左轉。
右搖桿往前手臂往前伸;往後手臂往後退。
左搖桿往前降低夾子高度;往後升高夾子高度。
左搖桿往右夾子閉合;往左夾子開啟。


技術資料

SG90 伺服馬達 http://www.micropik.com/PDF/SG90Servo.pdf
雙軸按鍵搖桿 http://pizgchen.blogspot.tw/2016/05/blog-post_23.html
MeArm 組裝手冊 https://ia902701.us.archive.org/19/items/mearmcontroller/MearmAssemblyInstructions.pdf


採購資訊

MeArm.Rover 機械手臂火星探險車 http://goods.ruten.com.tw/item/show?21638708796647