Buy from US | Buy from UK | Buy from DE | Buy from IT | Buy from FR | Buy from ES |
このレッスンでは、赤外線リモコン IRレシーバーとコントローラー を使ってラジコン操作をします。各設定が完了したらリモコンを操作して、前進、後退、停止、左折、右折など操作します。
すでにレッスン1で、ロボットカーの車体を組立てている場合は、引き続き電子部品を取り付けていきます。もしレッスン1を終えられていない場合は、レッスン1のページに戻り車体を組立てください。
ネジとナットを使用して、IRレシーバーをシャーシの前面に取り付けます
Arduino UNO用のIRシールドを Sensor Shield V5.0 に接続するためにケーブル(メス – メス)を使用します。
IR receiver |
Sensor Shield V5.0 for Arduino UNO |
S |
S4 |
+ |
5V |
– |
GND |
ステップ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ボードにスケッチをアップロードします。
次の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(); } } }
ArduinoとPCを接続しているUSBケーブルを取り外し、フル充電された2個の18650バッテリーを取り付けて、電源スイッチをONにしてください(ボックスの指示を確認し、極性の方向が正しいことを確認します。そうしないと、破壊して火災の原因となります)。
IRコントローラーキーを押して車を操作します:
∧: 前進
∨: 後進
<: 左折
>: 右折
動かない場合は以下の状態を確認してください:
DownLoad Url osoyoo.com
You must be logged in to post a comment.
Can sketches be combined? Can the IR control be used to activate the Robot movement from lesson 1, for example? Or, can the IR remote be used at the same time as the line follow?
Can an obstacle avoidance module be added to the 2WD Robot Kit?
Thanks
the code on the cd does not work …. IRremote.H: no such file or directory
please help!
please read the software installation STEP 2, https://osoyoo.com/2017/09/21/2wd-robot-car-infrared-remote/#4
You need install the IRremote library first.
I’m having difficulty with this lesson. I have the library imported and code loaded with no errors. When I try the IR remote, I see the sensor blinking showing it is receiving the signal, but the car only sometimes goes and only for a split second. The batteries are new and fully charged and the IR Remote is close and unhindered. The code in lesson one worked perfectly, so that eliminates the wiring/boards with the exception of the IR receiver.
Any thoughts? Thank you!
hi, TheMuffinMan,
It seems that your IR receiver did not send the data to Arduino. I believe the wire from IR receiver S pin to extension S4 pin is loose or broken. Please change a new wire and try again. if it does not work, then let me know I will tell you how to make further test.
thanks
admin
Hello, and thanks for the quick response.
I went ahead and replaced all the wiring, assuring that they were all were snug.
The issue still persists though. Any suggestions would be much appreciated.
Thank you,
TheMuffinMan
Ok. Please keep all your current wire connection (make sure IR receiver S pin is connected to D4) and then download an IR test sketch from https://osoyoo.com/driver/IRrecvDemo.ino
Above sketch will tell you of the IR code of each key on a remote controller. After upload above sketch into Arduino, Open the serial monitor, then press ∧ V > < (the direction arrow keys) in the remote, it will show result in following sequence.
00FF18E7
00FF4AB5
00FF5AA5
00FF10EF
They are the IR codes of ∧ V > < four keys.
Please let me know :
1)Does the serial monitor show any message ?
2)if 1) answer is yes, then what is the IR code of your IR remote ∧ V > < four keys.
I will tell you solution after I got your answer.
Thank you for getting back with me. I did output in the serial monitor. Here’s the code output:
∧ = 3D9AE3F7
V = 1BC0157B
> = 449E79F
< = 8C22657B
now I understand what is your problem. Your remote sends different IR code to our receiver. Ok, that is easy to fix.
Please open your lesson2.ino file, you can see line 10,11,12,13 as follows:
#define IR_ADVANCE 0x00FF18E7 //code from IR controller “▲” button
#define IR_BACK 0x00FF4AB5 //code from IR controller “▼” button
#define IR_RIGHT 0x00FF5AA5 //code from IR controller “>” button
#define IR_LEFT 0x00FF10EF //code from IR controller “<" button
Change above code to follows which match your IR code :
#define IR_ADVANCE 0x3D9AE3F7 //code from IR controller “▲” button
#define IR_BACK 0x1BC0157B //code from IR controller “▼” button
#define IR_RIGHT 0x449E79F //code from IR controller “>” button
#define IR_LEFT 0x8C22657B //code from IR controller “<" button
Also please double check the key > , this key code should be 8 digits , but you only give me 7 digits. I double you might have typed wrong code. If I am correct, please put change line 12 with correct code.
Let me know if above code works.
I just assembled this kit and I’m trying lesson 2 (with the IR). The code itself seems to want to use pin 12 for the IR receiver and the code to simply print the codes received wants to use pin 2
I think these are for the line following sensor – no ? the IR is connected to Pin 10
Nothing works – not the original code or if I change your debugging code (to print just the codes) to use pin 10
any suggestions ?
hi, mattganis,
You are right, the code has some error, you need to change the receiver port to 10 instead of 12 in our code line 12.
If it still not working , then please read following link:
https://osoyoo.com/2017/09/21/2wd-robot-car-infrared-remote/#tbst
It will ask you to run a testing program irdemo.ino , open your Serial monitor and run irdemo.ino file, press ^ key in your IR controller, let us know if you can see any response, if not , please email to [email protected] and we will give you solution.