« 暗闇に一筋の希望 VerUp計画 完結編 | トップページ | 恐るべし店発見 »

2011年9月 1日 (木)

エアコン物語

皆のもの、大儀。
実は前からやってみたかった外出先からの家電制御。
具体的には、家に帰って来た時にエアコンが効いていて、涼しい~。
もぅ夏も終わろう言うに。。。
まぁ冬のためじゃ。
節電に逆らう。
帰宅直前に携帯電話からエアコンの電源入れられりゃよろし。
やろうとしたきっかけは、これ
ポイント。
ColdFireはEthernetに接続できる。つまりLANが利用できる。
MCF52233には256KBのフラッシュROMが内蔵されているが、付録基盤では、その半分の128KBに、C言語インタプリタ(SilentC)とHTTPサーバが書き込まれている。
PCとは、telnetやtftpでの接続と、webブラウザでの接続が出来る。
ほこりをかぶった買ったままの部品もあるしとりあえずやってみるか。

まずは、エアコンの電源ON/OFFは赤外線リモコンで操作しているので、その信号データの解析から始めよう。
ロジアナを引っ張り出して調べてみた。
こちらもほこりを振り払い、目覚めよ!
赤外線信号はLOWアクテイブ。
一番左の絵について、
1サイクル(×~○)が約100msぐらい。この後に、間があってまたデータがくるんだが、おさらくリピートコードで同じデータだろう。
次の絵について、
最初のLOW時間は4.5ms、他のLOW時間より明らかに長めでリードパルスという。水先案内人みたいな。
外気中に38Khzの赤外線成分があることから、ノイズと切り分けるためある程度の時間アクテイブにしているのだろう。
リードパルスの後に続く、LOWからLOWまでの時間でデータが表現される。2msのものと1msのものがあり、これがデジタル値"1"と"0"に相当する。
最初の方のデータをおっていくと、
"1" "0" "1" "1" "0" "0"....みたいな
写真を拡大してみると、全部で48bitあるようだ。
他のボタンの信号も見てみたい。
そこで信号解析モジュールなるものをmikroCでさらっと作ってみた。
リモコンデータ受信でLCDに表示するはずだが表示しないw
mikroCは、割り込み処理のPCデバッグは強制ジャンプさせて実行させるので、本来の割り込みレジスタの仕様とはリンクしない。
それに対して、MPLAB純正アセンブラデバッグだとタイマー割り込みもクロックに合わせて時間どうりに入るし、なおかつエッジ変化割り込みのシュミレーションまでできてしまう。
HWデバッグができない以上、PCシュミレータ上でやっつけるしかないわな。
PICアセンブラはわからんという武将達よ、案ずるな。
何もコードを一から作れとは言わん。
mikroCがはいたINT HEXファイルをアセンブラに変換してくれるMikadoというソフトを使うべし。
そしてMPLABの使い方は。。。調べてくれw
シュミレーションの結果、以下がポイントだった。
・PICのピン変化割り込みというのがあり、利用したがRB4~RB7のピンに対してのみ有効であること。
・ピン変化割り込み(INTCON.RBIF)が発生した時は、一度PORTBを読んでから割り込み要因をクリアしないと、また割り込みが入ってくる???
MPLAB PCシュミレーションではそういう動きになった。
つまり、読む前にINTCON.RBIFをクリアする命令を実行してもINTCON.RBIF bitは0にならないようだ。
このシュミレータ細かくよくできているな。
感心。
・それとタイマー割り込みを100usにしたが、割り込み処理でC言語コードのオーバーヘッド分引きずられており、回数管理を少なめに判断するようにした。
以上、ソフトの質はかなりいいかげん。
しかし48bitのデータは解析できるようになったわけだ。
最後の絵は、リモコンの運転開始ボタンを押した時の信号データじゃ。

Pap_0001_2 Pap_0002_2 Pap_0003_2 「prj9.C」をダウンロード

« 暗闇に一筋の希望 VerUp計画 完結編 | トップページ | 恐るべし店発見 »

コメント

信長殿
prig.cダウンロードしようとしたが、文字化けでNGです
アドバイス宜しく!!

コメントを書く

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

トラックバック


この記事へのトラックバック一覧です: エアコン物語:

« 暗闇に一筋の希望 VerUp計画 完結編 | トップページ | 恐るべし店発見 »