二足歩行ロボットへの挑戦 入門編 [Arduino]
Arduinoでサーボモーターを制御して自動で歩く事ができる二足歩行ロボットです。骨格にはダンボールを使用しているので手軽に試作機を作成できます。
試作機なのでロボットにArduinoは載せていません。また、少し斜めに前進しています。本稼動する場合は木材や3Dプリンタなどを使用して「精密」に組み立てて下さい。
使用部品・材料
総額で約3,163円です。(Arduino本体の値段を除く)
| 部品/材料 | 値段 | 備考 |
|---|---|---|
| サンハヤト SAD-101 ニューブレッドボード | ¥500 | Amazon.com |
| マイクロサーボ SG92R (4個) | ¥2000 | トルク:2.5kgf/cm 秋月電子の通販コード(M-08914) |
| 両端ロングピンヘッダ 1×40 | ¥50 | ニッパーで3つにしてサーボの端子と接続。(ジャンパーワイヤーでも代用可能) 秋月電子の通販コード(C-09056) |
| 結束バンド 170本入り白色 10cm(4inch) | ¥100 | 小さくて細いもの。100円ショップ(ダイソー) |
| 3M スコッチ はがせる両面テープ 強力 薄手 12mm×15m SRE-12 | ¥483 | 強力ではがせる両面テープです。 Amazon.com |
| 電解コンデンサー 470μF16V105℃(ルビコンWXA) (3個) | ¥30 | 電圧安定用。他のでも良い。 秋月電子の通販コード(P-08426) |
| ダンボール | 無料 | 薄くて丈夫なダンボール。 私はAmazon.comで送られてくるダンボールの中にある中敷を使用しました。100円ショップの収納ボックス(紙)などでもOK。 |
サーボはSG90でも問題なく動作すると思います。
写真
ダンボールのパーツサイズ
ダンボールの各パーツのサイズです。(目安)
| 部位 | サイズ(横x縦) |
|---|---|
| 胴(1枚) | 9.5cm x 6.5cm |
| 脚(2枚) | 1.2cm x 4.0cm |
| 足(2枚) | 3.8cm x 4.0cm |
※「緻密な計算」で算出したサイズではありません。
サーボの初期設定
組み立てる前に各サーボの初期値をArduinoで設定しておきます。
| 部位 | 角度 |
|---|---|
| 左上(5pin) | 90度 |
| 左下(6pin) | 180度 |
| 右上(9pin) | 0度 |
| 右下(10pin) | 0度 |
次のように4つのサーボの初期角度を1つ1つ設定していきます。
#include <Servo.h>
Servo myServo;
void setup() {
// 左上(5pin)のサーボの角度を90度にする
myServo.attach(5);
myServo.write(90);
}
この初期設定が終わってからサーボホーン(羽)を取り付けてください。
配線図
スケッチ(プログラム)
いきなり、二足歩行は動作しないと思います。
最初はコード内の歩行速度(WALKING_SPEED)を1秒(1000)に変更します。それで、右足のコードを全てコメントにして左足だけを実行するようにします。左足が正常に動作しているようでしたら、今度は右足だけで実行します。最後に、歩行速度を0.1秒(100)に戻せば完了です。
#include <Servo.h>
Servo myServoL_UP;
Servo myServoL_DOWN;
Servo myServoR_UP;
Servo myServoR_DOWN;
// 歩行速度
int WALKING_SPEED = 100;
void setup() {
// 左足
myServoL_UP.attach(5);
myServoL_DOWN.attach(6);
// 右足
myServoR_UP.attach(9);
myServoR_DOWN.attach(10);
// サーボを初期化する
myServoL_UP.write(90);
myServoL_DOWN.write(180);
myServoR_UP.write(0);
myServoR_DOWN.write(0);
delay(2000);
}
void loop() {
// 右足
myServoR_DOWN.write(20);
delay(100);
myServoR_UP.write(20);
delay(WALKING_SPEED);
myServoR_DOWN.write(0);
delay(100);
myServoR_UP.write(0);
delay(WALKING_SPEED);
// 左足
myServoL_DOWN.write(160);
delay(100);
myServoL_UP.write(60);
delay(WALKING_SPEED);
myServoL_DOWN.write(180);
delay(100);
myServoL_UP.write(90);
delay(WALKING_SPEED);
}
このコード内のサーボの角度は各自の環境に合わせて適宜変更してください。ロボットを組み立てる際に「ズレ」が発生する為です。
サーボモーターの仕組み
Arduinoでサーボの角度を制御した時に「サーボの胴体」を手などで固定するとサーボホーン(羽)が動作します。反対に「サーボホーン」を固定するとサーボの胴体が動作します。
この仕組みが今回の二足歩行では重要となります。
二足歩行の原理(サーボの使い方)
左足と右足は同じ動作です。
片足の足元(下)のサーボで足を上げて、その姿勢の状態で胴体(上)のサーボで進行方向にサーボの角度を移動します。そのサーボの角度は進行方向が北とすると、左足ならば北西、右足ならば北東となります。
足元(下)のサーボ
サーボの角度を変更すると、サーボホーンが固定されているのでサーボの胴体が動作して足が上がります。
胴体(上)のサーボ
サーボの角度を変更すると、サーボホーンが固定されているのでサーボの胴体が動作して足全体(片足)が北西または北東に動作します。
※これらは各部位が両面テープなどで確実に固定されている必要があります。
参考動画
今回の二足歩行ロボットは次の動画を参考にして作成しました。先人に感謝。
ダンボット 歩行モーション
Arduino互換機を搭載した「ピッコロボ」のデモ
掲示板
ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。
関連記事
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









