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か、わかりにくい。なんだか適当に「こっちだろ」と思い込んで接続していたら、電子部品特有のきな臭いニオイがしてきます。
触ったら… 熱い!!! お亡くなりになったかどうか確かめてませんが、とりあえずもうひとつ持っていたので交換して実験継続。

以上

2013年10月9日水曜日

Blenderに入れたら便利そうなaddon

Blenderに入れたら便利そうなaddonを。
まだ入れて使ってないので、感想は後日。

情報元は「Blenderアドオン図鑑 - tomo@web - Google Sites」です
ありがとうございます。

Measure Panel
体積を計算できるらしい。
ゲームエンジンで動かす物の重さを体積を元に決めたりできるかも。

Instructions

Interface/Menu Overview
Once enabled, you can find the menu for this script in the properties panel. "N" key.
Scripts 3D interaction Measure Panel.jpg
This script adds a line between two points, either the cursor & a selected object or two selected objects.
The script returns the value (distance/length) of the line in the script interface & in the 3D view.





API Navigator
スクリプト書くときに重宝するかも
UsageYou can browse through the tree structure of the api. Each child object appears in a list
that tries to be representative of its type. These lists are :
   * Items (for an iterable object)
   * Item Values (for an iterable object wich only support index)
   * Modules
   * Types
   * Properties
   * Structs and Functions
   * Methods and Functions
   * Attributes
   * Inaccessible (some objects may be listed but inaccessible)
The lists can be filtered to help search in the tree. Just enter the text in the filter section. It is also possible to explore other modules. Go to the root and select it from the list of available modules. It will be imported dynamically.

In the text section, some information is displayed. The type of the object, what it returns, and its docstring. We could hope that these docstrings will be as descriptive as possible. This text data block named api_doc_ can be toggled on and off with the Escape key.



時間なくて2つしか見れなかった…

2013年9月25日水曜日

ちょっと電子工作は一休みです…

なんで一休みか、というと、
9月14日にモンハン4が発売になり、3DSに突き刺して使うカードが手に入らなかったので
同日ダウンロードしました。
それからというもの、狩りの毎日です。  といってもこれまでと変わらないんですが。

頭の中にはアナログジョイスティックの配線の仕方がぐるぐる回ってるんですが。
次はフルフルに行くか、リオレイアさんにしておくか…のほうが強くぐるぐるしてる感じです。

体は一つしかないもんなぁ、という秋の夜長です。

では~

2013年9月16日月曜日

松原拓也さんのページの紹介

松原拓也さんのページです




[自作]USBアナログジョイスティック……… 今おいらが作ろうとしているもの

ほかにも、プチロボをいじってたり………… 今作っているものの後で…優先順位2位くらいでやりたいこと
楽しそうです。

ワンダースワンが出てきたり………… 昔、このあまり売れなかった(ごめんなさい、個人的感想です)ハードが好きでした


やってる人は昔からやってるんですんよね~ (あたりまえなんすけど)

……… 今おいらが作ろうとしているもの

2013年9月8日日曜日

もうトラックボールには疲れたので、次からはアナログジョイスティックにします firmware実験 USB (funny keyboard v2b)


 
を、使うことにしましたが、ユニバーサル基板に回路をハンダ付けする気力を失っています。

しかし、なんにもしないでジョイスティックの実験に移るのも、やはり癪な話です。

なので、ブレッドボードで実験しました。

が、動きません。。。。。。
ブレッドボードにICがちゃんと刺さってないのかも。
でも、うちにあるブレッドボードはこれひとつ。もうなんともできない。

で、このトラックボールモジュールとはオサラバすることにします。
理由は、私がうまく扱えないことと、出るパルスの頻度が、どうもPCの広大な面積を行き来するために向いていないと感じることです。


次からは、某ゲーム機のコントローラーに内蔵されているアナログジョイスティックを使って実験します。


AD変換のICを使った実験は以前にやったことがあるので、なんとかなるでしょう。
それより、アナログジョイスティックをしっかり固定する方法と、キーボードをマウスモードするためのキーを、
アナログジョイスティックの操作中にONにしておく必要があるのですが…どうやって…
バネでも使ってみる?



2013年9月7日土曜日

一方向にだけ動かない(笑)firmware実験 USB (funny keyboard v2b)

トラックボールモジュールを使って、一方向にだけ動かない件を前回書きましたが、

  1. 全ての配線を再チェック      →   問題なし
  2. 同型番ロジックICへの取り替え  →   変化なし=動かないまま

ということになりました。

ので、トラックボールモジュールが壊れてるのではないかと思われまする~

ちなみに、動いていないのはトラックボールモジュールの赤い基板に「U」と白い文字でプリントされた方向です。ローラーの回転は目視確認できるのですが。


もう一つあった、
  「あと、斜めに動いてくれない気がする。」
の件ですが…

全く動かないということはありませんが、非常にゆっくりしか動きません。

firmwareの作りとして、
ボールの回転を伝えるパルスがUSBコントローラーの外部割り込みを起こし、
PCから「マウスカーソルの移動量を報告せよ」という指令が来るまでの間に起こった割り込みの回数に応じて割増した数を移動量としてPCに報告する。
ということにしているので、非常にゆっくりしか動かないということは…
左右と上下で2つの外部割り込みを起こしていることが問題を起こしている気がします。

実は「4入力のNOR」を入手済なので、またちょっと「親指モジュール」を作ってみます。
けど、今日はなんだか気力がないな~

これを作ってもスムースに動かなかったら、このデバイスはPC画面でマウスカーソルをグリグリ動かすのには向いていない、と思って見限るのも大事かもしれませんね。

カウンタICでパルスを数えておいて、PCからの報告指示をトリガーにして、ICから数を読み取って…という手も考えたのですが、なんだかカウンタICは難しそうです。
このトラックボールモジュールは上下左右で4つのパルスを出すので4つのICから数を読み取る??? ほぅら、もうワカラナイ~(笑)

トラックボールモジュールと同時入手したー
某ゲーム機コントローラーのジョイスティックに
乗り換えてしまおうかな…
AD変換ICのほうがよっぽど簡単だゎ。

では、また!!


2013年9月3日火曜日

NORゲート使用 先週のfirmware実験 USB (funny keyboard v2b) できたはずなのに問題発生編

ハンダ付け、しました。
できました。

できた、はず。


左方向にだけ、ウンともスンともいいません。

他の3方向へは、動きます。


あ、すみません。
トラックボールモジュールからのパルスをUSBモジュールに取り込むときに、
NORゲートを使おう、という件です。

NORゲート用の親指モジュールを作りました。

なぜか、どんなにボールを回しても、左方向にマウスカーソルが動きません。

上、下、右には、動くんです。

ボールを回してすぐにマウスカーソルが動き出さない(時間差がある)のは気になりますが。

あと、斜めに動いてくれない気がする。

左に動かないことについては、初心にかえって、回路の出来具合を何度でも確かめるしかありませんね。
徹底的に回路を調べて、問題があれば修正する。
もし問題がなければ、NORゲートのICを予備のものに変更してみる。
それでもダメなら、、、トラックボールモジュールをもうひとつ買ってきましょうか。。。


斜めに動かないとすると…
上下方向の動きで外部割り込みを一つ、左右方向の動きで外部割り込みを一つ、それぞれ使っているのですが、
もし、外部割り込みがほぼ同時に起こって片方を取りこぼす、という話であれば
4入力のNORゲートを買ってくる必要があるかもしれません。

なんとも難しいモンです。