いまさらだけど、PCD8544搭載の、NOKIA 5110液晶。
以前は3.3V版のArduinoが無くて、ほったらかしに
してあったんだけど、ふと、改めて使ってみたく
なったので、繋いでみる。
http://playground.arduino.cc/Code/PCD8544
サンプルスケッチはplaygroundにあるので、これを
元にして、文字表示+ドット絵が描けるライブラリ
に改造しようという魂胆。
この液晶コントローラは、フォントはもちろん入って
ないのと、さらにはVRAMからの読み出しも対応して
いないので、このあたりを含めてArduino側で行う
必要がある。で、VRAMをSRAM上に確保。504バイト。
んで、文字表示はそのまま文字表示のロジックを
活かしつつ、VRAMにも転写するようにしておいて、
ドット絵を描くときに、それと重ねて表示するって
いう方式に。
とりあえず、pset、preset、xor出力が出来るような
関数を書いてみた。
配線の様子。
これでいいのかな?とりあえずは表示できてるけど。
んで、psetをforループから呼び出す形で斜め線を
描いてみたのがこれ。
グラフィックは、84×48ドット内で位置を指定して
表示するんだけど、それ以外の範囲の値を関数に
指定しても、そのまま無視して処理しちゃうとか、
あまりスマートな処理ではないので、これでいいのか
どうなのかは微妙。
まぁ、描画させてみて、それほど処理時間を食ってない
感じだったので、線引き処理もこれを使えばいいかな。
(ArduinoのデジタルI/Oは遅いから、どんなもん
かなぁと思ってたんだけど)
とりあえず、もう少しスケッチを綺麗に整理してから、
アップしたいと思います。
んで、コイツを使って、簡易的なスタンドアローン
オシロでも作りたいなぁというのが、いまさら5110
を持ち出した理由。
http://filear.com/?p=211
既に似たようなものがあるので、いまさら感はあるん
だけど、スケッチを眺めると、サンプリング速度は
タイマ管理でキチンとされていないっぽい感じがする
ので、タイマ割り込み使ってそれなりに正確な
タイミングでサンプリングしたいところ。
できれば、やっぱFFTも載せたいだけど、FFTで使う
メモリ以外にも、VRAMその他色々なところで食う
ので、どこまで載せられるのか…
せいぜい、32点FFTか、できても64点FFTまでだろうな。
一番の問題は、ADCのサンプリングレートだな。
3.3Vだと8Mhz動作だし、元々フルスペックで
サンプルしても、最大精度でサンプルすると遅い
から、精度は犠牲にしないといけないだろうな。
それにしても、Arduinoは色んな資源を利用できて、
モノをさくっと作れるのがいいな。やっぱ。
|