自我介紹
大家好 我是Ray,為何寫這Blog 目的就是為了紀錄自己做出來的成品,也希望把自己的創意紀錄下來 或許也可以拿來當作別人的教學文章。
MeArm介紹
這是一台叫做MeArm的袖珍型機械手臂,是一位叫做本傑明·格雷(Benjamin Gray)的人在2013年二月在kickstarter發表的,他在不到一年便風雲全球,在全球都可看見他的身影,用來玩, 寫程式, 上課, 研究都有,用途很廣泛。
因為它的尺寸很小,所以自由度很高,也可以做很多的變化,像改造成車子、變成遙控手臂、改造夾爪等,而且他操作簡單,只有四顆伺服馬達,零件也只有一張A4紙大而已,所以大
多數人都做得出來,又好控制,也增加了許多娛樂性。
原先作者是設計給arduino uno的,但許多人也有在Raspberry Pi, Espruino, s4a等平台使用,另外,作者還有設計一個叫MeArm.joystick的arduino搖桿模組來給大家使用。
因為它的尺寸很小,所以自由度很高,也可以做很多的變化,像改造成車子、變成遙控手臂、改造夾爪等,而且他操作簡單,只有四顆伺服馬達,零件也只有一張A4紙大而已,所以大
多數人都做得出來,又好控制,也增加了許多娛樂性。
原先作者是設計給arduino uno的,但許多人也有在Raspberry Pi, Espruino, s4a等平台使用,另外,作者還有設計一個叫MeArm.joystick的arduino搖桿模組來給大家使用。
電路圖
把旋轉的馬達接到7, 前後的接到9, 夾爪接到8, 上下的接到10。
程式介紹
我寫的這個程式是一個可以用來展示的程式,他會先跟你要東西,然後擺到旁邊。
程式碼:
#include <Servo.h>//匯入servo這個library
Servo spin, claw, x, y;// 建立 spin, claw, x, y這些 Servo 物件
int claw_open = 0;//設定夾爪開啟的角度
int claw_close = 30;//設定夾爪關閉的角度
void setup() {
spin.attach(7);// 指定伺服馬達的腳位在 Arduino Uno 的 哪個pin
claw.attach(8);//
x.attach(9);//
y.attach(10);//
}
void loop() {
for (int i = 0; i<90; i++) { //使伺服馬達spin一度一度由 0 度旋轉到 90 度
spin.write(i);
delay(30);
}
for(int i = 60; i<150; i++) { //使伺服馬達y一度一度由6 0 度旋轉到 150 度
y.write(i);
delay(30);
}
for (int i = 0; i<3; i++) { //使爪子開關三次
claw.write(claw_close);
delay(200);
claw.write(claw_open);
delay(200);
}
delay(2000);
claw.write(claw_close); //關爪子
delay(100);
for(int i = 90; i>1; i--) { //使伺服馬達spin一度一度由 90 度旋轉到 0 度
spin.write(i);
delay(30);
}
for(int i = 150; i>60; i--) { //使伺服馬達spin一度一度由 150 度旋轉到 60 度
y.write(i);
delay(30);
}
claw.write(claw_open); //開爪子
delay(500);
}
程式碼:
#include <Servo.h>//匯入servo這個library
Servo spin, claw, x, y;// 建立 spin, claw, x, y這些 Servo 物件
int claw_open = 0;//設定夾爪開啟的角度
int claw_close = 30;//設定夾爪關閉的角度
void setup() {
spin.attach(7);// 指定伺服馬達的腳位在 Arduino Uno 的 哪個pin
claw.attach(8);//
x.attach(9);//
y.attach(10);//
}
void loop() {
for (int i = 0; i<90; i++) { //使伺服馬達spin一度一度由 0 度旋轉到 90 度
spin.write(i);
delay(30);
}
for(int i = 60; i<150; i++) { //使伺服馬達y一度一度由6 0 度旋轉到 150 度
y.write(i);
delay(30);
}
for (int i = 0; i<3; i++) { //使爪子開關三次
claw.write(claw_close);
delay(200);
claw.write(claw_open);
delay(200);
}
delay(2000);
claw.write(claw_close); //關爪子
delay(100);
for(int i = 90; i>1; i--) { //使伺服馬達spin一度一度由 90 度旋轉到 0 度
spin.write(i);
delay(30);
}
for(int i = 150; i>60; i--) { //使伺服馬達spin一度一度由 150 度旋轉到 60 度
y.write(i);
delay(30);
}
claw.write(claw_open); //開爪子
delay(500);
}