角型の電球色LEDを使って、電球っぽいものを作ってみました。
回路としては、AC100VでLEDのときとほとんど同じですが、電流制限コンデンサを1uFにしてあります。(2013/11/10: この回路だと若干問題があります。→改良版をどうぞ。)
LEDは何個でもいいのですが、とりあえず3個直列です。
基板に1個だけ乗せたのでは電球らしくないので、
3個を空中配線してフィラメント的な感じにしてみました。(違うけど。)
電源スイッチも基板に直付けして、基板ごとガラス容器に入れます。
裸電球のイメージに近づけたつもりが、だんだん遠のいていくような気も...
ちなみにこの容器はこれの空き瓶。
昔の牛乳瓶みたいですね。
蓋の部分は、浄水器についてくるアダプタみたいな丸いやつ(?)です。
なんかに使えそうな気がして取っておいたら、なんかに使えましたw
しばらく枕元の照明として使ってみました。
真っ暗な中で点灯しても、白LEDのような不気味さはないです。
発熱については、長時間点灯すると瓶が少し暖かくなる程度です。
2009/08/30
2009/08/14
2009/08/10
GMC-4改造の回路図
セーブ・ロード機能のために追加した部分を含めて、
全体の回路図を描いたので上げておきますね。
(GMC-4本体部分についてはかなり適当。)
キースキャンの制御はハードでやるしかないのですが、
LEDのダイナミック表示の方はたったの120Hzぐらいなので、
特にラッチ回路とかは必要なくて、ソフトだけでも対応できます。
本来はLED表示に行く7+2=9本の信号線をそのまま取れば良いのですが、
それだとPICのI/Oが足りなかったので、一部ムチャな回路になっております。
その甲斐あって、部品点数もかなり少なくできたのですが。
全体の回路図を描いたので上げておきますね。
(GMC-4本体部分についてはかなり適当。)
キースキャンの制御はハードでやるしかないのですが、
LEDのダイナミック表示の方はたったの120Hzぐらいなので、
特にラッチ回路とかは必要なくて、ソフトだけでも対応できます。
本来はLED表示に行く7+2=9本の信号線をそのまま取れば良いのですが、
それだとPICのI/Oが足りなかったので、一部ムチャな回路になっております。
その甲斐あって、部品点数もかなり少なくできたのですが。
2009/08/09
GMC-4の統合開発環境β
2009/08/08
セーブとロードの応用
LEDの表示を読み取ったりキーを押したりできるということは、
セーブ・ロードだけじゃなくていろんなことができますね。
たとえばテニスゲームの相手をするとか。
テニスゲーム自体は一切いじってないです。(いじれないし。)
黒幕PICがタイミングを見計らって3のキーを押してるだけです。
まともにやったら強すぎなのでちょっとミスするようにしてます。
ついでに、普通のセーブ・ロードの動画も上げておきました。
セーブ・ロードだけじゃなくていろんなことができますね。
たとえばテニスゲームの相手をするとか。
テニスゲーム自体は一切いじってないです。(いじれないし。)
黒幕PICがタイミングを見計らって3のキーを押してるだけです。
まともにやったら強すぎなのでちょっとミスするようにしてます。
ついでに、普通のセーブ・ロードの動画も上げておきました。
2009/08/04
セーブ/ロードのしくみ
外部からGMC-4のメモリを直接読み書きすることはできないので、
セーブ/ロードの機能(のようなもの)を実現するために、
自動的にキーを押したり7セグを読み取ったりしています。
つまり、手動でINCRを押しながらメモリの内容を紙にメモしたり、
メモを見て手動で打ち込んだりするのと同じようなことを、
PICにやらせているわけです。
PICが行うセーブの動作:
したがって0x00~0x5Fの96ニブルを保存するのに約10秒ほどかかります。
PICが行うロードの動作:
データを書き換える必要がない所はINCRを押すだけで良いので、
結局ロードにかかる時間は10秒~20秒程度です。
今回使ったPIC16F690の場合、セーブデータの保存に使えるのは、
チップ内にある256バイトのSRAMと256バイトのEEPROMです。
(I/Oの空きがないので外部にEEPROMを付ける余裕もないし、
フラッシュメモリへの書き込みもできないので。)
セーブデータは2ニブルずつまとめて1件あたり48バイトなので、
ぎりぎりまで使っても合計10件が限界です。
しかもSRAMの分は電源を切ったら消えてしまうので、
本体がオフの間もPICだけスリープしてメモリを保持しています。
セーブ/ロードの機能(のようなもの)を実現するために、
自動的にキーを押したり7セグを読み取ったりしています。
つまり、手動でINCRを押しながらメモリの内容を紙にメモしたり、
メモを見て手動で打ち込んだりするのと同じようなことを、
PICにやらせているわけです。
PICが行うセーブの動作:
- RESETを押す
- 7セグの表示を読み取ってPICのメモリに保存
- INCRを押して100mS待つ
- 以下2-3を繰り返し
したがって0x00~0x5Fの96ニブルを保存するのに約10秒ほどかかります。
PICが行うロードの動作:
- RESETを押す
- PICのメモリからデータを読み出す
- 7セグの表示と一致しない場合はデータの値に対応するキーを押して100mS待つ
- INCRを押して100mS待つ
- 以下2-4を繰り返し
データを書き換える必要がない所は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に取り込んだりもできます。
基板はこんな感じで、本体裏側のスペースに収まっています。
だから裏蓋を付ける必要があったんですね。
基板の表側。
スペースが余ってるように見えますが、
ここはスピーカと干渉するので使えないのです。
だから余裕はぜんぜんありません。
PCに接続してプログラムを流し込むんじゃなくて、単独で動作します。
上のボタンがロード、下のボタンがセーブ用です。
保存先は10箇所あって、本体の0~9のキーで選択します。
[ロード]→[番号]→[ロード] と押すとロードを実行。セーブも同様です。
PICのICSP端子でPCと接続できます。
PIC内臓のEEPROMの内容はMPLABで読み書きできるので、
本体でセーブしたデータをPCに取り込んだりもできます。
基板はこんな感じで、本体裏側のスペースに収まっています。
だから裏蓋を付ける必要があったんですね。
基板の表側。
スペースが余ってるように見えますが、
ここはスピーカと干渉するので使えないのです。
だから余裕はぜんぜんありません。
登録:
投稿 (Atom)