Previous                                                                      Tutorial                                                                   Tutorial

注意: すべてのOSOYOO Arduino製品はサードパーティ製ボードであり、Arduinoと完全互換です

目次

認定オンライン小売業者

Shopify

Amazon

目的

このレッスンでは、2WDロボットカースターターキットを使用して簡単なリモートコントロールカーを作ります。車の取り付けが完了すると、赤外線リモコンを使用して前進、後退、停止、左折、右折を含む車の動作を制御します。

top

ハードウェアの取り付け

1) 2WDロボットカーの取り付け

レッスン1に従ってロボットカーの基本フレームワークを取り付けます。レッスン1の取り付けをすでに完了している場合は、そのままにしておき、取り付けたモジュールをすべて取り外す必要はありません。

このモジュールの詳細情報については以下を参照してください:

https://osoyoo.com/ja/?p=19435

OSOYOO UART Wi-Fiシールドと赤外線受信機の接続:

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

注意: スケッチコードをArduinoにアップロードする際は、バッテリーの電源を切るか、電源アダプターを抜いてください。

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

ステップ 2: IDEにIRremoteライブラリをインストール(すでにIRremoteライブラリをインストールしている場合は、このステップをスキップしてください)
https://downloads.arduino.cc/libraries/github.com/z3t0/IRremote-4.3.1.zipからIRremoteライブラリをダウンロードし、IDEにライブラリをインポートしてください(IDEを開く→スケッチ→ライブラリをインクルード→.Zipライブラリを追加)

ポップアップウィンドウで、ダウンロードフォルダに移動し、先ほどダウンロードしたIRremote.zipファイルを選択してください。

注意!!

  1. Arduino IDEの最新バージョンにIRRobotRemoteライブラリがある場合、競合する可能性があるため、そのライブラリを削除する必要がある場合があります。Arduino(root)/libraries/RobotIRremoteを必ず削除してください。Arduino(root)はArduinoのインストールディレクトリを指します。ライブラリRobotIRremoteはIRremoteと同様の定義を持っているため、エラーが発生します。
  2. Arduino IDEでのArduinoライブラリのインストール方法については、https://osoyoo.com/ja/2017/05/08/how-to-install-additional-arduino-libraries/をご覧ください

ステップ 3: https://osoyoo.com/driver/2wd/lesson2.zipをダウンロードして解凍すると、lesson2という名前のフォルダが表示されます。

ステップ 4: USBケーブルでUNO R3ボードをPCに接続し、Arduino IDEを開き、プロジェクトに対応するボードとポートを選択してください

ステップ 5: Arduino IDE: ファイル → 開く → lesson2フォルダ内の「lesson2.ino」コードを選択し、コードをArduinoにロードして、スケッチをボードにアップロードしてください。

top

コードの説明

以下のコード行はIRコントローラーの∧∨のIRコードを表しており、各ボタンのIRコードはIRサンプルコードから取得できます:

#define IR_ADVANCE       24       //IRコントローラー「▲」ボタンからのコード
 #define IR_BACK          82       //IRコントローラー「▼」ボタンからのコード
 #define IR_RIGHT         90       //IRコントローラー「>」ボタンからのコード
 #define IR_LEFT          8       //IRコントローラー「<」ボタンからのコード
 #define IR_STOP          28       //IRコントローラー「OK」ボタンからのコード
 #define IR_turnsmallleft 13       //IRコントローラー「#」ボタンからのコード

赤外線信号をデコードし、受信した赤外線信号を事前に定義された値と比較し、等しい場合は対応する値を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_Advance();JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;//GO_ADVANCEコードが検出された場合、前進します
      case GO_LEFT: go_Left();JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;//GO_LEFTコードが検出された場合、左折します
      case GO_RIGHT:  go_Right();JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;//GO_RIGHTコードが検出された場合、右折します
      case GO_BACK: go_Back();JogFlag = true;JogTimeCnt = 1;JogTime=millis();break;//GO_BACKコードが検出された場合、後退します
      case STOP_STOP: stop_Stop();JogTime = 0;break;//停止
      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;
        stop_Stop();
      }
    }

top

テスト

OSOYOO UNO R3ボードをPCから切断し、完全充電された18650バッテリー2本をバッテリーボックスに挿入してください(取扱説明書を確認し、極性の方向が正しいことを確認してください)。バッテリーボックスの電源スイッチを開いてください。

IRコントローラーキーを押して車の動作を制御:

▲: 前進

▼: 後退

◄: 左折

►: 右折

トラブルシューティング:

車が動かない場合は、以下を確認してください:

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

上記3点をすべて確認してもIR制御が機能しない場合、理由はIRリモコンがサンプルコードと一致しない異なるボタンコードを送信している可能性があります。この問題を解決するには、以下の手順に従ってください:
ステップA) 以下のリンクからIRリモコンの各ボタンのIRコードを取得してください。
https://osoyoo.com/driver/2wd/IR_print_commands_v4.zip

ファイルを解凍し、上記のスケッチをボードにアップロードして、右上隅のシリアルモニターを開いてください。

リモコンの◄ ► ▲ ▼ 「OK」ボタンを押すと、以下のようなIRコードが表示されます:

コントロールボタン◄ ► ▲ ▼「OK」ボタンのIRコードを書き留めてください,

ステップB) レッスン2のスケッチファイルのIRコードを置き換えてください:
レッスン2のコードを再度開くと、各ボタンのIRコードを定義する以下の行が表示されます:
#define IR_ADVANCE       24       //IRコントローラー「▲」ボタンからのコード
 #define IR_BACK          82       //IRコントローラー「▼」ボタンからのコード
 #define IR_RIGHT         90       //IRコントローラー「>」ボタンからのコード
 #define IR_LEFT          8       //IRコントローラー「<」ボタンからのコード
 #define IR_STOP          28       //IRコントローラー「OK」ボタンからのコード
 #define IR_turnsmallleft 13       //IRコントローラー「#」ボタンからのコード
上記の各行の各ボタンの値をステップA)のコードに一致するように変更してください。変更方法がわからない場合は、メールを送信してステップA)の各ボタンのコードを教えてください。コードを変更して新しいスケッチファイルをメールで送信します。
上記の方法により、他のIR送信デバイス(TVリモコン、DVDリモコン、エアコンリモコンなど)を使用して車を制御することもできます。ステップA)を使用してリモコンのキーコードを取得し、ステップB)でスケッチファイルを変更すれば動作します。
注意:
1) 添付画像のように、IRリモコンの送信ポートをIR受信機ヘッドにできるだけ向けてください。
2) リモコンを優しく、一定の間隔で押してください

top

 

部品とデバイス:

No. 写真 デバイス 数量 データシート 購入リンク
1 OSOYOO基本ボード 1 ここをクリック 購入はこちら
2 OSOYOO UART Wi-FiシールドV1.3 1 ここをクリック 購入はこちら
3 OSOYOO model X モータードライバーモジュール 1 ここをクリック 購入はこちら
4 赤外線受信機 1 ここをクリック 購入はこちら
5 赤外線リモコン 1 ここをクリック 購入はこちら
6 トレーキングセンサーモジュール 2 ここをクリック 購入はこちら
7 HCモジュール 1 ここをクリック 購入はこちら
8 ギアモーター 2 購入はこちら
9 ネジ付き金属モーターホルダー 2 購入はこちら
10 ホイール 2 購入はこちら
11 万能ホイール 1
12 6ピンメス-オスジャンパーワイヤー 1 購入はこちら
13 OSOYOO 2ピンPnPケーブル 20cm 1 購入はこちら
14 20ピンジャンパーワイヤー メス-オス 15cm 1 購入はこちら
15 フィリップススクリュードライバー 1 購入はこちら
16 六角スクリュードライバー 1 購入はこちら
17 18650バッテリーボックス 1 購入はこちら
18 18650バッテリー用充電器 1 購入はこちら
19 18650バッテリー 1組 1 購入はこちら
20 M3*5 六角ネジ 10
21 M3*10 ネジ 4
22 M3ナット 4
23 銅スペーサー 4
24 ホイール用ネジ 2
25 M3プラスチックネジ 15
26 M3プラスチックスペーサー 15
27 M3プラスチックナット 15

 

Previous                                                                      Tutorial                                                                   Tutorial