2018年3月5日 星期一

[meArm] 機械手臂組裝說明

meArm 機械手臂可以讓您用它來夾取物體。



一、準備材料

機構件

或



提醒您:
1. 因為機構件已改版,上面圖片僅供參考,壓克力零組件以實體為主。
2. 強烈建議您先把壓克力表面的保護紙撕除後再繼續以下之組裝步驟。



機電零件

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


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



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



杜邦線 公母頭 * 3




二、開始組裝

組裝前注意事項:

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

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


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

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

註A:

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

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


Step1 這個步驟我們要來組裝夾子。



準備下列機構件



使用 2 只 M3x8 螺絲鎖住夾子。
提醒您:此處不可鎖緊,應讓夾子能自由轉動。


這是背面


使用 4 只 M3x10 螺絲將下列機構件鎖住。
提醒您:靠進夾子那 2 支螺絲不可鎖過頭,應讓夾子能自由轉動。



這是側面


這是另一面


使用 1 只 M3x8 螺絲將下列機構件鎖住。
提醒您:此處不可鎖緊,應讓它能自由轉動。



取出下列機構件
提醒您:下方這個機構件有 2 片,此處應取用較短那片。


將伺服馬達搖臂塑膠片置入大孔內


在另一面用伺服馬達所附的自攻螺絲固定


使用下列程式將伺服馬達轉動到90度位置

#include <Servo.h>
Servo myservo;  // create servo object to control a servo

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  myservo.write(90);
}

void loop() {
}


在伺服馬達上電的情況下,將之前組件套入伺服馬達,並用伺服馬達所附之小螺絲將它鎖緊。

然後再使用 1 只 M3x8 螺絲將機構件另一端鎖住。
提醒您:此處不可鎖緊,應讓它能自由轉動。


這是完成的樣貌



Step2 為夾子裝上 3 根桿件,如下圖。


準備下列機構件


取出下列機構件


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


取出下列機構件


使用 M3x10 螺絲將較細那端鎖到夾子的側孔。
提醒您:此處不能鎖太緊,要讓它能夠靈活轉動。


取出下列機構件


使用 M3x10 螺絲將桿件鎖到夾子的側孔。
提醒您:此處不能鎖太緊,要讓它能夠靈活轉動。


這是完成的樣貌



Step3 組裝右側板,如下圖。



使用 M2 螺絲和螺帽將伺服馬達鎖緊。
提醒您:此處請務必鎖緊。


這是背面


準備下列機構件


使用 M3x8 螺絲將桿件鎖到右側板。
提醒您:此處不能鎖太緊,要讓它能夠靈活轉動。


使用 M3x10 螺絲將桿件和墊片鎖到三角片(墊片被夾在桿件和三角片之間)。
提醒您:
1. 注意三角片之正確孔位。
2. 此處不能鎖太緊,要讓它能夠靈活轉動。


這是背面



Step4 組裝左側板,如下圖。


使用 M2 螺絲和螺帽將伺服馬達鎖緊。
提醒您:此處請務必鎖緊。


這是背面


準備下列機構件


取出下列機構件


將伺服馬達搖臂塑膠片置入大孔內


在另一面用伺服馬達所附的自攻螺絲固定


使用下列程式將伺服馬達轉動到170度位置

#include <Servo.h>
Servo myservo;  // create servo object to control a servo

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  myservo.write(170);
}

void loop() {
}


在伺服馬達上電的情況下,將之前組件套入伺服馬達,並用伺服馬達所附之小螺絲將它鎖緊。


然後再使用 1 只 M3x8 螺絲將機構件另一端鎖住。
提醒您:此處不可鎖緊,應讓它能自由轉動。



Step5 組合 H 形組件,如下圖。



準備下列機構件



將伺服馬達搖臂塑膠片置入大孔內,並在背面用伺服馬達所附的自攻螺絲固定


這是背面



使用下列程式將伺服馬達轉動到90度位置

#include <Servo.h>
Servo myservo;  // create servo object to control a servo

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  myservo.write(90);
}

void loop() {
}


在伺服馬達上電的情況下,將之前組件套入伺服馬達,並用伺服馬達所附之小螺絲將它鎖緊。


使用 1 只 M3x12 螺絲和螺帽將機構件鎖住。


使用 1 只 M3x12 螺絲和螺帽將機構件鎖住。



Step6 組裝基座,如下圖。
提醒您:此步驟之伺服馬達固定方式,請依您手上的機構件型式去固定。


準備下列機構件



將伺服馬達底部穿過機構件,杜邦線由背面穿出


使用 4 只 M3x12 螺絲和螺帽將伺服馬達鎖緊。


使用 4 只尼龍柱和螺帽將機構件鎖緊。


準備下列機構件和材料


使用伺服馬達所附之 2 只大螺絲將它鎖緊。
提醒您:此處壓克力板上的小箭頭是朝上的。


這是背面


準備下列組件


使用下列程式將伺服馬達轉動到90度位置

#include <Servo.h>
Servo myservo;  // create servo object to control a servo

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  myservo.write(90);
}

void loop() {
}


在伺服馬達上電的情況下,將之前組件套入伺服馬達,並用伺服馬達所附之小螺絲將它鎖緊。
提醒您:此處壓克力板上的小箭頭是朝左的。




Step7 組合右側板與基座。



準備下列機構件



將它組合成工字形


這是它的右視圖
提醒您:山形板除外的那兩片壓克力板的孔洞不是在板子中間。


這是它的左視圖


將山形組件插入右側板


使用 1 只 M3x12 螺絲和螺帽將它鎖緊。


翻到另一側,使用 1 只 M3x12 螺絲和螺帽將它鎖緊。


將上面部件安裝到基板上




Step8 組合左側板與基座。

將左側板蓋上

使用 1 只 M3x12 螺絲和螺帽將它鎖緊。


翻到另一側,使用 1 只 M3x12 螺絲和螺帽將它鎖緊。



Step9 組合夾子與 H 形部件。

使用 1 只 M3x8 螺絲將它鎖住。
提醒您:此處不可鎖緊,應讓它能自由轉動。


使用 1 只 M3x8 螺絲將另一支桿件鎖上。
提醒您:此處不可鎖緊,應讓它能自由轉動。


使用 1 只 M3x12 螺絲依序將三角片、爪子桿件和 H 形部件鎖住。
提醒您:此處不可鎖緊,應讓它能自由轉動。


翻轉到背面,使用 1 只 M3x8 螺絲將另一支桿件鎖上。
提醒您:此處不可鎖緊,應讓它能自由轉動。



Step9 將整組夾子固定到底板。

使用 4 只 M3x8 螺絲將尼龍柱固定到底板。


這是背面



Step10 組裝控制板。

準備 Arduino Nano 開發板和擴展板


將 Nano 插入擴展板


使用 4 只 M3x12 螺絲和螺帽將 Arduino 控制板固定到底板。


將夾子的伺服馬達杜邦線穿過 H 形部件的圓孔,
並將 3P 公母頭杜邦線的公頭與夾子的伺服馬達杜邦線母頭接在一起,作為延長使用。



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




Step11 電路接線。

伺服馬達與 Nano 擴展板的接線如下:

擴展板     伺服馬達
5V            VCC
GND        GND
D2            底板馬達橘色線
D3            右側馬達橘色線
D4            左側馬達橘色線
D5            夾子馬達橘色線




Step12 上傳程式。


//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=170;
  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);
}



========================================================================

使用搖桿控制機械手臂
提醒您:由於機構件有小部分改版,層板外觀可能稍微不同,此步驟請依您手上的機構件型式去固定。

Step1 組裝搖桿。


準備下列層板機構件

  

以下為不同版次的層板,可先取下所有墊圈備用。




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





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




使用 4 只 螺帽將 M3x30+6 尼龍柱固定到層板。


使用 4 只 M3x8 螺絲將尼龍柱固定到底板。



Step2 電路接線。

搖桿與 Nano 擴展板的接線如下:

擴展板      左搖桿
GND         GND
5V             VCC
A0             VRX
A1             VRY
D6             SW

擴展板      右搖桿
GND         GND
5V             VCC
A2             VRX
A3             VRY
D7             SW




Step3 上傳程式。

//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=170;
  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


採購資訊

雙軸按鍵搖桿套件 https://goods.ruten.com.tw/item/show?21629149689670
MeArm.Rover 機械手臂火星探險車 http://goods.ruten.com.tw/item/show?21638708796647

2018年1月21日 星期日

[玩轉光立方] LED Cube 4x4x4 for Arduino Nano 燈殼組裝教學

本文要介紹如何組裝 LED Cube 4x4x4 for Arduino Nano 燈殼。

這燈殼是由 6片 3mm 厚的透明壓克力所組成,其簡潔俐落的外觀設計只要使用少許螺絲和工具,就可以在很短的時間之內組合完成。



材料

1. LED Cube 4x4x4 for Arduino Nano 套件
2. 壓克力燈殼 + 螺絲包


工具

1. M3 十字螺絲起子
2. 小鑷子




組裝步驟

Step1 取出壓克力燈殼套件,撕除表面護膜。

Step2 取出已焊接好的 Led Cube,使用 4 支 M3x8 螺絲和 4 支尼龍柱將電路板鎖緊,如圖


這是背面


Step3 取出燈殼底板,使用 4 只蓋帽將底板固定到尼龍柱,如圖
提醒您:
1. 此時先不要鎖緊蓋帽,以便利下一步驟安裝燈殼背板。
2. 燈殼底板上面的 16 個 3mm 直徑小孔是一個附加功能的設計,它可作為焊接 LED 時固定用。




Step4 將 LED Cube 轉正平放


取出燈殼前板(有 Robot Wolf Group 字樣)


取出燈殼背板(旁邊有一個方形)小洞


再取出燈殼側板(另外兩片同樣大小的)

先小心地將背板插入底板
提醒您:此時可適當地挪動電路板讓 USB 頭套入燈殼的洞。


再分別插入兩邊側板、前板

最後放入頂板,暫時將 4 片邊板圈住。


Step5 取出 4 只 M3x12 螺絲和螺帽,使用小鑷子謹慎地夾住螺帽放入側板的小洞,再用螺絲鎖緊。
提醒您:如果您的手指夠巧,可以用手指拿住螺帽塞入洞內。但切記避免將螺帽掉入燈殼內。



Step6 反轉 LED Cube 並平放,取出 4 只 M3x12 螺絲和螺帽,使用小鑷子謹慎地夾住螺帽放入側板的小洞,再用螺絲鎖緊。


Step7 最後鎖緊 4 只蓋帽,至此大功告成。



後記

LED 矩陣下方的腳不要留太長,留太長有可能會讓最上層的 LED 抵住燈殼頂板,個人覺得如此不甚美觀,而且 LED 發亮的效果也比較不明顯。


相關連結

LED Cube 4x4x4 for Arduino Nano 組裝教學 http://pizgchen.blogspot.tw/2017/03/led-cube-4x4x4-for-arduino-nano.html


採購資訊

LED Cube 4x4x4 for Arduino Nano 燈殼 http://goods.ruten.com.tw/item/show?21740199241842

LED Cube 4x4x4 for Arduino Nano 套件 http://goods.ruten.com.tw/item/show?21740199231964

LED Cube 4x4x4 for Arduino Nano 套件+燈殼 http://goods.ruten.com.tw/item/show?21740199235306

2018年1月8日 星期一

[Gripper] 機器夾爪

獨立於 meArm 機器手臂之外的夾爪,可以讓您隨心所欲固定在小車底板或其它地方。小車有了夾爪之後,就可以夾取物體到另一個地方,讓您的小車除了循跡或避障功能之外,又增添了額外的功能。


我們先來觀賞影片



自備材料:
SG90(或MG90S)伺服馬達 *1。

自備工具:
M2~M3十字螺絲起子 *1。

組裝前注意事項:
本套件用來穿過M3螺絲的孔,有鬆孔和緊孔之分。在穿鎖螺絲時請務必注意螺絲方向。


組裝步驟:

Step1 準備爪子套件(壓克力、螺絲包)。



Step2 將壓克力表面護膜撕除。



Step3  準備下列壓克力板子、M2螺絲*2、M2螺帽*2和您自備的伺服馬達。
提醒您:雖然 SG90 伺服馬達也可以,但本人強烈建議您使用 MG90S 伺服馬達。



Step4 將伺服馬達從壓克力板子下方穿過,並用M2螺絲鎖緊固定。


這是背後方向



Step5 準備下列壓克力板子、M3x12L螺絲*2、M3x12L雙通尼龍柱*2。



Step6 將螺絲依下圖所示穿過壓克力板子,並與背後的尼龍柱固定。
提醒您:為了使爪子能滑順轉動,此處不可鎖緊。


這是背後方向



Step7 準備M3x6L螺絲*2、M3x15L雙通尼龍柱*2。



Step8 將螺絲依下圖所示穿過壓克力板子,並與背後的尼龍柱固定。
提醒您:此處請鎖緊,以避免爪子在夾取物體時鬆動。



這是背後方向



Step9 準備下列壓克力板子、M3x6L螺絲*4。



Step10 將螺絲依下圖所示穿過壓克力板子,並與背後的尼龍柱固定。
提醒您:此處請鎖緊,以避免爪子在夾取物體時鬆動。



Step11 準備下列壓克力板子和M3x8L螺絲*1。



Step12 將螺絲依下圖所示穿過壓克力板子,並與下方的壓克力固定。
提醒您:為了使爪子能滑順轉動,此處不可鎖緊。




Step13 請將伺服馬達連接 Arduino 腳位 9,上傳下列程式到 Arduino 開發板,使伺服馬達轉軸保持在 90 度位置。

#include <Servo.h>
Servo myservo;

void setup() {
  myservo.attach(9);
  myservo.write(90);
}

void loop() {
}


Step14 準備下列壓克力板子、伺服馬達搖臂塑膠片和搖臂自攻螺絲。



Step15 將螺絲依下圖所示穿過壓克力板子,並與下方的搖臂塑膠片固定。


這是背後方向



Step16 準備 Step15 做好的部件、M3x8L螺絲和伺服馬達自帶的小螺絲。



Step17 將 Step15 部件依下圖所示套住伺服馬達,用伺服馬達自帶M2小螺絲鎖緊固定。
再用M3x8L螺絲從短板子下方往上穿過,並與 Step15 部件鎖住。提醒您:為了使爪子能滑順轉動,此處不可鎖緊。



這是背後方向



Step18 準備M3x12L螺絲*2和M3螺帽*2,將爪子固定到小車上,至此組裝完成。
提醒您:為使爪子能轉動地更加滑順,建議您可在齒輪處點上少許潤滑油。



Step19 請將下列程式上傳到 Arduino,您即可看到爪子持續開閤。
提醒您:為配合組裝時角度的誤差,您可以適當地調整變數 minA和 maxA 的值。

#include <Servo.h>
Servo myservo;

int pos;
int minA = 70;
int maxA = 100;

void setup() {
  myservo.attach(9);
}

void loop() {
  for (pos = minA; pos <= maxA; pos += 1) {
    myservo.write(pos);
    delay(15);
  }
  for (pos = maxA; pos >= minA; pos -= 1) {
    myservo.write(pos);
    delay(15);
  }
}


技術資料

1. 伺服馬達角度約90度時,爪子閉合;伺服馬達角度約110度時,爪子打開約60度。因此,伺服馬達每轉動1度,爪子開閤約3度。

2. 您應盡可能不要,也沒有必要讓爪子張開太大。伺服馬達轉動角度之最小與最大範圍之間應避免超過20度。

3. 使用爪子夾住物體時,伺服馬達處於高電流狀態,應避免讓這種狀態(時間)持續過久,否則產生的高熱有可能會讓馬達燒毀。



採購資訊

機器爪夾子套件 http://goods.ruten.com.tw/item/show?21802557390248
M2&M3十字螺絲起子 http://goods.ruten.com.tw/item/show?21643154729048
SG90 伺服馬達 http://goods.ruten.com.tw/item/show?21629160146895