2013年10月28日月曜日

先週末のfirmware実験 USB (funny keyboard v2b) やっとアナログジョイスティックが動いたよ

さてさて、firmware実験です。

前回、トラックボールモジュールにコりたので、アナログジョイスティックにする、と宣言していたわけですが、
やっと回路を組み直して、実験に成功しました。

まあ、失敗やら二度手間やらは下に書くとして、

今後やることは


  1. スティックを丸く回してるのに、画面上ではマウスカーソルが四角く動くので、その改善。
  2. CapsLock等のインジケータの実装
  3. スクロールマウスへの拡張
  4. Ctrl+C Ctrl+v Ctrl+x の送出を単独のキーで行う


といったところでしょうか。
もちろん、普段使うためにはケースというか、外装をしっかりかっこよくする必要がある、なんて思いますが。

1番のは、当然といえば当然ですが、アナログジョイスティックの棒は、くるくる動かすと、丸く動きます。ゲームコントローラーでも、そうですよね。四角く動いて四隅のカドで引っかかる、なんてことはないわけです。そこがなんとまあ、落とし穴でした。
上下、左右の端までスティックを倒したときは、その出力は最大または最小近くまでになりますねー。
しかし、斜め45度のときは、ルート2の逆数(1/(2)^0.5)にしかならないんですね。


しかし、カーソルの見た目の速度は縦、横それぞれの成分のベクトルの足し算のはずなので、
それぞれがルート2の逆数だとしても足せば1になりそうなもの。

実際には、ななめにカーソルを動かすと、縦だけ、横だけの場合よりもゆっくり動きます。

しかし、くりくりとスティックを回すと四角く動くという…

うーん、単にADコンバータからの出力をカーソルの移動量に変換するときの、300から400までは+2として扱う、という幅の置き方の問題なのかもしれません。



で、失敗談など…

左手側にひっつける、FX2LPから線を引き出すための基板(ハンダ付け、仮組み 先週末の変なキーボード3)をもう一回作りなおしたりして。
ADコンバータのGNDと電源を間違えて変なニオイさせてみたり。

ADコンバータに接続するFX2のピンの入出力設定は、自分で設定していたら動かなくて。
defaultのままでよかったみたい。

左手側にひっつける、FX2LPから線を引き出すための基板(ハンダ付け、仮組み 先週末の変なキーボード3)については、FX2LPのモジュール基板から出ているコネクタではポートごとにピンが並んでなかったりして、配線の確認時に苦労するんですが、それが済んでしまえばどこからどの線が出ていようが全く関係ありません。
なので、前回作成したものは、なんでもいいから引き出しやすいように作ってみた、というものでした。
が、やっぱり、「調子悪いなぁ、外さなきゃわかんないなぁ」ということが結構あったり、何度確認しても不安だったりして、配線引き出し用の基板は、工作のしやすさよりもヒューマンフレンドリーさを重視することにしました。
さらに、前回までは使わない線まで一生懸命引き出していたのですが、今回はパスっと割愛。

後日写真載せますね。
作ってすぐ実験したくて、写真撮るの忘れてました。

ADコンバータMCP3002のデータシートには、4ピンにはVSS (SSは添字で小さい)、8ピンにはVDD/VREF(DDとREFは添字)と書いてあるのですがどっちがGNDか、わかりにくい。なんだか適当に「こっちだろ」と思い込んで接続していたら、電子部品特有のきな臭いニオイがしてきます。
触ったら… 熱い!!! お亡くなりになったかどうか確かめてませんが、とりあえずもうひとつ持っていたので交換して実験継続。

以上
コメントを投稿