Arduino Unoで作る自動発射レゴ・スターウォーズ砲台
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino UNO | 1 | 互換ボードでも可 |
| SG90 マイクロサーボモーター | 4 | 砲台のトリガーを引く用 |
| ジャンパーワイヤー | 1式 | |
| レゴ・スターウォーズ 発射式キャノン | 4 | |
| ブレッドボード | 1 |
必要な工具と機器
- テープ(種類不問、電気テープでなくても可)
使用するアプリとオンラインサービス
- Arduino IDE
プロジェクト概要
レゴの大砲を自動で発射させるプロジェクトです。レゴ遊びとArduinoが好きなので、自由時間に作ってみました。サーボモーターのホーンが回転してレバーを叩き、キャノンを発射させます。初心者の最初の、あるいは2つ目・3つ目のプロジェクトとして最適です!
ステップバイステップで作り方を解説します。
ステップ1: ハードウェア
ステップ1 パート1: ハードウェアの基本
まずブレッドボードのプラス側レールに5V、マイナス側レールにGNDを接続します。
ステップ1 パート2: サーボ#1の接続
サーボには3本の線があります:
- 橙/黄色(信号)→ デジタルPWMピン (ここではD7)
- 赤(電源)→ VIN (プラス側レールの任意のピン)
- 茶/黒(GND)→ マイナス側レール (UnoのGNDピンに接続)
ステップ1 パート3: 残り3台のサーボ接続
コツを掴めば残りも簡単です。ただし、コード内で指定したデジタルピンと実際の配線を一致させる必要があります。例えばコードに secondCannon.attach(8); とあれば、2台目のサーボ信号線はD8に繋ぐ必要があります。同様に3台目はD6、4台目はD9です。順序は自由に変更可能ですが、ハードウェアとソフトウェアの両方を変更して整合性を保ってください。
提供コードに合わせた最終的な配線図は以下の通りです。
これでハードウェア部分は完了です!
ステップ2: ソフトウェア
ページ下部のコードをArduinoスケッチにコピペして書き込んでください。Servo.h ライブラリが必要です(未インストールの場合はライブラリマネージャから導入)。以下、コードの要点を解説します。
#include <Servo.h>
Servo firstCannon; // 1台目をサーボとして定義
Servo secondCannon;
Servo thirdCannon;
Servo fourthCannon;
Servo.h をインクルードし、4門のキャノンをサーボオブジェクトとして定義。180度回転可能なモーターとして扱えます。
void setup() {
Serial.begin(9600);
Serial.println("Defend the Clones! Set up the defenses!");
firstCannon.attach(7); // D7に1台目接続
secondCannon.attach(8); // D8に2台目
thirdCannon.attach(6); // D6に3台目
fourthCannon.attach(9); // D9に4台目
}
setup() は起動時に1回だけ実行。シリアル通信開始、メッセージ出力、各サーボのピン割り当てを行います。
void loop() {
Serial.println("Beginning firing sequence");
firstCannon.write(180); delay(100); firstCannon.write(0); delay(1000);
secondCannon.write(180); delay(100); secondCannon.write(0); delay(1000);
thirdCannon.write(180); delay(100); thirdCannon.write(0); delay(1000);
fourthCannon.write(180); delay(100); fourthCannon.write(0); delay(1000);
Serial.println("All cannons fired");
Serial.println("Prepare for reload");
delay(10000); // 10秒リロード待機
Serial.println("Reloading Complete. Preparing to fire again");
}
loop() は無限繰り返し。各サーボを順番に180度回転→元の位置へ戻す(発射→リロード動作)を実行し、全門発射後10秒待機して繰り返します。
コード書き込みで問題があればコメント欄で質問してください。動作確認できたら次のステップへ。
ステップ3: 取り付け
レゴキャノンとテープを用意します。キャノンはこんな形状です。
コードを実行し、サーボがどちらの方向に回るか確認してください。サーボをキャノンにテープで固定し、サーボホーンの軌道がキャノン上部のレバー(写真参照)に確実に当たるように位置合わせします。
お疲れ様でした!これでプロジェクト完成です。質問があればコメント欄へどうぞ。
気に入ったら、私の他のプロジェクトもチェックしてみてください:
ソースコード
Lego Gun Shooter Code (C/C++)
#include <Servo.h>
Servo firstCannon;
Servo secondCannon;
Servo thirdCannon;
Servo fourthCannon;
void setup() {
Serial.begin(9600);
Serial.println("Defend the Clones! Set up the defenses!");
firstCannon.attach(7);
secondCannon.attach(8);
thirdCannon.attach(6);
fourthCannon.attach(9);
}
void loop() {
Serial.println("Beginning firing sequence");
firstCannon.write(180); delay(100); firstCannon.write(0); delay(1000);
secondCannon.write(180); delay(100); secondCannon.write(0); delay(1000);
thirdCannon.write(180); delay(100); thirdCannon.write(0); delay(1000);
fourthCannon.write(180); delay(100); fourthCannon.write(0); delay(1000);
Serial.println("All cannons fired");
Serial.println("Prepare for reload");
delay(10000);
Serial.println("Reloading Complete. Preparing to fire again");
}
回路図
製造プロセス
- 万能ダクトテープ:強度、柔軟性、日常用途
- セロハンテープ:歴史、製造、環境影響
- Bluetooth操作のArduinoスパイボットを自作する
- FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
- 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- 巨大レゴミニフィグ・アニマトロニクス「オペレーション」ゲームをArduinoで自作
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- SunGlass-BOT:光量に合わせて自動でレンズを開閉するスマートサングラス
- Arduinoプロジェクトのための最適化電源ソリューション
- Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作