ロボットアーム [Arduino]
ロボットアームを作ってみました。
前半はロボットアームの主機能であるグリッパー(つかむ)をテストしています。後半はロボットの各関節(サーボ)の動作テストとなります。
スマホで動画を撮影しながら各関節の操作用ボリューム(半固定抵抗器)を手動で操作しているので、少し動作が遅いです。その部分を自動でやれば各関節はスムーズに動作します。
目次
1. 使用部品・材料
2. 配線図
3. 写真
4. 作り方
5. スケッチ(プログラム)
6. ロボットアームのハンド
7. サーボのブラケット
最後に
1. 使用部品・材料
総額で約14,740円です。(Arduino本体の値段を除く)
部品/材料 | 値段 | 備考 |
---|---|---|
[電子部品] | ||
サンハヤト SAD-101 ニューブレッドボード (2個) | ¥1000 | レベル変換、サーボ端子、ACアダプタを配置。 Amazon.com |
ブレッドボード BB-102 | ¥300 | 各関節を操作する半固定ボリュームやロボットハンドの操作用のタクトスイッチを配置。 秋月電子の通販コード(P-09257) |
ロジックレベル双方向変換モジュール | ¥368 | 1.8Vから10Vまでに対応した電圧レベル変換。 スイッチサイエンス(SFE-BOB-12009) |
マイクロサーボ SG92R | ¥500 | ロボットアームのハンド部分に使用。 秋月電子の通販コード(M-08914) |
MG996R メタルギア・デジタルサーボ (2個セット) (1個) | ¥1322 | ロボットアームで使用するのは1個で土台の回転に使用。これは0から180℃回転なので、360回転のものを使用しても良い。 Amazon.com |
Longruner サーボ ロボット用 デジタルサーボ 二軸 180度動作 15kg/17kg 0.16sec/60°トルク 1mm硬質アルミ板(大/小U) スマートロボットサーボ 高性能 LY10-1 (3個) | ¥6600 | 各関節用 Amazon.com |
両端ロングピンヘッダ 1×40 | ¥50 | ニッパーで3つにしてサーボの端子と接続。(ジャンパーワイヤーでも代用可能) 秋月電子の通販コード(C-09056) |
15 cm 150mmオスtoメスJR プラグ RCラジコン サーボ延長リード線ケーブル (20本入り) | ¥1199 | サーボ端子の延長用 Amazon.com |
電源用電解コンデンサー100μF35V105℃(ルビコンZLH) (2個) | ¥30 | 電圧の安定用にコンデンサを要所要所に設置しています。サーボの動作がぎこちない場合は適宜コンデンサを追加して下さい。 秋月電子の通販コード(P-02724) |
電解コンデンサー 470μF16V105℃(ルビコンWXA) (3個) | ¥30 | 電圧の安定用にコンデンサを要所要所に設置しています。サーボの動作がぎこちない場合は適宜コンデンサを追加して下さい。 秋月電子の通販コード(P-08426) |
ブレッドボード用DCジャックDIP化キット | ¥100 | サーボの電源用。 秋月電子の通販コード(K-05148) |
スイッチングACアダプター6V2A 100~240V NP12-US0620 | ¥840 | サーボの電源用。 秋月電子の通販コード(M-00024) |
半固定ボリューム 10kΩ [103](4個) | ¥200 | サーボの各関節操作用。 秋月電子の通販コード(P-08012) |
タクトスイッチ (2個) | ¥20 | ロボットハンドの開閉用。 秋月電子の通販コード(P-03647) |
カーボン抵抗器 | 数円 | 10kΩ(2個)を使用。 |
[材料] | ||
タミヤ 楽しい工作シリーズ No.143 ユニバーサルアームセット (70143) | ¥798 | L字部品をロボットアームのハンドに使用。 Amazon.com |
T型 平面隅金 50mm | ¥100 | 家具などの補強用のT型の隅金(すみがね)。2つのラジオペンチで直角に折り曲げてロボットアームのハンド部分で使用。 100円ショップ(ダイソー) |
結束バンド 170本入り白色 10cm(4inch) | ¥100 | サーボ同士の連結、ロボットアームとMDF材の固定に使用する。 100円ショップ(ダイソー) |
3M スコッチ はがせる両面テープ 強力 薄手 12mm×15m SRE-12 | ¥483 | 材木、ダンボールの結合用。ロボットアームのハンドの結合。 ※強力ではがせる両面テープです。 Amazon.com |
ダンボール | 無料 | 薄くて丈夫なもの。 |
[材木] | ||
MDF材6枚 100x100x6mm | ¥100 | 3枚使用。 100円ショップ(ダイソー) |
工作材料 P-5 立方体8個 (2個) | ¥200 | 12個使用する。立方体のサイズが異なる場合があるので多めに買うと良い。 100円ショップ(ダイソー) |
工作材料 P-8 直方体12個 | ¥100 | 4個使用する。 100円ショップ(ダイソー) |
[土台] | ||
ミニバイス | ¥100 | ガラステーブルの上で使用すると完全にロボットアームを固定できます。 100円ショップ(ダイソー) |
[工具] | ||
一般金属用 金切のこ | ¥100 | MDF材に土台のサーボ(MG996R)が入るぐらいの穴を開けるために使用する。念の為に予備の「刃」を買っておくと良いです。 100円ショップ(ダイソー) |
精密ハンドドリル 3.0mm | ¥100 | MDF材に穴を開ける為に使用する。 100円ショップ(ダイソー) |
2. 配線図
電圧の安定用にコンデンサを要所要所に設置しています。サーボの動作が「ぎこちない」場合は適宜コンデンサを追加して下さい。
3. 写真
4. 作り方
ロボットアームの各関節は結束バンドで結合します。(ネジ、ナットでも結合可能)、土台は次のようにします。
ダンボール、木材などの結合には「強力両面テープ」を使用します。
番号 | 内容 |
---|---|
1 | MDF材の中央にハンドドリルで穴を開ける。その穴は結束バンドが2本入るようなサイズ。中央の穴から左右2cmぐらいに結束バンドが1本入るような穴を開ける。合計穴は3つ。その3つを使用してロボットアームを固定する。 |
2 | MDF材の4隅に設置。 |
3 | - |
4 | MDF材と同じサイズのダンボール。 |
5 | MDF材の中央に長方形の穴を開ける。サイズはサーボ(MG996R)が入るぐらい。 |
6 | ダンボールはサーボホーンのサイズ。四角形でも良い。 |
7 | - |
8 | ミニバイスでサーボを固定する。高さは手動で調整可能です。 |
9 | ミニバイスでサーボを固定する。高さは手動で調整可能です。 |
10 | 土台の足となる。机とこの足の間にも強力両面テープを忘れずに。固定しないと土台ごと動いてしまいます。 |
ロボットアームを(7)の円形サーボホーンだけで支えるには強度面が心配なので、(5)のMDF材で補強する形になっています。(5)と(6)の高さを同じにしてから、(6)のダンボールを僅かに高くすると良いです。
(4)と(5)の間に強力両面テープは使用しません。(4)の下に結合するのは(6)のダンボールのみです。
5. スケッチ(プログラム)
myServo1は一番下、myServo2はその上という順番になっています。
#include <Servo.h> Servo myServo1; Servo myServo2; Servo myServo3; Servo myServo4; Servo myServo5; void setup() { Serial.begin(9600); pinMode(2,INPUT); pinMode(3,INPUT); myServo1.attach(13); myServo2.attach(12,500,2500); myServo3.attach(11,500,2500); myServo4.attach(10,500,2500); myServo5.attach(9); // サーボの位置を初期化する myServo1.write(0); myServo2.write(90); myServo3.write(90); myServo4.write(90); myServo5.write(90); delay(2000); } void loop() { int angle; angle = map(analogRead(A1), 0, 1023, 0, 180); myServo1.write(angle); angle = map(analogRead(A2), 0, 1023, 0, 180); myServo2.write(angle); angle = map(analogRead(A3), 0, 1023, 0, 180); myServo3.write(angle); angle = map(analogRead(A4), 0, 1023, 0, 180); myServo4.write(angle); // ハンドでつかむ if (digitalRead(2) == HIGH) { myServo5.write(90); } // ハンドを広げる if (digitalRead(3) == HIGH) { myServo5.write(0); } delay(10); }
6. ロボットアームのハンド
ロボットアームのハンドは「自作」または「購入」する必要があります。自作では3Dプリンタや歯車などを使用する方法があります。購入する場合は私の調査結果をご参考にして下さい。
名称 | 価格 | 備考 |
---|---|---|
1 dofアルミロボットハンドユニットでLDX-218デジタルステアリングギアサーボ用diy教育 正しい日本語:ロボットハンド付きサーボ LDX-218 | $17.50 | アリババ(Aliexpress.com)。日本語がおかしくて中国発送なので配送に13-20日必要。あちらのお国なので動作する保証はなく、サーボ端子が何故か手の中にある。ただ、アマゾンで売ってればお試しに購入したと思う。残念。 |
サーボモータ用ハンド「ServoHand SH1」 | ¥1,944 | 浅草ギ研。新規会員登録で500円引き。 |
Longruner サーボ ロボット用 デジタルサーボ 二軸 180度動作 15kg/17kg 0.16sec/60°トルク 手部ブラケット+大Uブラケット(1mm硬質アルミ板) スマートロボットサーボ 高性能 LQY10-2 | ¥2,350 | Amazon.com。ハンド部分が大きすぎるので今回は見送りました。 |
Standard Gripper Kit | 複数 | マルツ。SparkFun製のロボットハンド(グリッパー)で5種類あります。マルツに在庫がないので配送までに時間がかかると思う。 |
SG90用ロボットハンドキット | ¥1450 | Amazon.com。 |
Arduino 対応 アルミ合金 6自由度ロボットアーム 爪&スイベル | ¥1570 | Amazon.com。中国から配送なので時間がかかる。 |
マイクロ グリッパー キット(サーボなし) | ¥914 | robotshop.com。HitecのHS-55/HS-5055MGのサーボ用。 |
7. サーボのブラケット
サーボモーターをロボットの関節にする為には「ブラケット」という「コの字型」のアルミ板が必要です。自作する場合はアルミ板を直角に曲げたり、穴を開けたり、切断したりと板金加工が必要です。
今回はその作業を省くために「LY10-1」というブラケット付きのサーボを使用しています。ブラケットは100円ショップにある厚み1mmから2mmのプラスチック板(PPシート)を同じく100円のハサミ、カッター、発砲スチロールカッターなどを使用して作成する事も可能です。ただ、この手法だと正確に曲げたりするのが難しいので、自作する方はアルミ板を推奨します。
学生の方は学校に板金用工具があると思います。一般の方は「ポケットベンダー」「ハンドニブラー」などを購入すると良いです。
参考動画
Android & Arduinoでロボットアームを作ってみた
Arm Robot with Arduino アームロボットの作成
最後に
ロボットアームで超音波などの距離センサーや画像処理などを行えば自動で物をつかむ事も可能です。この辺りはハードウェアじゃなくて、ソフトウェアの部門なので今回は見送りました。
時間を掛ければ、江戸時代の文字書き「からくり人形」のようにロボットアームで文字を書けるようにできるかも知れません。
掲示板
ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。