ヘクスローブ用のドライバーがやっと100円ショップに出てきたと思ったら、
今度は三角形のねじですよ。しかもだんだん増えてきてるような気がする。
専用のドライバーは工具の店に行けば売ってるはずですが、
素人がジャンクいじりに使うには高価すぎます。
組み立て式の家具についてくる六角レンチとかを削って自作する、
という手もありますが、もっと手間のかからない方法もあります。
こうやってラジオペンチの片方の先を差し込んでゆっくり回せば、
いちおう外すことができます。
先があんまり細くないラジオペンチの方が良いと思います。
2009/12/23
PIC10の汎用マイコンボード
PIC10F Hobby Kit の基板にPIC10F222とチップLEDを乗せてみました。
8ピンDIPよりちょっと大きい程度のサイズですが、
これでもいちおう汎用のマイコンボードなのです。
LEDは、余ったランドを利用して、ICSPで使わないピンに接続してあります。
(べつになくても良いのですが、いちおう単体でも使えるように。)
6ピンのピンヘッダは書き込みおよび周辺回路との接続用ですが、
激しく本体基板からはみ出してます。。
回路は、ほぼICSP用の結線そのものです。
LEDには電流制限抵抗を入れずに、PICの内部抵抗を利用します。
電源が3V程度なら、これでも全然大丈夫です。
もしも明るすぎたら、PWMで暗くすれば良いのです。
こうやって書き込みます。
書き込み時は必然的に周辺回路と切り離されることになります。
後からプログラムを書き換えるのも楽です。
実際の使い方の例。
ガンプラに仕込んだLEDを制御しています。
本体を適当に押したら、底面に付けたスイッチが押される仕組みです。
このスイッチを検出して、押された回数に応じてLEDを制御します。
LEDがオフのときはスリープして実質的に電源オフ状態にしています。
8ピンDIPよりちょっと大きい程度のサイズですが、
これでもいちおう汎用のマイコンボードなのです。
LEDは、余ったランドを利用して、ICSPで使わないピンに接続してあります。
(べつになくても良いのですが、いちおう単体でも使えるように。)
6ピンのピンヘッダは書き込みおよび周辺回路との接続用ですが、
激しく本体基板からはみ出してます。。
回路は、ほぼICSP用の結線そのものです。
LEDには電流制限抵抗を入れずに、PICの内部抵抗を利用します。
電源が3V程度なら、これでも全然大丈夫です。
もしも明るすぎたら、PWMで暗くすれば良いのです。
こうやって書き込みます。
書き込み時は必然的に周辺回路と切り離されることになります。
後からプログラムを書き換えるのも楽です。
実際の使い方の例。
ガンプラに仕込んだLEDを制御しています。
本体を適当に押したら、底面に付けたスイッチが押される仕組みです。
このスイッチを検出して、押された回数に応じてLEDを制御します。
LEDがオフのときはスリープして実質的に電源オフ状態にしています。
2009/11/21
ewfy 1.0.1
今でも需要があるのかどうか分かりませんが、ewfyを更新しました。
ewfy 1.0.1
前のバージョン(1.0.0)では、EWF有効な状態から「常に無効」でコミットしたら、いつまで経っても「コミット中」という表示のままになります。
(その場合でも、実際のコミットはちゃんと終了します。)
いろいろ調べた結果、やはりewfyのコミット監視処理のバグということが分かったので修正しました。
ついでに、もう1点変更しました。
ewfyには、「自動コミット実行前に確認するという設定でも、メモリ使用量がコミット基準を急激に超えら確認なしでコミットを実行する」という機能があります。
もちろんこれは安全のためですが、よく考えたらむしろ危険な場合もあります。
「本当に」急激にメモリ使用量が増えたら、コミットの最中に落ちて、ディスクの内容が壊れてしまう可能性があるのです。これはEWFを使う上で最も避けたい事態です。
そういうわけで、デフォルトではこの動作を行わないようにしました。
2009/11/07
rb-338
昔のアナログシンセの音を再現するRB-338というソフトがあります。
数年前に販売を終了して、今は無償で公開されています。
製品CDのisoイメージがそのままBitTorrentで配布されているので、
それを落としてCDに焼いてインストールするんだそうです。
開発元が正式に公開しているものなのでぜんぜん問題ないのですが、
とりあえずBitTorrentクライアントを入れるのはちょっと抵抗があります。
Firefoxのアドオンでそれらしいのがないか探してみたら、
日本語化されてないアドオンでFireTorrentというのがあったので、
これを入れることにしました。
この状態でダウンロードページに行ってダウンロードのリンクをクリックしたら、
後は普通のファイルのダウンロードと同じ手順です。
最初やってみたときはぜんぜんデータが落ちてこなかったのですが、
時間帯を変えてやり直してみたら、30分ぐらいで完了しました。
で、zipを解凍してisoイメージをCDに焼いて、インストール。
画面が小さくて操作しにくいですが、古いソフトだけに動作は軽いです。
適当にパターンを作って、適当に音を作って、
適当にいじってるだけで、何時間でも遊べます。
テクノ好きには超おすすめ。
ちなみに、これと似たようなことのできるソフトで、
hobnox Audiotoolという、もっと洗練された高機能なやつもあります。
でも、この洗練されたGUIはそれなりのCPUパワーを必要とするようで、
途中でいちばん大事なはずの音が途切れたりします。
ていうか高機能すぎて使いこなせません。。
2009/10/18
2009/09/23
2009/09/13
2009/08/30
電球色LEDで裸電球を作る
角型の電球色LEDを使って、電球っぽいものを作ってみました。
回路としては、AC100VでLEDのときとほとんど同じですが、電流制限コンデンサを1uFにしてあります。(2013/11/10: この回路だと若干問題があります。→改良版をどうぞ。)
LEDは何個でもいいのですが、とりあえず3個直列です。
基板に1個だけ乗せたのでは電球らしくないので、
3個を空中配線してフィラメント的な感じにしてみました。(違うけど。)
電源スイッチも基板に直付けして、基板ごとガラス容器に入れます。
裸電球のイメージに近づけたつもりが、だんだん遠のいていくような気も...
ちなみにこの容器はこれの空き瓶。
昔の牛乳瓶みたいですね。
蓋の部分は、浄水器についてくるアダプタみたいな丸いやつ(?)です。
なんかに使えそうな気がして取っておいたら、なんかに使えましたw
しばらく枕元の照明として使ってみました。
真っ暗な中で点灯しても、白LEDのような不気味さはないです。
発熱については、長時間点灯すると瓶が少し暖かくなる程度です。
回路としては、AC100VでLEDのときとほとんど同じですが、電流制限コンデンサを1uFにしてあります。(2013/11/10: この回路だと若干問題があります。→改良版をどうぞ。)
LEDは何個でもいいのですが、とりあえず3個直列です。
基板に1個だけ乗せたのでは電球らしくないので、
3個を空中配線してフィラメント的な感じにしてみました。(違うけど。)
電源スイッチも基板に直付けして、基板ごとガラス容器に入れます。
裸電球のイメージに近づけたつもりが、だんだん遠のいていくような気も...
ちなみにこの容器はこれの空き瓶。
昔の牛乳瓶みたいですね。
蓋の部分は、浄水器についてくるアダプタみたいな丸いやつ(?)です。
なんかに使えそうな気がして取っておいたら、なんかに使えましたw
しばらく枕元の照明として使ってみました。
真っ暗な中で点灯しても、白LEDのような不気味さはないです。
発熱については、長時間点灯すると瓶が少し暖かくなる程度です。
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に取り込んだりもできます。
基板はこんな感じで、本体裏側のスペースに収まっています。
だから裏蓋を付ける必要があったんですね。
基板の表側。
スペースが余ってるように見えますが、
ここはスピーカと干渉するので使えないのです。
だから余裕はぜんぜんありません。
2009/07/31
GMC-4のキーを自動的に押すには?
外部のPICからGMC-4のキーを押す方法を考えました。
最初は、キーパッドの信号を直接PICに接続して、
ソフト的にキースキャン信号をhackできると考えていました。
ただソフト処理だとどうしても反応が1uS程度は遅れてしまうので、
単純にやったのではやっぱり間に合ってない感じ。
キースキャンのアルゴリズムを想像しながら小細工をしてみても、
どうも確実にキーを押すには至らないような気がしてきました。
それよりも、それと同じ数のI/Oとトランジスタ9個でできる、
もっと楽な方法を考えたので、そっちで行くことにしました。
(フォトカプラとかじゃなくて、普通のトランジスタです。)
PIC側では、そのままの4x5のマトリクスと考えて、行と列を選択するだけ。
キースキャンのタイミングとかはまったく関係ないので、
任意のタイミングで一定時間同じ状態を保持すれば十分です。
ただし回路の都合上、行側が負論理、列側が正論理なので、
行のうち選択するものだけをLに、それ以外はHに、
列のうち選択するものだけをHに、それ以外はLにします。
最初は、キーパッドの信号を直接PICに接続して、
ソフト的にキースキャン信号をhackできると考えていました。
ただソフト処理だとどうしても反応が1uS程度は遅れてしまうので、
単純にやったのではやっぱり間に合ってない感じ。
キースキャンのアルゴリズムを想像しながら小細工をしてみても、
どうも確実にキーを押すには至らないような気がしてきました。
それよりも、それと同じ数のI/Oとトランジスタ9個でできる、
もっと楽な方法を考えたので、そっちで行くことにしました。
(フォトカプラとかじゃなくて、普通のトランジスタです。)
PIC側では、そのままの4x5のマトリクスと考えて、行と列を選択するだけ。
キースキャンのタイミングとかはまったく関係ないので、
任意のタイミングで一定時間同じ状態を保持すれば十分です。
ただし回路の都合上、行側が負論理、列側が正論理なので、
行のうち選択するものだけをLに、それ以外はHに、
列のうち選択するものだけをHに、それ以外はLにします。
2009/07/22
GMC-4の「裏側」
2009/07/19
GMC-4にボリュームつけた
GMC-4の音が大きすぎるのでボリュームをつけました。
改造前のオーディオ出力部分は、こういう回路になっています。
一列に並んだチップ抵抗の中に、1個だけ「0」と書かれたものがありますが、
これが、Q3へ行く配線の途中にある0Ωの抵抗です。
音を小さくしたかったらこれを適当な抵抗に交換しろ、ということなんでしょう。
こういう風にしてみました。
2.2kと10kの抵抗(≒1.8k)はVRのカーブを調整するためのものです。
(2009/08/02 音が小さすぎたので抵抗値を調整しました)
秋月の激安VRを使うと、電池の横のスペースにうまく入ります。
これで音量の調節ができるようになりました。
ボリューム最大でデフォルト状態と同じ音量、
ボリューム最小だとほとんど聞こえません。
ボリューム半分ぐらいでちょうど良い音量になります。
改造前のオーディオ出力部分は、こういう回路になっています。
一列に並んだチップ抵抗の中に、1個だけ「0」と書かれたものがありますが、
これが、Q3へ行く配線の途中にある0Ωの抵抗です。
音を小さくしたかったらこれを適当な抵抗に交換しろ、ということなんでしょう。
こういう風にしてみました。
2.2kと10kの抵抗(≒1.8k)はVRのカーブを調整するためのものです。
(2009/08/02 音が小さすぎたので抵抗値を調整しました)
秋月の激安VRを使うと、電池の横のスペースにうまく入ります。
これで音量の調節ができるようになりました。
ボリューム最大でデフォルト状態と同じ音量、
ボリューム最小だとほとんど聞こえません。
ボリューム半分ぐらいでちょうど良い音量になります。
2009/07/06
いきなり改造
大人の科学(4ビットマイコン)を買ってきて三日と経たないうちに、こんなことになってしまいました。
まだ配線しかできてないけど。
この裏側のスペースにPIC16F690が入る予定です。
似たようなことを考えてる人はけっこう多いかも。。
まだ配線しかできてないけど。
この裏側のスペースにPIC16F690が入る予定です。
似たようなことを考えてる人はけっこう多いかも。。
2009/06/29
6セグ表示ユニット
6セグ時計の表示ユニットがほぼ完成しました。
仕切りの部分をはずしたところ。
LEDは全部で26個あります。
単純なマトリクスだと配線が10本以上必要ですが、これの場合は7本で足りてます。
裏側の配線がどうなってるかというと、
よく見えないんですねこれが。
空中配線なので、しっかりホットボンドで固めちゃったのです。
回路図はこちら。
コロンの部分を除くと、3x4のマトリクスを二つ重ねたみたいな形です。
行と列の交点に、それぞれ2個のLEDが逆向きで並列に入っています。
7本の配線は、そのままPICのI/Oに直結します。
LED1個にほぼPICの定格いっぱいの約25mAを流しますが、
それでも全体としては同時に2個ずつ点灯できる仕組みです。
これで2個ずつ12サイクルで24個をダイナミック点灯できます。
制御はかなりめんどくさいですが。
仕切りの部分をはずしたところ。
LEDは全部で26個あります。
単純なマトリクスだと配線が10本以上必要ですが、これの場合は7本で足りてます。
裏側の配線がどうなってるかというと、
よく見えないんですねこれが。
空中配線なので、しっかりホットボンドで固めちゃったのです。
回路図はこちら。
コロンの部分を除くと、3x4のマトリクスを二つ重ねたみたいな形です。
行と列の交点に、それぞれ2個のLEDが逆向きで並列に入っています。
7本の配線は、そのままPICのI/Oに直結します。
LED1個にほぼPICの定格いっぱいの約25mAを流しますが、
それでも全体としては同時に2個ずつ点灯できる仕組みです。
これで2個ずつ12サイクルで24個をダイナミック点灯できます。
制御はかなりめんどくさいですが。
2009/06/16
6セグ時計の電源
6セグ時計の電源はAC100Vから取ることにしました。
この、ハードオフで発掘した充電器を利用します。
そのままだと大きすぎるし、使うのは中の基板だけ。
と思ったけどやっぱりケースの一部も使うことにしました。
基板にはねじ穴とかもなくて固定しにくいし、
100Vがかかっている部分が露出していると心配なので、
ケースの余分なところを切り取ってカバーとして使います。
電源をAC100Vから取るのにはもうひとつ理由があって、
時計のクロックとして電源周波数の50Hzを取りたいのです。
これは、AC100VでLEDの回路とフォトカプラを組み合わせたらいけそうです。
実験の結果、フォトカプラの入力電流は1~2mAぐらいあれば十分だと分かったので、
LEDの電流制限に使うコンデンサは0.1uFに決定。
この基板を例の電源と合体させて、電源コードをつないだのがこれ。
危険な部分は露出しないようにしたので、うっかり触って感電する心配もないはず。
ただ、ここでちょっと問題が。
この電源モジュール、けっこう大きな音が出ます。
それも、かなり耳障りな感じの。
ケースの中に入れたら多少はましになるのかな。
この、ハードオフで発掘した充電器を利用します。
そのままだと大きすぎるし、使うのは中の基板だけ。
と思ったけどやっぱりケースの一部も使うことにしました。
基板にはねじ穴とかもなくて固定しにくいし、
100Vがかかっている部分が露出していると心配なので、
ケースの余分なところを切り取ってカバーとして使います。
電源をAC100Vから取るのにはもうひとつ理由があって、
時計のクロックとして電源周波数の50Hzを取りたいのです。
これは、AC100VでLEDの回路とフォトカプラを組み合わせたらいけそうです。
実験の結果、フォトカプラの入力電流は1~2mAぐらいあれば十分だと分かったので、
LEDの電流制限に使うコンデンサは0.1uFに決定。
この基板を例の電源と合体させて、電源コードをつないだのがこれ。
危険な部分は露出しないようにしたので、うっかり触って感電する心配もないはず。
ただ、ここでちょっと問題が。
この電源モジュール、けっこう大きな音が出ます。
それも、かなり耳障りな感じの。
ケースの中に入れたら多少はましになるのかな。
2009/05/31
nshdot.comをGoogle Sitesに移行
nshdot.comを Google Sites に移行しました。
これに伴い、ewfyのダウンロードページとかマニュアルとかのURLも微妙に変わったので、従来のURLにアクセスしたら、いったん転送ページを経由して新しいURLに転送されます。
ブログのURLは従来どおりです。
これに伴い、ewfyのダウンロードページとかマニュアルとかのURLも微妙に変わったので、従来のURLにアクセスしたら、いったん転送ページを経由して新しいURLに転送されます。
ブログのURLは従来どおりです。
2009/05/17
6セグ時計製作中
6セグを実装してみよう、ということで、時計を作ることにしました。
まずは、4桁の6セグ表示ユニットを作ります。
檜の板で全体の枠とセグメント間の仕切りを作って、表にセグメントの形に切り抜いた紙を貼り、アクリル絵の具で塗装しました。
内部を裏から見たら、こんなことになってます。
檜の板は100円ショップで売っていた2mm×15mmのものです。本当はもっと薄いのをバルサで作るつもりでしたが、結局これしか見つからなかったので。
これぐらいだとカッターでも切れますが、あんまりバルサみたいにサクサクという訳にはいきません。発泡パネルみたいなのを使った方が良かったかも。
裏面は厚紙でふさいで、小さな穴を開けてLEDの脚だけ出す予定でしたが、それだと前面のパネルとの距離が近すぎるようなので、裏面のパネルに穴を開けてLEDを挿し込むようにしました。
光の拡散具合を考えて小細工したつもりですが、思ったとおりの効果を発揮してくれるかどうか。。
まずは、4桁の6セグ表示ユニットを作ります。
檜の板で全体の枠とセグメント間の仕切りを作って、表にセグメントの形に切り抜いた紙を貼り、アクリル絵の具で塗装しました。
内部を裏から見たら、こんなことになってます。
檜の板は100円ショップで売っていた2mm×15mmのものです。本当はもっと薄いのをバルサで作るつもりでしたが、結局これしか見つからなかったので。
これぐらいだとカッターでも切れますが、あんまりバルサみたいにサクサクという訳にはいきません。発泡パネルみたいなのを使った方が良かったかも。
裏面は厚紙でふさいで、小さな穴を開けてLEDの脚だけ出す予定でしたが、それだと前面のパネルとの距離が近すぎるようなので、裏面のパネルに穴を開けてLEDを挿し込むようにしました。
光の拡散具合を考えて小細工したつもりですが、思ったとおりの効果を発揮してくれるかどうか。。
登録:
投稿 (Atom)