9. リモートコントロール¶
このキットにはIR受信機が付属しており、IRリモートコントロールを使用して車の動きをコントロールすることができます。
必要な部品
このプロジェクトでは、以下のコンポーネントが必要です。
一式を購入するのが確実に便利です。リンクは以下の通りです。
名前 |
このキットのアイテム |
リンク |
---|---|---|
3 in 1 Starter Kit |
380+ |
以下のリンクから個別に購入することもできます。
コンポーネントの紹介 |
購入リンク |
---|---|
- |
|
- |
|
- |
配線図
以下の図に従って回路を組み立ててください。
IR 受信機 |
R4 ボード |
---|---|
OUT |
12 |
GND |
GND |
VCC |
5V |
LED |
R4 ボード |
---|---|
アノード(長いピン) |
13 |
カソード |
GND |
コード
注釈
パス
3in1-kit\car_project\9.remote_control
の下にある9.remote_control.ino
ファイルを開きます。または、このコードを Arduino IDE にコピーします。
ここでは
IRremote
ライブラリが使用されています。 Library Manager からインストールできます。
コードが正常にアップロードされた後、リモートコントロールのボタンを押すと、LEDが一度点滅して信号を受信したことを示し、あなたが押したボタンに応じて車が動きます。車をコントロールするための以下のキーを押すことができます。
+: 加速
-: 減速
1: 左へ前進
2: 前進
3: 右へ前進
4: 左折
6: 右折
7: 左へ後退
8: 後退
9: 右へ後退
どのように動作するのか?
このプロジェクトの効果は、IRリモートコントロールのキー値を読み取ることで車を動かすことです。さらに、IR信号が正常に受信されたことを示すためにLEDが追加されています。
IRremote
ライブラリをインポートし、 Library Manager からインストールできます。#include <IRremote.h> const int IR_RECEIVE_PIN = 12; // IRセンサのピン番号を定義
ボーレート9600でシリアル通信を初期化します。指定されたピン(
IR_RECEIVE_PIN
)でIR受信機を初期化し、LEDフィードバックを有効にします(該当する場合)。... void setup() { ... //IRリモート IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // IRレシーバを開始 Serial.println("REMOTE CONTROL START"); }
リモコンのキーを押すと、赤外線レシーバはどのキーが押されたかを知り、それに応じて車が対応するキー値に従って動きます。
void loop() { if (IrReceiver.decode()) { // Serial.println(results.value,HEX); String key = decodeKeyValue(IrReceiver.decodedIRData.command); if (key != "ERROR") { Serial.println(key); if (key == "+") { speed += 50; } else if (key == "-") { speed -= 50; } else if (key == "2") { moveForward(speed); delay(1000); ... } IrReceiver.resume(); // Enable receiving of the next value } }
IR信号が受信され、正常にデコードされたかどうかを確認します。
カスタムの
decodeKeyValue()
関数を使用してIRコマンドをデコードし、key
に保存します。デコードされた値がエラーでないか確認します。
デコードされたIR値をシリアルモニタに出力します。
次の信号のIR信号受信を再開します。