![]()
0.96インチの小型有機ELパネルを使ってペントミノ・パズル・ソルバーを作ってみました。
10年前の初代の2色LEDから、2代目のフルカラーLEDに続き、ようやくグラフィックで表示できるようになりました。テクノロジは進化していますが、やってることに進歩がない。
製作過程はブログに載せてます。
![]()
プログラム
ソルバ部は2代目のプログラムを流用し、OLEDへの表示部分を新しく書いた。PIC16F1827を使ったので内蔵クロック 32MHzで動作させて大幅スピードアップ、また新しい命令が使えたこと、ダイナミック表示のための割り込み処理が不要になったことでも若干スピードアップしている。
ソースプログラムです。バグがあるかもしれません、無保証です。著作権は留保しますが、改変などご自由にどうぞ。
![]()
ブレッドボードで動作確認
表示できるようになった。
![]()
回路
簡単な回路なのでユニバーサル基板でも良かったが、表面実装パッケージを使うことにしたのでプリント基板を起こすことにした。基板CAD Eagleの操作を忘れないようにするためにも。
回路図拡大図です。I2Cのプルアップ抵抗(R1,R2)は、OLEDモジュール内に内蔵されているようで不要かもしれないが、一応載せておいた。部品表です。
![]()
基板設計
実は基板はPICのフットプリントを間違えて設計して発注してしまい、作り直して再度発注した。図は改版後のもの。
詳しくはブログ参照。
![]()
ケース切削
基板が届くまでの間にケース作りです。適当なケースが無かったのでアクリル板からCNCフライスで切り出して作ることにした。
![]()
ケース部品
本体(写真下2枚)は5mm厚、表蓋(写真左上)は1mm厚、裏蓋(写真右上)は3ミリ厚のアクリルからそれぞれ切り出した。
裏蓋の上辺にはストラップを通すためのU字型の溝を掘ってある。
![]()
ケース接着
裏蓋以外の3つのパーツはアクリル接着剤で接着するが、これが難しかった。上手く流れ込まない場所ができたり、気泡が入ったり、あふれたりする。何度もやって経験を積むしかないのか。
本体四隅にはM2ナットを埋め込んで、裏蓋をM2ビスで止められるようにした。
![]()
ケース研ぎ
CNCフライスで切り出したので側面が少し荒れているのと、接着剤跡もあったので、耐水ペーパで研いでみる。
400番、800番で研いでみた。
![]()
ケース研ぎ
さらにコンパウンドで研ぐ。以前、車のキズを消すために購入したものが残っていたので利用した。
コンパウンドは細目、中細、極細の3段階、ツルツルにはなるが、完全な透明にはならない。
![]()
基板組み立て
改版した基板が届いたので、PIC、抵抗、コンデンサを実装。先に述べたようにI2Cのプルアップ抵抗は無しでも動作したが、一応載せた。
![]()
基板組み立て(裏側)
裏には電池ホルダ、スライドスイッチ、タクトスイッチを載せる。
写真はISCP書き込みソケットがまだ実装していない様子(右端の5端子穴)。最後に実装しないと電池ホルダの半田付けができなくなるので注意。
![]()
動作確認
OLEDモジュールを仮に挿して、ISCPケーブルを差し込み、プログラムを書き込み、電源を供給してみる。
OLEDモジュールを実装してしまうと、PIC他の半田付け不良があっても直せないので、事前に確認しておく。
![]()
OLEDモジュール加工
OLEDモジュールのピンが長すぎるので、基板厚1mm程度にカットする。また、基板側の穴が少し小さかったので、四角いピンの角を削って刺さるように加工する。
![]()
基板完成
組み立て後、側面を上からみた様子。
![]()
部品一式
ケースと基板。
![]()
完成
基板をケースに収め、裏蓋をビスで閉じて完成。
ストラップは100均で購入したもの(10本くらい入っていて100円)。
![]()
動作中
タクトスイッチを押すたびにひとつずつ解く。スイッチ長押しで連続して解いていく。
動画
動画
初代からの進歩、メイキングを追加。
![]()
おまけ
OLEDモジュール習作のために作ったビットマップ表示機能も書き込んでみた(写真左)。QRコードも表示してみたが、ちゃんと認識された。ちょっとカメラのフォーカスが合いにくくて時間がかかるが。
![]()
こちらのソースプログラムです。バグがあるかもしれません、無保証です。著作権は留保しますが、改変などご自由にどうぞ。
ビットマップからアセンブラソースへの変換は、こちらのbmp2asm.plを使います。ビットマップ部分を差し替えればお好きな絵を表示できます。
おまけ動画