Previous                                                                    Tutorial                                                                   Tutorial

内容

認定オンライン小売業者:

Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES

目的

このレッスンでは、赤外線リモコン IRレシーバーとコントローラー を使ってラジコン操作をします。各設定が完了したらリモコンを操作して、前進、後退、停止、左折、右折など操作します。

top

部品とデバイス

デバイス

画像
数量

付属品

OSOYOO UNO R3 (Arduino UNO R3と完全互換性があります) 1

M3×6プラスチックネジ  x 3

M3プラスチックナット×4

M3×5 + 6プラスチックスペーサー×4

OSOYOO Model-Xモータードライバーモジュール
1

M3×6プラスチックネジ×4

M3プラスチックナット×4

M3×5 + 6プラスチックスペーサー×4

Arduino UNO用センサーシールドV5.0
1
IR レシーバー
1

M3×6プラスチックネジ×1

M3プラスチックナット×1

M3×5 + 6プラスチックスペーサー×1

IR リモコン
1
シャーシ
1
配線付きモーター
2
ホイール
2

補助輪(前輪)

1
M3×10ダブルパス銅製スペーサー×4

M3×5ネジ×8

18650バッテリーボックス
(電池は含まれていません、電池の高さ≦67 mm)
1

M3×10ネジ×4

M3×10ナット×4

金属製モーターホルダー
2
DC電源コネクタ
1
プラスドライバ
1
スロット型ドライバー
1
40ピン10cmメス – メスケーブル 1
結束バンド 20

top

top

ロボットカーの組立て

1) 2WDロボットカーのシャーシを組み立てる

すでにレッスン1で、ロボットカーの車体を組立てている場合は、引き続き電子部品を取り付けていきます。もしレッスン1を終えられていない場合は、レッスン1のページに戻り車体を組立てください。

2) IRレシーバーモジュールを取り付けます

付属品:

ネジとナットを使用して、IRレシーバーをシャーシの前面に取り付けます

3) 配線作業

Arduino UNO用のIRシールドを Sensor Shield V5.0 に接続するためにケーブル(メス – メス)を使用します。

IR receiver

Sensor Shield  V5.0 for Arduino UNO

S

S4
+

5V

GND

Lesson – IR Remote Receiver Module and Controller

top

ソフトウェアのインストール方法

ステップ1: 最新のArduino IDEをインストールします(1.1.16以降のArduino IDEバージョンをお持ちの場合は、この手順を飛ばしてください)。
https://www.arduino.cc/en/Main/Software?setlang=jaからArduino IDEをダウンロードして、ソフトウェアをインストールします。

ステップ2: Arduino IDEを開き、Arduino IDEにIRremoteライブラリをインストールします(すでにIRremoteライブラリをインストールしている場合は、この手順をスキップしてください)。
IRremote.zipライブラリをダウンロードし、Arduino IDEにインポートします(Arduino IDEを開く-> スケッチをクリック->ライブラリをインクルード->.zip形式のライブラリをインストール)。

ステップ3: lesson-2.zip ダウンロードして解凍してください。

ステップ4: PCにUNO R3ボードをUSBケーブルで接続したら、Arduino IDEを開き以下の図が示すようにツールのポードとシリアルポートを使用の環境に合わせて設定してください。

ステップ 5: 下記図が示すように、Arduino IDE:ファイルをクリック – >開くをクリック – > lesson-2フォルダーの「lesson2.ino」を選択します。ファイルが開いたらarduinoボードにスケッチをアップロードします。

top

コードの説明

次の4行のコードはIRコントローラーの∧∨のボタンを表しています。ボタンの各IRコードはIRサンプルコードから取得できます。 IR sample code

#define IR_ADVANCE       0x00FF18E7       //IRコントローラの "∧"ボタン
#define IR_BACK          0x00FF4AB5       //IRコントローラの "∨"ボタン
#define IR_RIGHT         0x00FF5AA5       //IRコントローラーの ">"ボタン
#define IR_LEFT          0x00FF10EF       //IRコントローラーの「<」ボタン

赤外線信号を変換するためIRrecvオブジェクトを編集し、変換された内容をIRresultsに保存します。

IRrecv IR(IRPIN);  //   IRリモートからコードを取得してIRrecvオブジェクト保存します

赤外線信号を変換し、受信した赤外線信号を設定された値と比較します。値が等しい場合は、対応する値をDrive_Numに割り当てます。

void do_IR_Tick()
{
  if(IR.decode(&IRresults))
  {
    if(IRresults.value==IR_ADVANCE)
    {
      Drive_Num=GO_ADVANCE;
    }
    else if(IRresults.value==IR_RIGHT)
    {
       Drive_Num=GO_RIGHT;
    }
    else if(IRresults.value==IR_LEFT)
    {
       Drive_Num=GO_LEFT;
    }
    else if(IRresults.value==IR_BACK)
    {
        Drive_Num=GO_BACK;
    }
    IRresults.value = 0;
    IR.resume();
  }
}

このコードでは、リモコンのボタンを押すと、押した通りに作動する設定を行っています。設定以外の操作をするとロボットカーは何も反応を示しません。

void do_Drive_Tick()
{
    switch (Drive_Num) 
    {
      case GO_ADVANCE:
            go_ahead(20);JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;//GO_ADVANCEコードが検出された場合は前進します
      case GO_LEFT:
            turn_left(1);JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;//GO_LEFTコードが検出された場合は左折します
      case GO_RIGHT:
            turn_right(1);JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;//GO_RIGHTコードが検出された場合は右折します
      case GO_BACK:
            go_back(20);JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;//GO_BACKコードが検出された場合は後進します
      default:break;
    }
    Drive_Num=DEF;
   //現在のモードを200ミリ秒保持します
    if(millis()-JogTime>=200)
    {
      JogTime=millis();
      if(JogFlag == true) 
      {
        stopFlag = false;
        if(JogTimeCnt <= 0) { JogFlag = false; stopFlag = true; } JogTimeCnt--; } if(stopFlag == true) { JogTimeCnt=0; go_stop(); } } }

top

テスト

ArduinoとPCを接続しているUSBケーブルを取り外し、フル充電された2個の18650バッテリーを取り付けて、電源スイッチをONにしてください(ボックスの指示を確認し、極性の方向が正しいことを確認します。そうしないと、破壊して火災の原因となります)。

IRコントローラーキーを押して車を操作します:

∧: 前進

∨: 後進

<: 左折

>: 右折

動かない場合は以下の状態を確認してください:

  1. バッテリーが動作するか;
  2. IRコントローラーが受信機から離れすぎていないか;
  3. 接続が正しいか

top

Previous                                                                    Tutorial                                                                   Tutorial