「パソコンで赤外線リモコン(1)」で取得したリモコンのデータを送信するためのProcessingのアプリ(図)を作りました

赤外線データの送信用のArduinoのプログラム:受信の時と同じく、Okiraku Programmingさんの「Arduinoで学習リモコン」のページにある受送信のプログラムを、送信部分だけ切り抜いて、少しモディファイしたものを使いました。
下のダウンロードできるファイルの中の「InfraRedSender」です。
- Processingとのやり取りに邪魔になるので、Serial.printは、すべてコメントアウト(もしくは、削除)
- void sendSignal()の中を少し改良?
void sendSignal() {
for (int cnt = 0; cnt < 512; cnt++) {
unsigned long len = data[cnt]*10; // dataは10us単位でON/OFF時間を記録している
if (len == 0) break; // 0なら終端。
int hl=1-(cnt&1); //Mofified
unsigned long us=len+micros(); //Mofified
do {
digitalWrite(ir_out, hl);// cntが偶数なら赤外線ON、奇数なら0のOFFのまま
delayMicroseconds(8); // キャリア周波数38kHzでON/OFFするよう時間調整
digitalWrite(ir_out, 0);
delayMicroseconds(7);
} while (long(us-micros()) > 0); // 送信時間に達するまでループ
}
}
赤外線LED
赤外線LEDは、以前、秋月から買って持ってたものを使いました。100個入りで以下のスペックです。
- VF:1.25V(@20mA)
- ピーク波長:940nm
- 半減角:15°
- 推奨電流:20mA
1.25V@20mAということなんで、とりあえず3つ繋げました。
で、半減角が15度。資料によると図のような感じだそうで、

角度を変えると、ほとんど光って見えません。送信時は、赤外線LEDをちゃんと受信機の方に向けないと、うまくデータが届かないようです。
赤外線データの送信用のProcessingのプログラム:下のダウンロードできるファイルの中の「RZ1IRRemocon」というのを作りました

InfraRedSenderは、最初がスペース、最後が0+スペースのデータを受け取って、LEDを点減させる仕組みになっています。前回得たデータを、以下のようにStringのArrayにして、
String[] data={
" ",
" 500 100 50 50 50 100 50 50 ...略... 50 50 0 ",
" 500 100 50 50 50 100 50 50 ...略... 100 50 0 ",
" 500 100 50 50 50 100 50 50 ...略... 100 50 0 ",
...略...
として、クリックされたボタンの番号に合わせて、
Serial.write(data[btn]);
する仕組みです。
roboBASICのプログラム:ロボザックの赤外線リモコン用のプログラムをMR-C3024に転送しておけば、実際にロボザックでテストできるんですが、サクサクとテストできないので、受信した値を第一変数に入れるだけのプログラム(Infrared.bas)を作って、RZ1Basicのコントローラーデータ取得で、確認しました
- 取得データは第一変数である「SRAM 0x0140」にセットして「取得開始」させます。
- RZ1IRRemoconを起動して、ボタンをクリックすれば、サクサクと、受信状況が確認できます。
MiconoIRDemo:サンプルコードをダウンロードできるようにしました

各自の責任においてご利用下さい。
【ダウンロード 】
内容:
- Arduino
- InfraRedReceiver:リモコンからデータを取得する為のArduinoのコード
- InfraRedSender:赤外線LEDを点減させて、データを送信する為のArduinoのコード。
- Processing
- RZ1IRRemocon:ロボザックの赤外線リモコンのインターフェイスを持つProcessingのコード。Arduinoには、InfraRedSenderのコードを入れておく。
- roboBASIC
- Infrared.bas:受信テストの為のコード。第一変数に受信した値が入る様になっている。
- References
------------------------------------------
最近のコメント