« パソコンで赤外線リモコン(1) | トップページ | iPhoneに喋らせて、ROBOZAKを動かす(5) »

パソコンで赤外線リモコン(2)

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

Screensnapz037_2

one赤外線データの送信用の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); // 送信時間に達するまでループ
  }

}

two赤外線LED
赤外線LEDは、以前、秋月から買って持ってたものを使いました。100個入りで以下のスペックです。

  • VF:1.25V(@20mA)
  • ピーク波長:940nm
  • 半減角:15°
  • 推奨電流:20mA

1.25V@20mAということなんで、とりあえず3つ繋げました。
Dsc00033
で、半減角が15度。資料によると図のような感じだそうで、
Safariscreensnapz031_2
角度を変えると、ほとんど光って見えません。送信時は、赤外線LEDをちゃんと受信機の方に向けないと、うまくデータが届かないようです。
Dsc00032

three赤外線データの送信用のProcessingのプログラム:下のダウンロードできるファイルの中の「RZ1IRRemocon」というのを作りましたhappy01paper

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]);

する仕組みです。

fourroboBASICのプログラム:ロボザックの赤外線リモコン用のプログラムをMR-C3024に転送しておけば、実際にロボザックでテストできるんですが、サクサクとテストできないので、受信した値を第一変数に入れるだけのプログラム(Infrared.bas)を作って、RZ1Basicのコントローラーデータ取得で、確認しましたpaper

  • 取得データは第一変数である「SRAM 0x0140」にセットして「取得開始」させます。
  • RZ1IRRemoconを起動して、ボタンをクリックすれば、サクサクと、受信状況が確認できます。

Rz1irremoconscreensnapz001

fiveMiconoIRDemo:サンプルコードをダウンロードできるようにしましたhappy01paper

各自の責任においてご利用下さい。

ダウンロード

内容:

  • Arduino
    • InfraRedReceiver:リモコンからデータを取得する為のArduinoのコード
    • InfraRedSender:赤外線LEDを点減させて、データを送信する為のArduinoのコード。
  • Processing
    • RZ1IRRemocon:ロボザックの赤外線リモコンのインターフェイスを持つProcessingのコード。Arduinoには、InfraRedSenderのコードを入れておく。
  • roboBASIC
    • Infrared.bas:受信テストの為のコード。第一変数に受信した値が入る様になっている。
  • References
    • 関連資料のリンク

------------------------------------------

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

|

« パソコンで赤外線リモコン(1) | トップページ | iPhoneに喋らせて、ROBOZAKを動かす(5) »

Arduino / Processing」カテゴリの記事

赤外線リモコン」カテゴリの記事

週刊 ロボザック」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/221673/46585380

この記事へのトラックバック一覧です: パソコンで赤外線リモコン(2):

« パソコンで赤外線リモコン(1) | トップページ | iPhoneに喋らせて、ROBOZAKを動かす(5) »