2

Androidプラットフォームで加速度計ベースのマウスを開発する予定です。私が使用する予定のモバイル デバイスは htc nexus one です。モバイルがスペースで移動すると、カーソルが移動するはずです。重力に比べて難しいですか?

4

2 に答える 2

3

質問の言い回しが原因で、これは答えるのが難しいです。

マウスを何に使いたいですか?コンピュータ上でマウスを動かそうとする場合は、マウスの位置を設定する機能を備えた、PC で実行できるソフトウェア パッケージも作成する必要があります。

携帯電話のアクセラレータは、明らかに、通常は xy 軸と Z 軸の加速度を検出します。携帯電話をテーブルに置くと、携帯電話が 1g 未満であることがわかります (すべて小文字にするか、大文字にする必要がありますか?)。加速していなくても、これは実際には 1g の加速です。この 1g のコンポーネントが 3 つの軸でどのように異なるかを記録することで、電話のロールを検出できます。つまり、x 軸と z 軸の重力が等しく、y 軸の重力がゼロの場合、電話が 45 度の角度で保持されていると「想定」できます。

コンポーネントの合計が 1g に等しくない場合、携帯電話が実際に加速していることがわかります。ただし、携帯電話の位置を知る必要があります。数学が楽しく苦痛に満ちた方法で機能するため、携帯電話の加速度の微分を (各軸で) 微分すると、位置がわかります。加速度から位置を計算する正確な方法は、私が朝に思いつくよりも多くのことですが、リレーションシップは、すべての定数を保持していれば、非常に簡単に変換できます。時間!

于 2010-03-29T07:43:14.610 に答える
1

古い質問ですが、まだ新しいハードウェアに関連しているので、ここに行きます...

あなたの最大の問題は、加速度計だけでは、動きによる加速度と重力と傾きによる加速度の違いを見分けることができないという事実です。モーションを分離するには、2 つ目のセンサーが必要です。あなたの問題は、セグウェイのようなバランシング ロボットを構築する人々が直面する問題と非常によく似ており、解決策もほとんど同じです。

  1. ジャイロスコープ。Samsung Galaxy S の携帯電話にはジャイロがあると思いますが、それらが「本物の」MEMS ジャイロなのか、それとも何らかの方法でシミュレートされたものなのかはわかりません。

  2. カメラ。これは私の検証されていない理論ですが、何らかの方法でフラッシュを使用して机から十分な光を反射することができれば (LED フラッシュを備えた電話の場合)、または暗闇で光るパターンのマウスパッドを使用することができれば、焦点が合っていないことをカメラが認識しているときに、カメラに低解像度のビデオキャプチャを強制します。おそらく、電話が動いているか静止しているかを判断するのに十分なほど、ぼやけた焦点の合っていないブロブでパターン認識を行うことができ、速度と/または方向。リアルタイムのぼやけたカメラ ビデオ ストリームからの低品質のデータと、加速度計からの比較的高解像度のデータを組み合わせると、機能するものが得られる可能性があります。

ただし、1 つまたは 2 つを気にする前に、HID Bluetooth マウスのエミュレーションというより大きな問題に取り組む準備ができていることを確認してください。それは可能です (ただし、ルート化された電話が必要になる場合があります)。Android マーケットの少なくとも 1 つのアプリがそれを実行しますが、簡単な作業ではありません。この問題を午後に解決するつもりはありません。おそらく、加速度計の問題に悩まされる前に、少なくとも偽のマウスをエミュレートし、本物の Bluetooth マウスを期待しているコンピューターに説得力を持ってペアリングするのに十分なだけ解決するようにしてください。 . どちらもリスクが高いため、一方のタスクを完全に完了させてから他方のタスクを開始しようとしないでください。ただし、問題の範囲を十分に把握し、自分が何をしているかを理解するまでは、どちらにも時間をかけすぎないようにしてください。入ります。

Bluetooth HIDが多すぎる場合は、代替手段があります... Bluetooth HIDをスキップし、それをPC上で実行されているサーバーと通信するシリアルポートとして使用する(またはUSB経由で直接テザリングする)オープンソースプロジェクトがかなりありますADBと)。私の知る限り、電話をタッチパッドとして使用することを「マウス」と見なさない限り、特に優れた電話としてのマウス機能はありません。

于 2011-09-28T17:37:50.157 に答える