around@taichi - around@taichi
例の自作したキーボードについて、
ここに載せた写真数点(まだ全部作業していないだけですが)などを
いつものページ、というほど頻繁に載せていませんが
このページにとりあえずの「変なキーボード」 というページを追加しました。
ファームウェアソースも見れるので
みなさまごひいきに~
2008年3月18日火曜日
2008年3月17日月曜日
変なキーボード5
今回は写真なしです…
小さな箱(タッパーなんですが)に入れていた基盤は
はじめは細いリード線で配線したまま箱につっこんでいたのですが
あとから一本一本丁寧にテープで留めて絶縁しました。
思わぬ接触があったようで、予期せぬ動作は
この絶縁作業でなくなりました。
また、スイッチもハンダゴテのあてすぎで
内部が溶けちゃって、常時通電状態というものが2つありましたので
取り替えました。
(中が溶けてたのは分解して確認しました…)
チャタリング対策をハードウェア的にとっていないので
ファームウェアでウェイトをかけて吸収するようにしているのですが
スイッチの重さと指の力のかねあいか、なんだかわからないですが
2回押したつもりが3回入力されたりすることがあって
(薬指で操作するスイッチで頻発)、もしかしたらそのスイッチを取り替えると
うまく行くのかもしれません。
このへんなキーボードをEM・ONEにつないでみたところ、
当然のようですがキーボードとして使うことができました。
あとはブート時にBIOSが認識してくれるかどうかを実験する必要があります。
この後する事は
チャタリング対策のためのウェイト時間の最適化
キャップスロック等のLEDの実装
マウス機能の実装
ファームウェアの公開
キーマトリックスの公開
といったところでしょうか。
ファームウェアとキーマトリックスはとりあえず現在のものを公開すべく
準備中です。
小さな箱(タッパーなんですが)に入れていた基盤は
はじめは細いリード線で配線したまま箱につっこんでいたのですが
あとから一本一本丁寧にテープで留めて絶縁しました。
思わぬ接触があったようで、予期せぬ動作は
この絶縁作業でなくなりました。
また、スイッチもハンダゴテのあてすぎで
内部が溶けちゃって、常時通電状態というものが2つありましたので
取り替えました。
(中が溶けてたのは分解して確認しました…)
チャタリング対策をハードウェア的にとっていないので
ファームウェアでウェイトをかけて吸収するようにしているのですが
スイッチの重さと指の力のかねあいか、なんだかわからないですが
2回押したつもりが3回入力されたりすることがあって
(薬指で操作するスイッチで頻発)、もしかしたらそのスイッチを取り替えると
うまく行くのかもしれません。
このへんなキーボードをEM・ONEにつないでみたところ、
当然のようですがキーボードとして使うことができました。
あとはブート時にBIOSが認識してくれるかどうかを実験する必要があります。
この後する事は
チャタリング対策のためのウェイト時間の最適化
キャップスロック等のLEDの実装
マウス機能の実装
ファームウェアの公開
キーマトリックスの公開
といったところでしょうか。
ファームウェアとキーマトリックスはとりあえず現在のものを公開すべく
準備中です。
変なキーボード4
2008年3月13日木曜日
変なキーボード3
変なキーボード2
↓一枚目は、左のモジュールを上から撮影したものです。
見ての通り、キーがかなり少ないです。
左から、小指で4つ、薬指と中指で2つずつ、
人差し指で4つ、親指で2つです。
この写真では見えないのですが、親指にはあと2つ、マイクロスイッチから延びた針金があり、
これでモードを切り替えながら打鍵します。

↓2枚目は、USBケーブルが出ている方の箱のふたを開けたところ。
オプティマイズさんのFX2はピンが順番通りに出ていないのと
同じピンに複数のスイッチなどをつなぐことがあるので、ピンの整列と
各ピン毎に2つずつコネクタをつけられるように
ユニバーサル基盤を一つ挟んでから左右のモジュールに配線しています。
これから先、まだまだ機能を追加していくので
その際の接続もここに行います。

↓3枚目は、上の写真の箱の裏側です。
オプティマイズさんのFX2がうっすらとみえる…はず…
ピンク色の線は、ファームウェアを書き換えるときに一旦はずすジャンパピンに
スイッチをつないで箱の上から操作するためのものです。
そのスイッチを押しながらUSBケーブルをPCに接続するとファームウェアを書き換えることができるようになります。
見ての通り、キーがかなり少ないです。
左から、小指で4つ、薬指と中指で2つずつ、
人差し指で4つ、親指で2つです。
この写真では見えないのですが、親指にはあと2つ、マイクロスイッチから延びた針金があり、
これでモードを切り替えながら打鍵します。

↓2枚目は、USBケーブルが出ている方の箱のふたを開けたところ。
オプティマイズさんのFX2はピンが順番通りに出ていないのと
同じピンに複数のスイッチなどをつなぐことがあるので、ピンの整列と
各ピン毎に2つずつコネクタをつけられるように
ユニバーサル基盤を一つ挟んでから左右のモジュールに配線しています。
これから先、まだまだ機能を追加していくので
その際の接続もここに行います。

↓3枚目は、上の写真の箱の裏側です。
オプティマイズさんのFX2がうっすらとみえる…はず…
ピンク色の線は、ファームウェアを書き換えるときに一旦はずすジャンパピンに
スイッチをつないで箱の上から操作するためのものです。
そのスイッチを押しながらUSBケーブルをPCに接続するとファームウェアを書き換えることができるようになります。

2008年3月12日水曜日
2007年9月10日月曜日
string descriptorは偶数アドレスから始めること
今回の注意点!
シバ某様、ありがとうございます。
お時間を頂戴して、私の汚いコードをごらん頂き、
かつ、オプティマイズさんの掲示板(No.169)に丁寧な解説も付けてくださいました。
で、修正してみました。
ご指摘いただいたように、ファームの書き込み後に、1回目の接続ではマウス部分がエラーになり、
2回目の接続でマウスとして認識されます。
string descriptorは報告されたようです。
2回目でないと認識してくれない理由は、、、、
なんでしょうねぇ。
ホストが聞いてくる順番で答えてない、と言うことなのでしょうか。
なんかのアドレス指定が入れ替わってたりして。。。
詳しくはこちらのページに書きました。
がんばるっす!
またこちらにファイルを載せておこうと思います。
こちらのページからごらんになって、みなさまのお知恵を頂戴できれば幸せです。
当ブログ内Link
- string descriptorは偶数アドレスから始めること
- endpointへの書き込み(ホストへの報告)のバイト数はdescriptorどおりであること
シバ某様、ありがとうございます。
お時間を頂戴して、私の汚いコードをごらん頂き、
かつ、オプティマイズさんの掲示板(No.169)に丁寧な解説も付けてくださいました。
で、修正してみました。
ご指摘いただいたように、ファームの書き込み後に、1回目の接続ではマウス部分がエラーになり、
2回目の接続でマウスとして認識されます。
string descriptorは報告されたようです。
2回目でないと認識してくれない理由は、、、、
なんでしょうねぇ。
ホストが聞いてくる順番で答えてない、と言うことなのでしょうか。
なんかのアドレス指定が入れ替わってたりして。。。
詳しくはこちらのページに書きました。
がんばるっす!
またこちらにファイルを載せておこうと思います。
こちらのページからごらんになって、みなさまのお知恵を頂戴できれば幸せです。
当ブログ内Link
2007年6月14日木曜日
EZ-USB FX2LPのEEPROMに書き込みむ
EZ-USB FX2LPのEEPROMに書き込みむ方法を、ようやく会得しました。
時間かかりすぎだ〜
対象は、オプティマイズさんのMINI FX2 です。
まず、EEPROMと書かれた方のジャンパピンを抜いてからMINI FX2 ボードをPCに挿します。
挿したらジャンパピンを戻します。
オプティマイズさんのサイトに書かれているように、EEPROMの先頭に0xFFを書き込みます。
C:\Cypress\USB\Examples\FX2\Vend_Ax\Vend_Ax.hex
書き込めたら、PCからMINI FX2 ボードを抜きます。
つぎにまた
MINI FX2 ボードをPCに挿しますが、このときはジャンパピンは刺したままでOKです。
オプティマイズさんのサイトに書かれているように、iicファイルをダウンロードします。
以上
時間かかりすぎだ〜
対象は、オプティマイズさんのMINI FX2 です。
まず、EEPROMと書かれた方のジャンパピンを抜いてからMINI FX2 ボードをPCに挿します。
挿したらジャンパピンを戻します。
オプティマイズさんのサイトに書かれているように、EEPROMの先頭に0xFFを書き込みます。
Downloadボタンを押して
C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.0\Firmware\Vend_ax\Vend_Ax.hex
をダウンロードします。
Vend Req というボタンが左端にあるところに次の値を入力します。
Req: 0xA9
Value: 0
Index: 0
Length: 1
Dir: 0 OUT
Hex Bytes: ff
Value: 0
Index: 0
Length: 1
Dir: 0 OUT
Hex Bytes: ff
Vend Req というボタンをクリックします。
下のペインに 0000 FF と表示されたらOKです。書き込めたら、PCからMINI FX2 ボードを抜きます。
つぎにまた
MINI FX2 ボードをPCに挿しますが、このときはジャンパピンは刺したままでOKです。
オプティマイズさんのサイトに書かれているように、iicファイルをダウンロードします。
EEPROMボタンをクリックして、目的のiicファイルを選択するとダウンロードされます。
以上
2007年2月27日火曜日
やっぱり分からない、ボールの動きのカウント方法
腱鞘炎が我慢できないくらい痛くなってきてます。
もう、ここが攻殻機動隊の世界なら、脳から直接PCに入力しているところです。
本物の腕と同じかそれ以上の制御が出来て、感覚があるなら、
義体化してもいいと思うほど。
が、この浮世ではそうもいかないので
自分の理想とする入力デバイスを作ろうとしているのですが…
トラックボールデバイスをバルクで買ってきました。
分解して、フォトトランジスタへの入出力の線を引き出しました。
で、これをオプティマイズ(電子工作・ゲームハード解析)さんのEZ-USB FX2 (56ピン)に接続して
ファームウェアを書けば出来上がり!
のはずでしたが、
なんとまあ、どうやってカウントしたものやら。
フォトトランジスタからのパルスがあったら、
もう一本の電圧を調べて、
プラスするべきかマイナスするべきかを判断し、
カウンタ変数に保存して、
ホストからのエンドポイント0が届いたら、
その変数の値を教えてあげる。
こういう筋書きで行こうと思っているのですが、
INT0とINT1の外部エンドポイントでの処理を
どうやってソースに書けばいいのか、さっぱり分かりません…
泣き泣きです。
もう一度、いちから勉強しようと、
眠すぎる頭で考えているような思っているような妄想しているような毎日です…
もう、ここが攻殻機動隊の世界なら、脳から直接PCに入力しているところです。
本物の腕と同じかそれ以上の制御が出来て、感覚があるなら、
義体化してもいいと思うほど。
が、この浮世ではそうもいかないので
自分の理想とする入力デバイスを作ろうとしているのですが…
トラックボールデバイスをバルクで買ってきました。
分解して、フォトトランジスタへの入出力の線を引き出しました。
で、これをオプティマイズ(電子工作・ゲームハード解析)さんのEZ-USB FX2 (56ピン)に接続して
ファームウェアを書けば出来上がり!
のはずでしたが、
なんとまあ、どうやってカウントしたものやら。
フォトトランジスタからのパルスがあったら、
もう一本の電圧を調べて、
プラスするべきかマイナスするべきかを判断し、
カウンタ変数に保存して、
ホストからのエンドポイント0が届いたら、
その変数の値を教えてあげる。
こういう筋書きで行こうと思っているのですが、
INT0とINT1の外部エンドポイントでの処理を
どうやってソースに書けばいいのか、さっぱり分かりません…
泣き泣きです。
もう一度、いちから勉強しようと、
眠すぎる頭で考えているような思っているような妄想しているような毎日です…
登録:
投稿 (Atom)