(實習)機械手臂-利用最原始的方式回圈做特定動作

 (實習)機械手臂-利用最原始的方式回圈做特定動作

前言:

每個男人都有心中的玩具,尤其拿到手後有藏不住的喜侻,

這是生活在有壓力的社會上的小確幸,一路這樣玩,物聯網

到機械裝置,真的有很多是我一頭裁入無法自拔的新鮮事物

。今天把放了一陣子的機械臂重新拿來把玩。之前因為沒有

利用舵控板,電壓和動作顯的很不穩,以為是舵機壞了,結

果是電壓不穩的因素造成動作失準,後來加了舵控板就都

ok了。

材料:

材料我是在淘寶買的"微雪官方"出的鋁合金機械臂,說真的
買壓克利的覺得比較好一點,因為螺絲部份動作沒多少就鬆了
扭緊一點又會讓結構卡卡的。

材料可以參考微雪官網—https://www.waveshare.net/wiki/Robot_Arm_for_Pi
原本我是想用樹莓派來玩,但後來覺得Arduino比較方便。

實現動作目標:

我設定機械臂的控制項目
  1. 迴圈控制
  2. 把手模組控制
  3. 無線藍芽控制
這次先以第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(00380);
    pwm.setPWM(10350);
    delay(10);

}
  
void loop(){
    // 轉左
    for (int i=380; i<500; i+=10){
        pwm.setPWM(00, i);
        delay(50);
    }
// 下
    for (int i=400; i>50; i-=10){
        pwm.setPWM(10, i);
        delay(50);
    }
// 前
    for (int i=400; i<550; i+=10){
        pwm.setPWM(20, i);
        delay(50);
    }
    
// 夾物
    pwm.setPWM(30600);
    delay(50);
    pwm.setPWM(30400);
// 上
    for (int i=50; i<350; i+=10){
        pwm.setPWM(10, i);
        delay(50);
    }
// 後
    for (int i=550; i>400; i-=10){
        pwm.setPWM(20, i);
        delay(50);
    }
// 轉右
    for (int i=500; i>300; i-=10){
        pwm.setPWM(00, i);
        delay(50);
    }
// 前
    for (int i=400; i<550; i+=10){
        pwm.setPWM(20, i);
        delay(50);
    }
// 放夾
    pwm.setPWM(30600);
    delay(50);
// 上
    for (int i=50; i<350; i+=10){
        pwm.setPWM(10, i);
        delay(50);
    }
// 後
    for (int i=550; i>400; i-=10){
        pwm.setPWM(20, i);
        delay(50);
    }
   
}








留言

這個網誌中的熱門文章

平衡小車(balance-Robot)-基本平衡-Arduino