目 次
プラットフォーム
前回の20ピンのPIC16F689 1個で8x8マトリックスLED制御をネタにマトリックスLEDで遊ぶプラットフォームを作ってみた。ハードは汎用的に作っておき、ソフトを書き換えて遊ぼうというもの。
ソフトを変える都度、PICの差し替えを行うのは面倒なので、PIC Kit2を使ってICSP(基板に実装後にプログラム)で書き込む。ICSPは初めてなのでブレッドボードで実験してみて、回路図を書き直す。
I/Oポートのシンク電流は最大25mA。1列で最大8個点灯することを考慮すると、1LEDあたり3mAにしなければならず少し暗い。8個光ることは滅多にないのと、ダイナミック点灯なので多少の定格オーバは大丈夫だろうと小さめの抵抗を選んだ。
![]()
![]()
ガラエポのユニバーサル基板を必要な大きさにカット。カッターで表裏からキズをつけて折るが、結構大変。折った後は紙ヤスリで平らに削る。小さな基板はスイッチと書き込み・給電用の端子を取り付けるサブ基板。
今回使ったマトリックスLEDは裏側がかなり窪んでいたので、実装後に内側に他の部品が入る。そこで、PICと抵抗、パスコンを内側に実装することにした。PICの背がほんの少しぶつかるので、脚の部分の基板を1.5ミリのドリルで軽くざぐった。PICの直付けも初めて。念のため、ブレッドボードで動作確認済みのPICを使った。
![]()
![]()
左下写真のように、PIC、抵抗がマトリックスLEDの下に隠れる。
![]()
![]()
サブ基板にタクトスイッチ、スライドスイッチ、ICSPと給電用の端子を実装する。各部品のピンからは、抵抗のあまったリードを引き出しておき、メイン基板と繋ぐ。
メイン基板へは、リードのハンダ付けと、エポキシ接着剤で固定。ガラエポ基板なので相性がよく、しっかり固定できる。
![]()
![]()
プラットフォーム基板なので音を出す機能も載せようと、圧電サウンダを付けることにした。これは左下写真の100円ショップで売られていた、窓やドアが開くと大きな音で鳴るアラームから取り出した。元々、リードスイッチ(磁石でON/OFFするスイッチ)が欲しくて、このアラームを購入していた(すでにリードスイッチは取り外し済み)。リードスイッチ、圧電サウンダ、さらにスライドスイッチも取り外せるので電子工作用にはお買い得。
圧電サウンダは基板の裏側に搭載。あとで取り付ける樹脂板に両面テープで貼り付けた。が、音が小さい。大きな音を出したいときは、もっと堅いものにしっかりと付けた方がよさそう。
![]()
![]()
左下写真のようにPIC Kit2を挿して、プログラムできる。PIC Kit2からはターゲットの電源も供給できるので、そのまま動作確認も行えるので便利。このプログラム方法に慣れてしまうと、ソケットを使ってプログラムするのに戻れそうにない。
右下写真は、100円ショップで購入したUSB携帯充電器から電源を供給するケーブル。ケーブルの先を切り取り、2ピンのコネクタを取り付けた。2ピンだと挿す場所を間違えそうなので、そのうち5ピンのコネクタに取り替えたい。
![]()
![]()
基板の表と裏をクリップボードから切り出したスモークグレーの樹脂板でサンドイッチ。適当なケースが見つからなかったのでこんな感じ。右下がLEDが点灯している様子。
この状態でもPIC Kit2を挿すことができ、プログラムを書き換えられる。
![]()
![]()
アプリケーション1: ワーム
マトリックスLED内を這い回るワーム。ソフトはコレ、無保証です。
アプリケーション2: びっとまん
びっとまにあのオリジナルである bitmanの動画を youtube で見つけたので、動きだけ、似たようなものを作ってみました。「びっとまにあ」のソースとは別物。
回転方向を調べるセンサは載せていないのと、動きのパターンも途中でめげてきたので、踊る、走る、Helloメッセージ(モールス信号付き)のみ。ソフトはコレ、無保証です。
![]()
アプリケーション3: オイラーの等式
ファインマンさんがオイラーの宝石と称した、オイラーの等式 eiπ + 1 = 0 を表示する数式掲示板。オイラーの等式以外にも幾つかの数式をランダムに表示します。
ソフトはコレ、無保証です。
![]()
アプリケーション4: 脳トレ
日々、減っていく脳細胞を少しでも活性化するための脳トレーナ。数式が表示されたら、答えの表示よりも早く答えを言う。子供と一緒にやると少し盛り上がる。
10問で区切り、繰り返します。足し算、引き算、混在モードを切り替えられます。ソフトはコレ、無保証です。
![]()
アプリケーション5: ライフゲーム
ココから移植したライフゲーム。輝度は変わらずシンプルな動き。
生命が無くなったらランダムに新しい生命を生みます。ソフトはコレ、無保証です。
![]()
アプリケーション6: ラーメンタイマ
カップラーメンなどの調理時間を計る1〜10分タイマ。10分程度なら内蔵発振でも十分な精度。
タクトスイッチを押すことで1分毎の時間設定。設定した時間はEEPROMに記憶し、次回はその時間が初期値となる。秒表示に2モード(10秒毎に減っていくバー表示、分と秒の切り替え表示)。ソフトはコレ、無保証です。
![]()
※動画は途中でアラーム音がでます。
以上