(實習)機械手臂-利用最原始的方式回圈做特定動作
(實習)機械手臂-利用最原始的方式回圈做特定動作
前言:
每個男人都有心中的玩具,尤其拿到手後有藏不住的喜侻,
這是生活在有壓力的社會上的小確幸,一路這樣玩,物聯網
到機械裝置,真的有很多是我一頭裁入無法自拔的新鮮事物
。今天把放了一陣子的機械臂重新拿來把玩。之前因為沒有
利用舵控板,電壓和動作顯的很不穩,以為是舵機壞了,結
果是電壓不穩的因素造成動作失準,後來加了舵控板就都
ok了。
材料:
材料我是在淘寶買的"微雪官方"出的鋁合金機械臂,說真的
買壓克利的覺得比較好一點,因為螺絲部份動作沒多少就鬆了
扭緊一點又會讓結構卡卡的。
原本我是想用樹莓派來玩,但後來覺得Arduino比較方便。
實現動作目標:
我設定機械臂的控制項目
- 迴圈控制
- 把手模組控制
- 無線藍芽控制
這次先以第1個迴圈來最控制
須要一個16路舵機控制板-PCA9685
並下載Adafruit_PWMServoDriver庫
接線方法:
程式碼:
#include <Adafruit_PWMServoDriver.h>
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
// 1 100~450 上下
// 2 300~600 前後
// 3 400~600 夾子
void setup() {
Serial.begin(9600);
Serial.println("8 channel Servo test!");
pwm.begin();
pwm.setOscillatorFrequency(27000000);
pwm.setPWMFreq(60);
pwm.setPWM(0, 0, 380);
pwm.setPWM(1, 0, 350);
delay(10);
}
void loop(){
// 轉左
for (int i=380; i<500; i+=10){
pwm.setPWM(0, 0, i);
delay(50);
}
// 下
for (int i=400; i>50; i-=10){
pwm.setPWM(1, 0, i);
delay(50);
}
// 前
for (int i=400; i<550; i+=10){
pwm.setPWM(2, 0, i);
delay(50);
}
// 夾物
pwm.setPWM(3, 0, 600);
delay(50);
pwm.setPWM(3, 0, 400);
// 上
for (int i=50; i<350; i+=10){
pwm.setPWM(1, 0, i);
delay(50);
}
// 後
for (int i=550; i>400; i-=10){
pwm.setPWM(2, 0, i);
delay(50);
}
// 轉右
for (int i=500; i>300; i-=10){
pwm.setPWM(0, 0, i);
delay(50);
}
// 前
for (int i=400; i<550; i+=10){
pwm.setPWM(2, 0, i);
delay(50);
}
// 放夾
pwm.setPWM(3, 0, 600);
delay(50);
// 上
for (int i=50; i<350; i+=10){
pwm.setPWM(1, 0, i);
delay(50);
}
// 後
for (int i=550; i>400; i-=10){
pwm.setPWM(2, 0, i);
delay(50);
}
}
留言
張貼留言