.. note::
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
**参加する理由は?**
- **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
- **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。
- **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。
- **特別割引**:最新製品の独占割引をお楽しみください。
- **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう!
.. _car_remote:
9. リモートコントロール
=================================
このキットにはIR受信機が付属しており、IRリモートコントロールを使用して車の動きをコントロールすることができます。
**必要な部品**
このプロジェクトでは、以下のコンポーネントが必要です。
一式を購入するのが確実に便利です。リンクは以下の通りです。
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - 名前
- このキットのアイテム
- リンク
* - 3 in 1 Starter Kit
- 380+
- |link_3IN1_kit|
以下のリンクから個別に購入することもできます。
.. list-table::
:widths: 30 20
:header-rows: 1
* - コンポーネントの紹介
- 購入リンク
* - :ref:`cpn_uno`
- |link_Uno_R3_buy|
* - :ref:`cpn_l9110`
- \-
* - :ref:`cpn_tt_motor`
- \-
* - :ref:`cpn_led`
- |link_led_buy|
* - :ref:`cpn_receiver`
- \-
**配線図**
以下の図に従って回路を組み立ててください。
.. list-table::
:header-rows: 1
* - IR 受信機
- R4 ボード
* - OUT
- 12
* - GND
- GND
* - VCC
- 5V
.. list-table::
:header-rows: 1
* - LED
- R4 ボード
* - アノード(長いピン)
- 13
* - カソード
- GND
.. image:: img/car_9.png
:width: 800
**コード**
.. note::
* パス ``3in1-kit\car_project\9.remote_control`` の下にある ``9.remote_control.ino`` ファイルを開きます。
* または、このコードを **Arduino IDE** にコピーします。
* ここでは ``IRremote`` ライブラリが使用されています。 **Library Manager** からインストールできます。
.. image:: ../img/lib_irremote.png
.. raw:: html
コードが正常にアップロードされた後、リモートコントロールのボタンを押すと、LEDが一度点滅して信号を受信したことを示し、あなたが押したボタンに応じて車が動きます。車をコントロールするための以下のキーを押すことができます。
* **+**: 加速
* **-**: 減速
* **1**: 左へ前進
* **2**: 前進
* **3**: 右へ前進
* **4**: 左折
* **6**: 右折
* **7**: 左へ後退
* **8**: 後退
* **9**: 右へ後退
**どのように動作するのか?**
このプロジェクトの効果は、IRリモートコントロールのキー値を読み取ることで車を動かすことです。さらに、IR信号が正常に受信されたことを示すためにLEDが追加されています。
#. ``IRremote`` ライブラリをインポートし、 **Library Manager** からインストールできます。
.. code-block:: arduino
#include
const int IR_RECEIVE_PIN = 12; // IRセンサのピン番号を定義
#. ボーレート9600でシリアル通信を初期化します。指定されたピン( ``IR_RECEIVE_PIN`` )でIR受信機を初期化し、LEDフィードバックを有効にします(該当する場合)。
.. code-block:: arduino
...
void setup() {
...
//IRリモート
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // IRレシーバを開始
Serial.println("REMOTE CONTROL START");
}
#. リモコンのキーを押すと、赤外線レシーバはどのキーが押されたかを知り、それに応じて車が対応するキー値に従って動きます。
.. code-block:: arduino
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信号受信を再開します。