表示方法の新しい考え方ですが、このような考え方が瞬時に出来なければ
弱電で良いものは作れないのですよ。

|
最安価・最簡単で解読ミスのないな赤外線 RC信号解読(器)です。コードの表示にLCD 表示器も
パソコンも必要ありません。従ってパソコンにデータを取り込んでナントカ文字を解読する手間も
いりません。 NECフォーマット用ですが、これは使用を予定している RC送信機がたまたま NECフォーマットで あったためで他意はありません。NECフォーマットを使用している RC が多いという話もありますが、 当方にはそうも思えません。部屋にある 10本程の RC送信機を調べてみたところ、NECフォーマットは 2本のみでした。NECフォーマットが多いということはなさそうです。同じメーカーでも機種により、 また新旧でフォーマットが違っていたりばらばらです。まあメーカーにとって RC の位置付けとは そんなものでしょう。SONYが独自のフォーマットを使用して いることは知られていますが、AIWA が SONYフォーマットを使用していないのは意外でした。 ソースコードの僅かな手直しで他のフォーマットにも対応可能なのは言うまでもありません。
解読はNECの推奨している方法にほぼ準拠しており、いい加減な自己流ではありません。
なお文中の数値は 1MHz クロック、タイマー1 のプリスケーラ値は 1 の場合です。
パルス幅測定
コードを解読するためにはまずパルス幅を測定する必要があります。測定ですからタイマーの基準
クロックは正確でなければなりません。周波数カウンタにより基準クロックを合わせます。
動作すれば良いんだといういい加減な考え方の基準クロックでは、RC信号のパルス幅がどうのこうのと
言うことはできませんし、また言ってはなりません。
パルス幅の表示は 8bit + 8bit のデータを切り換えて 8ケの LED に表示します。具体的には
CCPR1H を 10sec 出力し、その後 CCPR1L を 10sec 出力しています。二進数から十進数への計算が出来る
人なら誰でも読むことができます。時々刻々変化するデータの値を、短時間に何度も読む
わけではありませんので、これで十分でありまた Capture Register の値を直接表示するため、
誤差の入り込む余地がありません。4MHz X'tal を使用した場合、信号が安定していれば 1μs 単位
で正確にパルス幅を測定することが出来ます。
結果は、比較的正確です。NECフォーマットではリーダー部の High は 9ms、Low は 4.5ms ですが、
手持ちの RC送信機では High は約 9.1ms、Low は 4.4〜4.5ms となっています。High は 8.7ms 位で
判定していること、及び電池電圧が少し低下した場合のことを開発者が考慮しているのでしょう。
RC信号受信の場合。リーダー部 High のパルス幅で NECフォーマットかどうか判断します。
リーダー部の High は 9ms てすので、CCPR1H の値は 35 (023h) となります。CCPR1H の値が
022h 以上であれば NECフォーマットと判断し、リーダー部 Low のチェックへ進みます。
022h 以下の場合は受信待ちへ戻ります。リーダー部の Low は 4.5ms (リピート信号では 2.25ms)
ですので、約 3ms で初期信号かどうか判断します。
即ち 3ms 以上であれば初期信号と判断し、カスタムコード受信へ進みます。リピート信号の
場合受信待ちへ戻ります。受信機ではリピート信号をチェックしてチャンネル・音量等の
UP-DOWN 制御を行います。
8bit + 8bit の 16bit でカスタムコード1 とカスタムコード2 からなっています。使用方法は
メーカーにより異なります。手持ちの SANYO テレビ用 RCでは、カスタムコード1 の反転データが
カスタムコード2 に入っています。また Made in Korea のケーブルテレビターミナルでは、カスタム
コード1 は 00000000 でカスタムコード2 にデータが入っています。
8bit のデータ部と 8bit の反転データ部からなっています。判定及び書き込みはカスタムコード部と
同様です。
反転データ受信後照合し、誤りがあれば受信待ちへ戻ります。具体的にはどちらかを反転してSubtract し、
結果が 0 (STATUS,Z=1)であれば良していうことで次の処理へ進みます。
カスタムコード1 とカスタムコード2、データコードをそれぞれ 10sec ずつ 8ケの LED に表示し
ます。ほとんどないでしょうが 10sec で読み取れなかった場合、同じボタンを押せば再表示します。
スイッチを使用して見たいデータだけを表示することも可能ですが、必要性が薄いためしておりません。
そのものずばり "0" は消灯、"1" は点灯ですので極めて分かりやすい。表示時間は自由に変更可能です。
またリーダー部のパルス幅やフレームスペースの長さも必要であれば容易に表示に加えることができます。
何れも CH1。カスタムコード1、カスタムコード2、データコード、反転データコード |
ケーブルテレビターミナルが電源 OFF 時にも 10W 程度電力を消費し、精神衛生上宜しくない。
販売者は電流を流しておかないと電源を入れてすぐに正常に動作しないと言いますが、電源 OFF 時の
チャンネルを記憶していないだけで、他は正常に動作します。そこで同じ RC送信機で外部の電源
スイッチを制御してやろうと考えたものです。幸い RC送信機には使用していないボタンがいくつも
あります(上級機或いは他機種のために開発した RC送信機をそのまま使用しているのでしょう)。
受信機 ケースは鉄製。重量があり丁度良い。 アクリル板 (2mm)。綺麗にカットするには PCB カッター等が必要。
X'tal を実装しているが使用していない。 基板サイズ 約 81 x 61mm。 消費電力 -0.2W。
基板は金を出せば比較的 reasonable な価格 RC信号を解読して喜ぶために製作したものではありません。当方はそういう必要のないバカな ことは致しません。
赤外線受光ユニットを一ケ不注意から駄目にしてしまいました。購入したものの使うことが
出来なかったという人がいれば連絡下さい。未使用であれば秋月で購入したと同価格でニケ位
購入します。 |
|
PIC を始めて半月少しの頃に書いたもので、完全オリジナルです。PIC の命令は簡単ですので、
馬鹿でもアホでも容易にオリジナルのプログラムを書くことが出来ます。
なおこれより少し前に、完全オリジナルの二進数から十進数変換を使用して、7Seg LED 表示
プログラムを書いています。 雑誌等のプログラムをコピーするしかなかったら悲しいですね。悲惨です。 他人の作ったプログラムのコピーでは全く価値がありません。一月位してもある程度のオリジナル が書けなければ、馬鹿・アホ以下なのです。潔くあきらめしょう。 プログラミングにはアナログ技術のようなノウハウは必要ないのですから。 入門書等には書いていない、"一番知りたいこと" も書いています。無断転用しないように。 |