![]()
本サイトを見ていただいた方から、ここに載せているビットマンをフリスクケースに入れました、という写真をお送り頂いた。で、自分でも作りたくなり、このプラットフォームを少しバージョンアップしてみました。
プレゼンタイマで左右逆挿し可能が意外によかったので、今度は4方向表示。立てて使うとデスクトップのマスコットによい。
4つのアプリを一つにして、DIPスイッチで切り替えられるようにしたソースをアップ(2014.9.6)。
基板・部品頒布、再開(2014.11.24)。遊んでみたい方に頒布します。
回路図
簡単な回路です。LEDはフリスクケースの蓋を透過できる明るさにするためにトランジスタで駆動。また、電力もそれなりに喰うのでUSB給電とした。長時間の動作も想定。
入力はタクトスイッチ1個と2ビットDIPスイッチの3ビット。この3ビットで色々できるようにする。圧電スピーカはPWM駆動可能なピンに接続。
拡大図、無保証です。
マトリクスLED
小型マトリクスLEDはaitendoから入手したが、[KEM7088BSR] アノードコモンというもの。
期待していた接続と違っていた。詳細図には2つの接続があるが、型番が同じでどっちだか判りづらい。図の下側の接続で基板を作成した。
![]()
基板設計
PIC、マトリクスLED、トランジスタなどのフットプリントを作成するのが結構手間。
トランジスタはネットで探したデータシートと一致するサイズがなかったので、実測して適当に作成。
![]()
基板
FusionPCBで10枚だけ依頼。小さいが長さが50mmを越えるため、50mmx100mmサイズとなり少し高い。
フリスクケースに収めるために厚さ1mmで作ってみた(デフォルトは1.6mm)。
![]()
部品実装
小さいチップ抵抗・トランジスタから実装。念のため、クリスタル実装位置にカプトンテープを貼る(半田付けの熱に気をつければセロハンテープでもよいと思う)。
挿入部品はできるだけ裏にピンがでないようにカットして実装。
マトリクスLEDは基板右下の小さな○マークが1番ピン(LEDの型番が印字してある面が写真の右辺になる)。
![]()
PIC実装
PIC16F886はSSOP表面実装タイプを使う。ピンピッチが0.65mmと狭いので半田付けが大変。
![]()
実装完了
チップ部品、PIC、挿入部品の順に実装し、最後にUSBコネクタをつけて基板完成。
USBコネクタはなくてもICSPで電源を供給できるのでデバッグ可能。
写真右下の黒い四角が圧電スピーカ。
![]()
ケース
LEDが蓋に密着するように基板とケース間にスペーサを入れる。3φの樹脂製ワッシャを切って使用。ビス穴は2φ。
![]()
蓋加工
フリスクを出すときに蓋が開きすぎないようにするストッパ(矢印)が邪魔なので削る。
黒い点は、マトリクスLED位置のマーク。
![]()
蓋加工
ストッパだけでなく、LEDの光りが透過しやすいようにLEDより少し大きな範囲を若干(0.2mm位)ざぐってみた。
黒いフリスクケースのほうがコントラストが高くなってよいと思ったのだが、まったく透過せず断念。
![]()
裏側
2φの皿ビスで基板を固定。
![]()
完成
[Tips] ケースのラベルはドライヤで暖めると綺麗に剥がれる。
![]()
プログラム作り
DIPスイッチで表示方向を4方向に切り替えるためのビット行列変換が少々手間(ソース行数を喰う)。
「ハッカーのたのしみ」 [単行本] に条件分岐を一切使わない素晴らしいアルゴリズムがあるのだが、8ビット処理では速度的な効果がない。
この本に載っていたビット列の反転処理を実装してみたが、条件分岐を使った方が速いので不採用(一応ソースにコメントアウトして載せてある)。
DIPスイッチは方向指定以外にも応用可能です。2ビットなので4つのアプリを組み込んでおいて切り替えることもできる。
![]()
デバッグ
ICSPで書き込み、デバッグ。
アプリケーション色々
![]()
ドット絵アニメ
8x8ドットからなるドット絵を繰り返し表示。1枚ごとの表示時間も設定できる(ソース内)。
タクトスイッチ操作で複数のアニメを順次切り替える。表示中のアニメはEEPROM内に記憶するので、次回給電時は、そのアニメを再生。
デザインのセンスがあれば色々楽しめると思う。
![]()
メロディ発生器
PWMを使って音程にあわせた周波数を作って圧電スピーカを鳴らす。マトリクスLEDには音程表示。
ファミマ入店音と、はやりの"Let It GO"(アナ雪)のさび部分を入れてみた。音程と長さを指定できるのでお好みのメロディを組み込むことも容易。ただし、圧電スピーカなので低い音は音量が小さい。
スイッチ長押しで曲を選択でき、その際に曲をあらわす8x8ドットの絵を出すことができる(今回は F と L の文字)。
![]()
スクローリング・クロック
時計機能を入れたくてX'tal発振にした。長時間の時間測定が不要ならPIC内蔵発振でも可能。その際はX'talを実装しなくてもよく、Configで内蔵発振にする。
スイッチ長押しで時刻設定モードになる。まず「時間」の設定、さらに長押しすると「分」設定(5分刻み)、さらに長押しで設定完了。
![]()
ラーメン・タイマ
タイムアウト時にチャルメラのメロディが流れるラーメンタイマ。
長押しで時間設定モードになり(分刻みで1分〜10分)、長押しで設定完了。
USB給電時開始にタクトスイッチを押していると、表示が「分」「秒」が切り替わる表示モードになる。
おまけ(自在USBアダプタ)
表示方向を自由に変えられるアダプタ。500円ほどだった。100均にも似たようなものがあるらしい。
各アプリのソースプログラムです。バグがあるかもしれません、無保証です。著作権は留保しますが、改変などご自由にどうぞ。
(1) ドット絵アニメ ソースプログラム
(2) メロディ発生器 ソースプログラム
(3) スクローリング・クロック ソースプログラム
(4) ラーメン・タイマ ソースプログラム
上記4つのアプリを一つにしたソースプログラム(2014.9.6)
DIPスイッチでアプリを切り替えます。その代わりDIPスイッチでの表示方向切り替えはできません(ソースの先頭で定義)。手抜きのマージなのでコードの重複が多いです。
動画
基板・部品頒布、再開のお知らせ
(終了しました)2015.10.20作ってみようと思われる方がいらしたら以下でお分けします。
基板のシルクに対応した部品表です。シルクが小さくて擦れていて読みにくいので、シルクデータです。
(注)PICのピンピッチが狭いので半田付けが多少難しいです。また、PICにプログラムは書き込んでありません(色々と書き換えて遊ぶものなので)。
■基板+電気部品一式
\1,800(送料別\200:定形外郵便・クッション封筒でお送りします)
基板、PICマイコン、マトリクスLED、X'tal、圧電スピーカ、スイッチ、チップ部品などフリスクケース以外の電気部品一式を含みます。
(マトリクスLEDは、標準は赤色ですが、数に限りがありますが以下の黄色、緑色もあります。黄色・緑色は輝度が赤色より低いので、フリスクケースをあまり透過しません)
黄色(黄緑)マトリクスLED(2個のみ) 緑色マトリクスLED(1個のみ) 緑色で組み立てたもの ご質問やご希望の方は以下までメールください。折り返し、振り込み先などご連絡します。なお、振り込み手数料はご負担ください(ネット銀行からですと、月に何回か迄は無料で振り込めることが多いです)。
![]()
迷惑メールフィルタを使っているので、件名を「フリスクPIC基板希望」などとしてください(HTMLメールは迷惑メールと認識される確率が高いです)。
会社勤めをしていますので、メールの返事は夜か朝になります。出張等で返信が遅れることも予想されますがご理解ください。余り長いこと返信がない場合には、迷惑メールと判断されたかも知れませんので、書き方を変えて出し直してみてください。
お送り頂く個人情報は適切に管理し、一連のやり取りが終了したら削除します。
以上