« 2011年8月 | トップページ | 2011年11月 »

2011年9月

2011年9月22日 (木)

久々の液晶物語

皆の者、大儀。
ちょっとエアコン物語から外れるが、秋葉に行った時にGLCDを買ったのでこれで遊んでみたわい。
秋月には128x64dotのGLCDがたくさんあるが、気をつけるべき点はピンピッチが2.54mmと2mmがある。
ブレッドボードやユニバーサル基盤では2.54mmの方が使いやすい。
参考にしたサイトはここのPIC、簡易オシロV2(LCD:128×64)。
簡単なアナログ波形が見えてなかなか面白い。
ただサンプリングしているわけでなく、リアルタイムにアナログデータを読んですぐ表示するだけ。
数msぐらいなら十分捕らえられるか。
マイコン出力のパルス波形を入力すると、HIGH←→LOWの切り替わりで線がちぎれるw
まぁ問題なく動作したが、せっかくのGLCDなので絵でもだしたくなるのが人情。
MikroCのGLCDライブラリを使うとDemoLimitになるので、自分でプログラムコードを作ってみる。
MikroCを使っている武将は、プログラムサイズ2Kwordの境界で頭を抱える。
128x64dotつまり1024byteコード領域を使用するわけだから、表示画像も1画面分しか入らない。
いいかげん正規版を買えってかw
まぁFree版MicroChip純正のC言語Builderを使えばよろしがな。
確かMplab C30?
しばらくやってないと忘れる
使い方は。。。
忘れたw
このGLCDとマイコンの接続だが、例のaitendoさんで見つけた10芯ケーブルが100円やと!
それと文字をbitmap化する簡単な方法を発見
1.windows ソフトのメモ帳などで文字を書く、フォントサイズを調整する
2.画面をハードコピー(Alt+PrtScreen)
3.windows ソフトのペイントに貼り付け
4.キャンパスの色とサイズ変更、幅128、高さ64、ピクセル、そして白黒設定
5.できあがったファイルをここに書いてあるグラフィック画面変換ツールでtxt化する
6.できあがったファイルをプログラムコード上に貼り付ける
Ts3s0110 Pap_0007 Ts3s0112

2011年9月20日 (火)

恐るべし店発見

皆の者、大儀。
久々の秋葉出陣。
かれこれ、1年ぶりぐらいか。。。
天気もよく歩行天も復活しておったわい。
ただ残暑であついw
今回の目的は、新しくできたお店の調査である。
以前、ネット通販で液晶を買った時に使ったお店だ。
なぜこの店かと言うと、これだ。
液晶が99円やと!
通常販売価格\500。。。なんなんだ。
恐るべし開店セール。
だもんで、ほかに掘り出しもんがないか物色していたらあるぞあるぞ!
買ってきたものを並べてみた。
RS232Cコンバータ \900⇒\199
キーパッド \500⇒\99
PMモータ \300⇒\9
LEDランプモジュール \100(高輝度/ケース付/1モジュール3LED、5個入りだとw)
ゼロプレッシャーにしても、秋月より安い。
なんなんだこの安さは。
店には、日本語カタコトのおねーさんがふたりに店長らしきおっさんがおった。
なるほど。。。
安さの理由が少しわかった。
でも、たかだか100円のケーブルを一生懸命探してくれたので、まぁいい店なんだろう。

Pap_0010 Pap_0009 Pap_0008

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」をダウンロード

« 2011年8月 | トップページ | 2011年11月 »