Arduino

うさぎ亭主 on 11月 15th, 2011

相変わらずリモコンの調査をしている。 Panasonic の CATV リモコンのコードがどうもおかしい。繰り返すが、日本のリモコンは3つに大別されるわけだが、そのどれとも違うコードを発信している。 リモコンコードはリーダと呼ばれる最初の発光〜消灯の長さで判別がつく。下記の T0 が最初の発光時間、T1 が消灯時間だ。最後の行が今回発見した Panasonic の CATV 用とされるものだ。 T0 T1 T (us) NEC 16T (8960) 8T (4480) 560 (NEC REPEAT) 16T (8960) 4T (2240) KADEN 8T (3520) 4T (1760) 440 SONY 4T (2640) 1T (600) 600 PANASONIC(?) 4T (3500) 4T (3440) 860 本来ならば Panasonic は家電協(KADEN)コードを使わなければならない。いや、それ以外を使うな!というつもりはないが。 おそらくこのリモコンを採用している機器は、Panasonic オリジナルではなく、どこぞの OEM 品に違いない。

Continue reading about Panasonicのくせに

うさぎ亭主 on 11月 11th, 2011

ここしばらくリモコンコードの調査をしている。調査に使用しているのは自宅にあった SONY RM-PLZ330D という学習リモコンだ。これにはあらかじめ100以上の機種のコードが記憶されているので、さまざまなコードを調べるのに便利だった。 「だった」と過去形なのは、調べているうちにどうもおかしいことに気がついたからだ。たとえば Pioneer 製の CATV チューナの十字キーが定義されていない。オリジナルのリモコンには付いているのに。おそらく OEM だろう、同じリモコンを他社でも使っているようだが、同様に未定義だ。リモコン選択コードがいっしょだから当然だが。 信用できないので、別の汎用リモコンを買ってきた。今度はオーム電機製の AV-R940N というやはり学習リモコンである。あらかじめ CATV チューナが登録されていることを確認しておいた。 さてこちらで試してみると、きちんと十字キーにコードが記憶されている。さらに出力されるコードもゴミが少なくキレイだ。 結論。SONY 製がダメダメ。 ところでオーム電機はいつの間にか AudioComm というブランドに変わっていた。いくら探してもオーム電機製が見つからず、諦めて別の汎用リモコンを探しているときに、手にとったのがたまたま探していたものだったという。勝手にブランドを変えるな。

Continue reading about 汎用リモコン

うさぎ亭主 on 10月 29th, 2011

Arduinoで作っていた赤外線リモコン解析ツールがほぼ完成した。 当初、Googleって見つけたサンプルどおりに、シグナルの立ち上がりと下がりの時間をmicros()で配列に格納しておき、後から解析するという方針で作っていたのだが、どうにもうまくいかない。デバッグ用にところどころSerial.print()を挟んでいるのだが、あるときから急に結果がおかしくなってしまう。 原因はArduinoの変数領域の少なさだった。 大人の科学の付録であるJapaninoはATmega 168Vという8ビットCPUを使用している。クロック8MHz、プログラム領域16KB、RAM 1024バイトだ。普段PCでのプログラミングをしていると、メモリのことなど考えもせずに使用するが、1024バイトでは4バイト長のlong配列256個しか取ることができない。 今回作ったプログラムがまさに、配列の要素128個をとろうとしていた。これに随所で宣言していたデバッグ用の文字列バッファで、スタック領域までもが壊れていたのだろう。 美しくないが文字列バッファはグローバルに1個宣言して使い回す、固定テキストをプログラム領域に追い出すなどを試みたが、あまり効果がない。記録方式を変えることでlongではなくintですむようにして、サイズを半分に減らすことができた。 プログラムはそのうちに公開する。

Continue reading about 赤外線リモコン解析ツールほぼ完成