カラー液晶

ロボカップも終わって、今日は部活で工作で遊んでいました。

後輩(takkun)の配線した液晶をとりあえず動かそうと。

使った液晶は、かの有名な

この写真の左上に写っている液晶、

http://www.aitendo.com/product/1239

128×128の500円のnokia液晶です。

 

WillcomのWiMAXのCMに出てくる液晶がnokia液晶にしか見えないと最近騒がれている、この液晶です。

 

何故かみんなあまり手をつけていないようですが、先人たちのお陰でかなりあっさり動きました。

Simさんのブログが最も役に立ちました。ありがとうございます。

午前中に配線が終わって4時ぐらいには任意の位置に任意の色で四角形を表示することが出来ました。

 

通信にはSPIを使っていますが、送信しなければいけない9bitのうち最初の1bitだけソフトウェアで無理やり送り、残りの8bitをハードウェアSPIで送るという形をとっています。

それでも書き換えは速いとは言えないですね……

おそらくaitendoのとこに上がっている動画よりは速いですが、すべて書き換えると3fps程度でした。

 

解像度が128×128でなく130×130だという噂が有りましたが、僕がやってみると131×130のように感じました。もしかしたら僕が間違っているのかもしれませんが、個体差なのではないかなとも思います。

 

バックライトについては、公式サイトに7-9Vとありますが、完全に充電したリチウムポリマー(8.4V程度)ではかなり暗かったです。バックライトが付いているとわからないぐらいに。

10Vかけるとかなり明るかったです。

この点はやはりすこし不便ですね。

 

先の基板に乗っているその他の機能(SDカード、MP3デコーダ)のプログラムはきっと後輩の矢魔火が書いてくれると信じて、そろそろ部活は引退の時期です……

でも、昔SHではやったことあるので、SDから読み込んだ画像を表示、位はやりたいかなー

バックライト付き i2c-LCD

I²Cでなく逆にi2cという表記に慣れてきて、また”アイ・スクエアド・シー”なんていう正式な読み方も忘れて”アイ・ツー・シー”としか読めなくなってきてしまった今日この頃、

ストロベリーリナックスで、i2c液晶のバックライト付きverが発売されていたので購入して使ってみました。

めっちゃかっこいいです(*´∀`*)

 

これ見た後にバックライトなしverを見ると「暗っ!?」ってなります。

 

問題があるとすれば、右から漏れてくる光が眩しいことですかね。

 

バックライトは5mAぐらいがベストと書いてあったので、5Vなら370Ωぐらいがベストですが、可変抵抗で調整できるようにしました。

 

当然ながら、バックライトなしと同じプログラムで動きます。

 

おまけ

はんだこて

部ではんだごてを購入しました。

 

HAKKOさんのFX-888です。

写真がめっちゃ綺麗にとれてます(拡大したらわかります)

 

ステーションタイプのはんだごていいですよね。細くて持ちやすいし、こて先温度が制御されてる。その上立ち上がりとか感動するぐらい速いです。HDDとSSDぐらい違います。

……高いですけど。

 

僕も一応持っているんですが、すごく旧型で……

大学行ったら買おうかなぁ。でもPCが優先かな?

バグ←JTAGのバカヤロー!!!

前回の前進の記事の後確認してみると、

なぜかモーターがひとつ逆転しないという事件が発生していました。

 

……おかしい。

僕のプログラムはforループで一ビットずつずらして制御していたのに、モーター1つだけ回らないなんて!

 

で、回路のせいだと思って見てみると、間違ってない。

そしてポートからの出力を見てみると、なんと、ずっとHighでした。

 

そしてプログラムとにらめっこを続けること三時間……結局間違いは見つからず、帰宅しました。

そしてお風呂で一つの仮説を思いつきました。
”ポート兼用機能がONになっているのではないか?”

 

さっそく検索、すると、同じ事で、同じポートで悩んでいる人が!

 

というわけで、ヒューズビットの設定が工場出荷時だとJTAGが有効になっていて、一部のピンがI/Oとして使えないようになっている、とのことです。

HFuseの上から2つめのビットを1にすればJTAGをオフに出来ます。

一般人は使わない人がほとんどだと思いますので、みなさんも気をつけてください!

 

僕の場合はATMega644PのPORTCの2-5ビット目でした。マイコンによってどこのポートかは違います。

 

……大会直前の貴重な時間をよくも奪ってくれたな……

PID制御

最近PID制御について勉強しました。

プログラミングの理論って言うか、型について勉強するのは初めてです。フーリエ変換とかも勉強してみたいですがまだ手が出せていません。

ネットでいろいろなページを見て勉強して各制御の役割は理解したのですが、結局積分制御(I)のがなぜ積分である必要があるのかという疑問が残っています……

前回の値を足すぐらいでいいんじゃないかなー?っていうのが僕の思いで、というのも積分って足していけばどんどん数値たまっていかないかな?って思うんです。
ぴったりあえばクリアするとしても、もっとも小さい制御のきく固定値を足したほうが確実なんじゃないか?って思います。

なぜなんでしょうね??