6自由度のマスタースレーブロボットハンド
今年のGWはコロナの影響でずっと部屋に引きこもっていましたが、その時に作ったロボットハンドをマスタースレーブ仕様にしてみました。
全体像
ロボットハンド自体は6自由度で根本の2個のモータがMG995、他がMG90です。また、動作の制御はArduino Nanoで行っています。
昼寝しながら3日かけて作った6DoFのロボットアーム #Arduino pic.twitter.com/tynHL0Ytq5
— Ken@エンジニア投資家 (@Ken_okinawan) May 5, 2020
マスタースレーブというと大袈裟な感じですが、単純に各関節にポテンショメータを仕込んだ小さいロボットハンドを作ってそれを角度に換算してその通りに動くようにします。
基板取付用ボリューム 10kΩB: パーツ一般 秋月電子通商-電子部品・ネット通販
動作プログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <Servo.h> const int MOTOR_NUM=6; Servo myServo[MOTOR_NUM]; int pin[6] = {A0, A1, A2, A3, A4, A5}; int val[6] = {0, 0, 0, 0, 0, 0}; int angle[6] = {90, 90, 90, 90, 90, 90}; void setup() { for (int i=0; i<MOTOR_NUM; i++){ myServo[i].attach(i); myServo[i].write(90); } } void loop() { for (int i=0; i<MOTOR_NUM; i++){ val[i] = analogRead(pin[i]); angle[i] =(int)((val[i] /1024.)*180.); myServo[i].write(angle[i]); } delay(100); } |
動作
実際の動作はこんな感じです。6自由度もあると他の軸を抑えながら動かさないと、変な動きになるので正直やりづらいです。
今後の予定
今回のなんちゃってマスタースレーブはロボットハンドを作ったおまけみたいなもので、本当の目的は人型ロボットに使うアームの試作です。ただ、デザインが四角形の組み合わせで適当なので、もう少し洗練した形にしたいです。
-
前の記事
Tkinter (Python)でサーボモータの操作パネルを作る 2020.05.05
-
次の記事
国土交通省のAPIから不動産情報を取得する 2020.05.17