社員技術ブログ

【社員技術ブログ】HTC VIVE トラッカー(TRACKER)の使い方と仕様、アクセサリーの接続を自作(入力編)

ある日の事、VR関連の案件を扱っているメンバーから

「VIVE TRACKERに外部入力を付けたいんですけど…」

と相談を受けました。

何故か社内ではハードウェアに詳しい人と認識されているみたいです。

機械いじりが好きなだけで決して詳しい訳ではないのですけど。

話を聞くと、どうやらVRで実際の業務に即した操作を模倣したいとの事。

VIVE TRACKERについては良く分かっていなかったので、Google先生に教えを請う事に。

VIVE TRACKERとは

VIVE TRACKER公式サイト

https://www.vive.com/jp/vive-tracker/

「VIVE トラッカー を使うと、現実世界のどんな物もVR空間に取り込めます!」

現実世界での位置情報(動き)を取得し、仮想世界に反映させる為のHTC VIVEのオプション。

…いや知りたいのは皆が知っているそんな事では無く。

 

VIVE Developers

https://developer.vive.com/us/vive-tracker-for-developer/

こちらがVIVEの開発者向けのページです。

このページに「VIVE Tracker Developer Guildeline」というリンクがあります。

※スペルミスがありますが、そのまま記述しています。

VIVE TRACKERの「技術仕様」がPDFファイルに纏められています。

この資料ではユースケースとして以下の5つが挙げられていました。

画像出展:https://dl.vive.com/Tracker/Guideline/HTC_Vive_Tracker_Developer_Guidelines_v1.5.pdf

…何だかとてもフリーダムな感じがするのは私だけでしょうか。

確認したところ、既にユースケース3の状態で運用しているようでしたので、ユースケース4または5に移行してやれば良さそうです。

VIVE TRACKERとアクセサリー間のインターフェイスを確認します。

POGO pin/USBでの通信が出来るようです。但し、USBでの通信はアクセサリー側にHID(ヒューマンインターフェイスデバイス)のホスト機能が必要です。

ここを自作する場合、少しハードルが高くなります。

※VIVE TRACKER(2018)ではアクセサリーとのUSB通信機能は削除されています。

POGO pinのほうも見てみましょう。

画像出展:https://dl.vive.com/Tracker/Guideline/HTC_Vive_Tracker_Developer_Guidelines_v1.5.pdf

出力が1系統、入力が4系統で信号は全てデジタル。3.3V系です。

入力端子は全て内部の抵抗でプルアップされていますので、GNDと短絡するだけでON/OFFの操作が出来ます。

出力端子は20mAほどしか流せないので、振動モーターを駆動するくらいでしょうか。

アクセサリー側の開発が楽になる反面、出来る事は限られそうです。

取り敢えずはユースケース5、POGO pinでの入出力で求められているものは実現出来そうです。

作ってみた

まずは検証用の基板を製作します。

ユニバーサル基板にタクトスイッチを4つ取り付けただけの簡単なもの。

今後の拡張を考慮し、POGO pinの信号をそのままスルーするヘッダーピンも取り付けます。

 

これで外部入力の検証が出来るようになりました。

出力端子に確認用のLEDでも付けておけば良かった…

製作時に困ったのがPOGO pinのピン間隔が3.5mmとちょっと特殊な事。

また、アクセサリー側の接点を少し嵩上げする必要があるため、工夫が必要です。

今回使用したユニバーサル基板はスルーホールの間隔が2.54mm。

そのまま接点を設けようとしてもピッチが合いません。

 

図の上側が2.54mmピッチ()。下側が3.5mmピッチ()。

一番外側はほぼ無視出来る差しかありませんが、内側は基板に穴加工を行うか接点部分を補正する必要があります。

今回は接点部分の補正を行いました。

ピッチはこれで何とかなりましたが、接点部分の嵩上げが残っています。

これは単純にすずメッキ線をラジオペンチの先端でつまんで、くるり。小さなループを作ります。

ループの大きさは現物合わせです(笑)

これをそのまま配線材とし、基板に半田付けする事でPOGO pinとのコンタクト部とします。

すずメッキ線は1.0mmのものを使用しましたが、0.8mm程度のものを使用したほうが良いと思います。

動作確認したところ、上手く動いているようなので次は外部入力(スイッチ)の製作です。

今回の案件では

・つまみを捻って強弱の入力が欲しい。

・そんなにきめ細かくなくても良い。3段階くらいでも構わない。

との事なので4接点のロータリースイッチを使用しました。

結線図は以下のようになります。

図のようにつまみを捻る事で導通する接点が切り替わります。

これを検証基板のヘッダーピンに接続出来るように配線します。

単純ではありますが、一般的なスイッチの「押す」「捻る」操作に変える事が出来ます。

後はプログラム側で導通したピンに応じて強弱の表現を変えれば、目的は果たせそう。

ちなみに完成したものがこちら。

 

これで一応求められていた機能は実現出来ました。

簡易な対応でモヤモヤ感はあるのですけど、少しずつブラッシュアップしていければと。

ロータリースイッチを16接点のものに変え、3~6ピン(4bit)の入力を同時に読み取れば16段階の強弱の入力も出来そうです。美しいかどうかは別ですが。

シリーズ化?

新たにVIVE TRACKERの出力で外部機器を制御したいとの要求をぶつけられています(笑)

上で製作した検証基板から出力信号を取り出して、リレー回路を介して別電源の機器のON/OFF制御を行います。

これで3.3V/20mAの制約を外す事が出来、色々と応用範囲が広がりそうです。

DC駆動の機器を接続する予定ですので、出力調整用にPWM回路も組み込むつもりです。

また、次回の投稿で紹介出来ればと思います。

出力編はこちら

https://test-www.widesoft.co.jp/news/4297

 

関連記事

TOP