- Alexaベースの音声制御ロケットランチャー-動作中
- NodeMCUロケット発射コントローラー用の発射台
- Alexa制御ロケットランチャーに必要なコンポーネント
- Arduinoロケットランチャーの回路図
- PerfBoardで回路を構築する
- Alexa制御ロケットランチャー用のNodeMCUのプログラミング
- AlexaAndroidアプリケーションを使用したAlexaの設定
- Alexa制御ロケットランチャー-テスト
冬の季節が近づくにつれて; 光の祭典 が祝われるその年の時期が来る。はい、私たちは世界中で祝われる真のインドのお祭りであるディワリについて話している。 今年、ディワリ祭はすでに終わり、爆竹の人々を見て、音声コマンドだけでロケットを発射できるAlexaベースの音声制御ロケットランチャーまたはイグナイターを構築するというアイデアを思いつきました 。これは子供にとって非常に安全で楽しいものです。
明確にするために、私は人々にディワリでクラッカーを発射することを奨励するためにここにいるのではありません。インド政府は汚染を抑制するためにクラッカーに制限を課しました、そしてそれを守るのは私たちの責任です。ここでの考え方は、一日中クラッカーを発射する代わりに、クールな音声制御のArduinoロケット点火装置を構築し、いくつかのロケットをスタイリッシュに発射することです。私はそれをお互いに有利だと考えています。
このArduinoロケットランチャーは他のものとは大きく異なります。合板で作られた非常に頑丈なシャーシ、信頼性の高いリレーベースの制御メカニズム、ロケットの発射と再装填のための非常にユニークなメカニズムを備えているので、さらに遅れることなく、構築プロセスに取り掛かりましょう。
Alexaベースの音声制御ロケットランチャー-動作中
回路の動作メカニズムは非常に単純で、ロケットの発射を担当する主要なコンポーネントはニクロム線であり、それは加熱コイルの形で提供されます。このニクロム線はロケット点火装置として機能します。どうやって?後でお見せします。
上の画像でわかるように、ニクロム線はヒーターコイルの形をしています。私にとっては、それを入手する最も簡単な方法でした。下の画像のような形にするには、まっすぐに引っ張って曲げる必要があります。
これが完了したら、12V鉛蓄電池で電力を供給し、赤く熱く光ります。これはロケット内部の黒い火薬を点火するのに十分であり、通常のヒューズ線量と同じように機能します。これは高出力のロケット発射コントローラーであり、ワイヤーを赤く熱くするために必要な電流が大きいことに注意してください。大電流で作業するときは、安全に関するアドバイスに従ってください。
テストが完了すると、残っているのは制御プロセスだけです。これは、記事をさらに進めるときに実行します。
NodeMCUロケット発射コントローラー用の発射台
このビルドでは、ランチパッドを作成しましょう。ランチパッドが完成したら、クラッカーを簡単にリロードして、非常に簡単に起動できます。下の画像に示すようなランチパッドを作成しました。
ランチパッドを構築するステップバイステップのプロセスを見ていきましょう。フレームの両側には、長さ25X3X1.5インチの合板を2枚使用しました。上部には(20X3X1.5)インチの長さの合板を使用し、下部には(20X6X1.5)インチの長さの合板を使用しました。これにより、安定性が少し向上します。下の画像はあなたに明確な考えを与えるでしょう。
さて、ロケットのヒューズとして機能するニクロム線ベースのフィラメントを作る時が来ました。そのために、1000Wのニクロム線ベースの発熱体コイルを購入し、真っ直ぐにして、下図のような構造にしました。以下に示すように、ニクロム線を成形するために2つのペンチとサイドカッターを使用する必要がありました。
これが完了したら、20インチの合板ブロックを7つに分割して測定し、ニクロム線ベースのフィラメントを挿入するための穴を開けました。完了すると、下の画像のようになりました。
しかし、フィラメントを配置する前に、各端子に1平方ミリメートルの太さの銅線を取り付けて穴に通しました。すべてが完了すると、下の画像のようになりました。
ご覧のとおり、ワイヤーとフィラメントを所定の位置に固定するために、2液型接着剤も入れました。これで、ランチパッドが完成しました。このセクションの最初の写真からわかるように、非常に高い電流を処理しているため、フィラメントワイヤをPCBに直接接続しました。そのため、ネジ留め式端子を配置する必要はありませんでした。これで、シャーシの終わりになります。構築プロセス。
Alexa制御ロケットランチャーに必要なコンポーネント
ハードウェアの面では、地元のホビーショップから簡単に入手できる非常に一般的な部品を使用しています。アイテムの完全なリストを以下に示します。
- 12V-リレー-3
- BD139トランジスタ-3
- 1N4004ダイオード-3
- 5.08mmネジ留め式端子-1
- LM7805-電圧レギュレータ-1
- 100uFデカップリングコンデンサ-2
- 5.1Vツェナーダイオード-1
- NodeMCU(ESP8266-12E)ボード-1
- 点線のパフォーマンスボード-½
- 接続線-10
Arduinoロケットランチャーの回路図
Alexa Controlled RocketLauncherの完全な回路図を以下に示します。タグを使用して、あるピンを別のピンに接続しました。よく見ると、回路図の解釈は難しくありません。
回路構成は非常に単純なので、詳細についてはあまり説明しません。
まず、LM7805電圧レギュレータであるIC1があり、100uFのデカップリングコンデンサがC1とC2で示されています。その後、ESP-12Eモジュールを収容するNodeMCUボードというプロジェクトの中心があります。回路全体に電力を供給するために12V鉛蓄電池を使用しているため、NodeMCUボードに電力を供給するために最初にLM7805を12Vから5Vに変換する必要があります。オンボードのAMS1117電圧レギュレータは12Vを直接3.3Vに変換するのに十分ではないため、これを行っています。そのため、7805が必要です。
次に、3つの12Vリレーがあります。このデモでは、3つのリレーを使用していますが、前述のように、発射台には7つのロケット用のプレースホルダーがあります。コードを少し微調整し、7つのロケットすべてを配置してすべてを起動できます。3つのリレーは、3つのNPNトランジスタであるT1、T2、およびT3によって駆動され、実際の負荷を駆動するのに十分です。最後に、リレーによって生成される高電圧スパイクから回路を保護する3つのフリーホイールダイオードがあります。
PerfBoardで回路を構築する
メイン画像からわかるように、私たちのテストによると、800ミリ秒で一枚の紙を照らすのに十分であるため、短時間で大量の電流を処理できる単純な回路を作るというアイデアでした。そのため、1枚のパフォーマンスボード上に回路を構築し、すべての主要な接続を1平方ミリメートルの太さの銅線で接続します。ボードのはんだ付けが終了した後。終了すると、以下のようになりました。
Alexa制御ロケットランチャー用のNodeMCUのプログラミング
ハードウェアの準備ができたので、Alexaベースの音声制御ロケットランチャーのコーディングを開始します。完全なコードはこのページの最後にありますが、始める前に、必要なライブラリをArduinoIDEに追加することが重要です。以下のリンクから適切なライブラリを追加してください。そうしないと、コードがコンパイル時にエラーをスローします。
- Espalexaライブラリをダウンロードする
必要なライブラリを追加した後、このページの下部にあるコードを直接アップロードして、回路が機能しているかどうかを確認できます。コードがどのように機能するかを知りたい場合は、読み続けてください。
いつものように、必要なヘッダーファイルを追加し、ホットスポットのピン名と資格情報を定義することからプログラムを開始します。
#include
コードを進めると、関数プロトタイプとコールバック関数定義があります。
関数 connectToWiFi() はWi-Fiネットワークに接続するために使用され、この関数はWi-Fiが正常に接続されるとtrueを返します。
次に、 コールバック 関数があります。この関数は、Alexaにコマンドを与えると呼び出され、espalexaAPIがこれらの関数を処理します。
ボイドallrockets(uint8_t明るさ); void firstrocket(uint8_t明るさ); void secondrocket(uint8_t明るさ); ボイドサードロケット(uint8_t明るさ);
次に、デバイス名を定義します。これらの定義されたデバイス名はAlexaアプリに反映され、コマンドを言うと、Alexaはこれらの名前でデバイスを認識します。したがって、これらの名前は非常に重要です。
//デバイス名StringFirst_Device_Name = "All Rockets"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Rocket Two"; String Forth_Device_Name = "Rocket Three";
次に、Wi-Fiの接続ステータスを保持するブール変数 wifiStatus を定義します。最後に、Espalexaオブジェクトespalexaを作成します。このオブジェクトを使用してNodeMCUを構成します。
// Wi-FiステータスチェックブールwifiStatus = false; // EspalexaオブジェクトEspalexaespalexa;
次に、 void setup() セクションがあります。このセクションでは、 Serial.begin() 関数を使用してデバッグするためにシリアル通信を初期化し ます。私たちは、との出力など、すべての以前の定義されたピン設定 pinMode() 私たちは呼んで次の関数、 connectToWiFi() 、それがない場合、それはtrueを返しますが、それが接続されている場合は、15回のWi-Fiに接続しようとする関数を接続すると、falseが返され、コードは while() ループを 永久に実行します。 Wi-Fi接続が成功した場合、 espalexa.addDevice() 関数を使用して、以前に定義したデバイスをAlexaオブジェクトに追加します。この関数は2つの引数を取ります。最初はデバイス名、 2番目はコールバック関数の名前です。Alexaにコマンドを出力すると、隣接する関数が呼び出されます。 4つのデバイスすべてに対してこれを実行したら、espalexaオブジェクトの begin() メソッドを呼び出します。
void setup(){Serial.begin(115200); //メッセージのデバッグ用にシリアルを有効にしますpinMode(ROCKET_1_PIN、OUTPUT); // ESPピンを出力として設定pinMode(ROCKET_2_PIN、OUTPUT); // ESPピンを出力として設定pinMode(ROCKET_3_PIN、OUTPUT); // ESPピンを出力として設定wifiStatus = connectToWiFi(); //ローカルWi-Fiネットワークに接続しますif(wifiStatus){//すべてのespalexaデバイスをセットアップします//ここでデバイスを定義します。 espalexa.addDevice(First_Device_Name、allrockets); //最も単純な定義、デフォルトの状態オフespalexa.addDevice(Secound_Device_Name、firstrocket); espalexa.addDevice(Third_Device_Name、secondrocket); espalexa.addDevice(Forth_Device_Name、thirdrocket); espalexa.begin(); } else {while(1){シリアル。 println( "WiFiに接続できません。データを確認してESPをリセットしてください。"); delay(2500); }}}
では ループ セクション、我々は呼んで ループ() は常にすべての着信コマンドを確認し、それが真見つけた場合、コールバック関数を呼び出しますespalexaオブジェクトのメソッドを。
void loop(){espalexa.loop(); delay(1); }
次に、すべてのコールバック関数を定義します。このセクションでは、このコールバック関数が呼び出されたときに何が起こるかを定義します。とき allrockets() 関数が呼び出され、すべてのロケットが一緒に発売される予定です。そのために、リレーを00ミリ秒間オンにし、その後、リレーをオフにします。私のテストでは、指定された長さのニクロム線の場合、線を完全に加熱するために800msの遅延が必要であることがわかりました。これは、当てはまる場合と当てはまらない場合があります。したがって、それに応じて遅延を選択します。
void allrockets(uint8_t Brightness){if(brightness == 255){digitalWrite(ROCKET_1_PIN、HIGH); digitalWrite(ROCKET_2_PIN、HIGH); digitalWrite(ROCKET_3_PIN、HIGH); delay(800); digitalWrite(ROCKET_1_PIN、LOW); digitalWrite(ROCKET_2_PIN、LOW); digitalWrite(ROCKET_3_PIN、LOW); Serial.println( "すべてのロケットが打ち上げられました"); }}
次に、 最初のロケット()があります。 これは 、 Alexaを呼び出し、tieコマンドを実行して最初のロケットを起動すると呼び出されます。プロセスは非常に似ており、リレーを800msオンにしてオフにします。
void firstrocket(uint8_t Brightness){if(brightness == 255){digitalWrite(ROCKET_1_PIN、HIGH); delay(800); digitalWrite(ROCKET_1_PIN、LOW); Serial.println( "最初のロケット打ち上げ"); }}
最後に、 connectToWiFi() 関数があります。この関数はかなり一般的で自明なので、この関数の詳細については説明しません。この関数はESPをWi-Fiに接続し、接続ステータスを返します。
boolean connectToWiFi(){boolean state = true; int i = 0; WiFi.mode(WIFI_STA); WiFi.begin(ssid、password); Serial.println( ""); Serial.println( "WiFiへの接続"); //接続を待ちますSerial.print( "Connecting…"); while(WiFi.status()!= WL_CONNECTED){delay(500); Serial.print( "。"); if(i> 15){状態= false; ブレーク; } i ++; } Serial.println( ""); if(state){Serial.print( "Connected to"); Serial.println(ssid); Serial.print( "IPアドレス:"); Serial.println(WiFi.localIP()); } else {Serial.println( "接続に失敗しました。"); }状態を返します。}
定義されたこの関数は、コーディング部分の終わりを示します。
AlexaAndroidアプリケーションを使用したAlexaの設定
Alexaは、esp8866デバイスを認識する場合にのみコマンドを受け入れます。そのためには、AndroidのAlexaアプリを使用してAlexaを構成する必要があります。先に進む前に行うべき重要なことの1つは、AlexaがAndroidアプリケーションで構成されていることを確認する必要があることです。
これを行うには、Alexaアプリのその他のセクションに移動し、[デバイスの追加]オプションをクリックし、[ライト]をクリックしてから、ページの下部を下にスクロールして[その他]をクリックします。
次に、[デバイスを検出]をクリックし 、Alexaが新しいデバイスを見つけるまでしばらく待ちます。Alexaがデバイスを見つけたら、それらをクリックしてそれぞれの場所/カテゴリに追加する必要があります。これで完了です。
Alexa制御ロケットランチャー-テスト
テストプロセスのために、私は自分の庭に行き、ロケットからすべてのヒューズを引き出し、それぞれの場所に配置し、Alexaを叫びました…!指を交差させて、すべてのロケットをオンにします。そして、すべてのロケットは私の努力を大成功としてマークすることによって飛んだ。こんな感じでした。
最後に、もう一度アレクサと言いました…!すべてのロケットの電源を入れて、下に表示されているフィラメントの壮大な写真を取得します。
より壮大な体験のために、私はあなたがビデオを見ることを強くお勧めします。