自動レゴシューター
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 4 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 1 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
このプロジェクトは、レゴキャノンを自動的に撃つようにすることです。私はレゴで遊ぶのが好きで、Arduinosを使うのが好きなので、このプロジェクトを自由な時間に行うことにしました。ホーンが取り付けられたサーボモーターは、レバーを叩いて大砲を撃ちまわって回転します。初心者向けの優れた第1、第2、または第3のプロジェクト!
これは、それを作成する方法のステップバイステップガイドです。
ステップ1:ハードウェア
ステップ 1 パート 1: ハードウェア 基本
5Vが正に帯電した列に行き、GRNDが負に帯電した列に行くところから始めます。このようになります-
<図>ステップ1パート2:サーボ#1を接続する
サーボには3本のワイヤーがあります-オレンジ/黄色(信号)はデジタル(PWM〜)のスロットを占め、赤(電源)はVIN(正の行の任意のピン)に行きます、そして黒/茶色のワイヤー(GRND)は、宇野のGRNDピンに接続された負に帯電した列に接続されます。最初のサーボに使用したデジタルピンは7です。最初のサーボを接続したときの回路図は次のようになります-
<図>ステップ1パート3:残りのサーボの配線
サーボでコツをつかめば、残りは簡単です。ただし、注意すべき点が1つあります。コード内で、サーボに接続したデジタルピンとの整合性を保つ必要があります。
たとえば、コード(ページの下部にあります)は次のように述べています-
secondCannon.attach(8);
したがって、2番目のサーボはデジタルピン8に接続する必要があります。
同様に、3番目のサーボはデジタルピン6に接続する必要があり、4番目のサーボは9番目のデジタルピンに接続する必要があります。
ただし、これらは、希望する順序になるように変更できます。一貫性を保つためにハードウェアとソフトウェアの両方を変更していることを確認してください。変更しないと、コードが機能しません。
下部にあるコードで実行するには、次のように回路図面を表示する必要があります-
<図>おめでとう!このプロジェクトのハードウェア部分を正式に完了しました。
ステップ2:ソフトウェア
次に、ページの下部にあるコードをコピーしてArduinoスケッチに貼り付け、アップロードします。コードをアップロードする前に、サーボライブラリがあることを確認してください。そうしないと機能しません。以下は、コードとプログラム実行時の意味を説明するステップバイステップガイドです。
#include // ServosServofirstCannonのライブラリを含める; //最初の大砲をServoServoのsecondCannonとして定義します; // 2番目の大砲をServoServoの3番目の大砲として定義します。 //サードキャノンをServoServoとして定義するfourthCannon; //第4キャノンをサーボとして定義する
このコードは Servo.h
を設定します ライブラリ。コードで基本的な役割を果たします。これは、ライブラリを使用して4つの大砲をサーボ、または180度回転できるモーターとして定義する次の行で示すことができます。
void setup(){//セットアップコード、または一度だけ実行されるコードSerial.begin(9600); //シリアル通信を開始しますSerial.println( "クローンを防御します!防御を設定します!")//シリアルモニターに何かを出力しますfirstCannon.attach(7); //デジタルピン7を最初の大砲に取り付けますsecondCannon.attach(8); //デジタルピン8を2番目の大砲に取り付けますthirdCannon.attach(6); //デジタルピン6をサードキャノンに接続しますfourthCannon.attach(9); //デジタルピン9を4番目の大砲に取り付けます}
void setup()
コードはほとんどすべてのArduinoプロジェクト内で使用され、一度だけ実行されるコードです。この場合、9600ボーで改行シリアル通信を開始します。次に、シリアルモニターで印刷します。サーボをプログラムするには、それらの名前をそれぞれのデジタルピンに接続する必要があります。これが .attach()
の目的です コードの一部。
void loop(){//ループコード、または無限に実行されるコードSerial.println( "Beginning fire sequence")//シリアルモニターに何かを出力するfirstCannon.write(180); //最初のサーボを180度回転させ、最初の大砲の遅延を開始します(100); // 1/10秒待つfirstCannon.write(0); //リロードdelay(1000);に備えて、サーボを元の位置に戻します。 // 1秒間待ちますCannon.write(180); // 2番目のサーボを180度回転させ、2番目の大砲delay(100);を開始します。 // 1/10秒待つCannon.write(0); //リロードdelay(1000);に備えて、サーボを元の位置に戻します。 // 1秒間待ちますthirdCannon.write(180); // 3番目のサーボを180度回転させ、3番目の大砲delay(100);を開始します。 //秒の1/10を待ちますthirdCannon.write(0); //リロードdelay(1000);に備えて、サーボを元の位置に戻します。 // 1秒間待ちますfourthCannon.write(180); //最初の4分の1を180度回転させ、4番目の大砲delay(100);を開始します。 //秒の1/10を待つfourthCannon.write(0); //リロードdelay(1000);に備えて、サーボを元の位置に戻します。 // 1秒間待ちますSerial.println( "すべての大砲が発射されました"); Serial.println( "リロードの準備"); delay(10000); Serial.println( "リロードが完了しました。再起動の準備をしています")}
これは、 void
を使用した最後のコードです。 loop()
次のコードを無限に実行できるようにする関数。次に、大砲が発射されようとしていることをシリアルモニターに印刷します。各大砲のサーボは180度回転してから、一度に1つずつ元の位置にスピンバックする必要があります。その後、プロセスが再び繰り返されるまで10秒(リロード時間)かかるはずです。
コードのアップロード時に他に問題がある場合は、コメントセクションにコメントしてください。できるだけ早く対応します。動作する場合は、次の手順に進みます。
ステップ3:インストール
最後のステップでは、レゴキャノンと昔ながらの通常のテープが必要です。レゴキャノンはこんな感じ-
<図>コードを実行します。サーボがどちらの方向に回転するかを確認してください。サーボをレゴキャノンにテープで固定し、その軌道が上の写真のキャノンの上部にあるレバーとの衝突コースにサーボを設定するようにします。
よくできた!あなたはこのプロジェクトを正式に終了しました。私が言ったように、質問があれば以下のセクションにコメントしてください。
このプロジェクトが気に入ったら、これらのリンクをチェックしてください-
https://create.arduino.cc/projecthub/342600/basketball-hoop-with-buzzer-using-an-arduino-693bad?ref=user&ref_id=1536504&offset=1
https://create.arduino.cc/projecthub/ShreyanR/soundbox-826a56
コード
- レゴガンシューターコード
レゴガンシューターコード C / C ++
これをArduinoIDEに貼り付けます#include// ServosServofirstCannonのライブラリを含めます。 //最初の大砲をServoServoのsecondCannonとして定義します; // 2番目の大砲をServoServoの3番目の大砲として定義します。 //サードキャノンをServoServoとして定義するfourthCannon; // 4番目の大砲をServovoid setup()として定義する{//セットアップコード、または一度だけ実行されるコードSerial.begin(9600); //シリアル通信を開始しますSerial.println( "クローンを防御します!防御を設定します!")//シリアルモニターに何かを印刷しますfirstCannon.attach(7); //デジタルピン7を最初の大砲に取り付けますsecondCannon.attach(8); //デジタルピン8を2番目の大砲に取り付けますthirdCannon.attach(6); //デジタルピン6をサードキャノンに接続しますfourthCannon.attach(9); //デジタルピン9を4番目のキャノンに接続} void loop(){//ループコード、または無限に実行されるコードSerial.println( "Beginning fire sequence")//シリアルモニターfirstCannonに何かを印刷します。 write(180); //最初のサーボを180度回転させ、最初の大砲の遅延を開始します(100); // 1/10秒待つfirstCannon.write(0); //リロードdelay(1000);に備えて、サーボを元の位置に戻します。 // 1秒間待ちますCannon.write(180); // 2番目のサーボを180度回転させ、2番目の大砲delay(100);を開始します。 // 1/10秒待つCannon.write(0); //リロードdelay(1000);に備えて、サーボを元の位置に戻します。 // 1秒間待ちますthirdCannon.write(180); // 3番目のサーボを180度回転させ、3番目の大砲delay(100);を開始します。 //秒の1/10を待ちますthirdCannon.write(0); //リロードdelay(1000);に備えて、サーボを元の位置に戻します。 // 1秒間待ちますfourthCannon.write(180); //最初の4分の1を180度回転させ、4番目の大砲delay(100);を開始します。 //秒の1/10を待つfourthCannon.write(0); //リロードdelay(1000);に備えて、サーボを元の位置に戻します。 // 1秒間待ちますSerial.println( "すべての大砲が発射されました"); Serial.println( "リロードの準備"); delay(10000); Serial.println( "再読み込みが完了しました。再起動の準備をしています")}
回路図
製造プロセス