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つしか見れなかった…