2009/08/30

電球色LEDで裸電球を作る

角型の電球色LEDを使って、電球っぽいものを作ってみました。

回路としては、AC100VでLEDのときとほとんど同じですが、電流制限コンデンサを1uFにしてあります。(2013/11/10: この回路だと若干問題があります。→改良版をどうぞ。)

LEDは何個でもいいのですが、とりあえず3個直列です。
基板に1個だけ乗せたのでは電球らしくないので、
3個を空中配線してフィラメント的な感じにしてみました。(違うけど。)

電源スイッチも基板に直付けして、基板ごとガラス容器に入れます。
裸電球のイメージに近づけたつもりが、だんだん遠のいていくような気も...

ちなみにこの容器はこれの空き瓶。
昔の牛乳瓶みたいですね。

蓋の部分は、浄水器についてくるアダプタみたいな丸いやつ(?)です。
なんかに使えそうな気がして取っておいたら、なんかに使えましたw

しばらく枕元の照明として使ってみました。
真っ暗な中で点灯しても、白LEDのような不気味さはないです。
発熱については、長時間点灯すると瓶が少し暖かくなる程度です。

2009/08/14

gmc4ex

GMC-4にセーブ・ロード機能を追加する改造について、まとめページを作りかけています。

いちおうHEXファイルも上げておきました。
もともとアセンブラで書いているのでCのソースとかはありません。

2009/08/10

GMC-4改造の回路図

セーブ・ロード機能のために追加した部分を含めて、
全体の回路図を描いたので上げておきますね。
(GMC-4本体部分についてはかなり適当。)



キースキャンの制御はハードでやるしかないのですが、
LEDのダイナミック表示の方はたったの120Hzぐらいなので、
特にラッチ回路とかは必要なくて、ソフトだけでも対応できます。
本来はLED表示に行く7+2=9本の信号線をそのまま取れば良いのですが、
それだとPICのI/Oが足りなかったので、一部ムチャな回路になっております。
その甲斐あって、部品点数もかなり少なくできたのですが。

2009/08/09

GMC-4の統合開発環境β

リアルなオブジェクト指向に基づく画期的なGUIによる
GMC-4用の統合開発環境を用意しました。

透明なシール用紙に命令を印刷してマグネットシートに貼り付けたピースを
B5サイズのホワイトボード上の作業領域に貼り付けていくことで、
プログラムの編集や動作のシミュレーションが行えます。
アセンブルは、ピースの左端を縦に読むことで実行されます。

なおβ版のため、本体メモリとの同期インターフェースは手動となっています。
またピースのサイズが不揃いで枠にちゃんと収まらない、
一部のピースの数が足りない、などの不具合も報告されています。

2009/08/08

セーブとロードの応用

LEDの表示を読み取ったりキーを押したりできるということは、
セーブ・ロードだけじゃなくていろんなことができますね。

たとえばテニスゲームの相手をするとか。

テニスゲーム自体は一切いじってないです。(いじれないし。)
黒幕PICがタイミングを見計らって3のキーを押してるだけです。
まともにやったら強すぎなのでちょっとミスするようにしてます。

ついでに、普通のセーブ・ロードの動画も上げておきました。

2009/08/04

セーブ/ロードのしくみ

外部からGMC-4のメモリを直接読み書きすることはできないので、
セーブ/ロードの機能(のようなもの)を実現するために、
自動的にキーを押したり7セグを読み取ったりしています。
つまり、手動でINCRを押しながらメモリの内容を紙にメモしたり、
メモを見て手動で打ち込んだりするのと同じようなことを、
PICにやらせているわけです。

PICが行うセーブの動作:
  1. RESETを押す
  2. 7セグの表示を読み取ってPICのメモリに保存
  3. INCRを押して100mS待つ
  4. 以下2-3を繰り返し
キーをあんまり速く押しても認識されないので、100mS程度は待つ必要があります。
したがって0x00~0x5Fの96ニブルを保存するのに約10秒ほどかかります。

PICが行うロードの動作:
  1. RESETを押す
  2. PICのメモリからデータを読み出す
  3. 7セグの表示と一致しない場合はデータの値に対応するキーを押して100mS待つ
  4. INCRを押して100mS待つ
  5. 以下2-4を繰り返し
ロードの場合は1ニブルあたり2回ボタンを押すので時間がかかりそうですが、
データを書き換える必要がない所はINCRを押すだけで良いので、
結局ロードにかかる時間は10秒~20秒程度です。

今回使ったPIC16F690の場合、セーブデータの保存に使えるのは、
チップ内にある256バイトのSRAMと256バイトのEEPROMです。
(I/Oの空きがないので外部にEEPROMを付ける余裕もないし、
フラッシュメモリへの書き込みもできないので。)
セーブデータは2ニブルずつまとめて1件あたり48バイトなので、
ぎりぎりまで使っても合計10件が限界です。
しかもSRAMの分は電源を切ったら消えてしまうので、
本体がオフの間もPICだけスリープしてメモリを保持しています。

2009/08/02

GMC-4にセーブ・ロード機能を

GMC-4本体内蔵型のセーブ・ロード機能を付けました。
PCに接続してプログラムを流し込むんじゃなくて、単独で動作します。

上のボタンがロード、下のボタンがセーブ用です。
保存先は10箇所あって、本体の0~9のキーで選択します。
[ロード]→[番号]→[ロード] と押すとロードを実行。セーブも同様です。

PICのICSP端子でPCと接続できます。


PIC内臓のEEPROMの内容はMPLABで読み書きできるので、
本体でセーブしたデータをPCに取り込んだりもできます。

基板はこんな感じで、本体裏側のスペースに収まっています。

だから裏蓋を付ける必要があったんですね。

基板の表側。

スペースが余ってるように見えますが、
ここはスピーカと干渉するので使えないのです。
だから余裕はぜんぜんありません。

アーカイブ