Linuxヘッドマウントコンピューター-自分でビルドしてください!

この記事では、Pascalという名前のパリの職人によって作成された、発音が難しいWXHMDという名前の手作りのヘッドマウントコンピューターに焦点を当てます。 これは、ヘッドマウントディスプレイVuzix VR920に取り付けられたシングルボードコンピューター(コンピューターオンモジュール)Gumstix Overo Fireです。 その結果、オーディオ入力とオーディオ出力、3D傾斜センサー、3D磁気コンパス、TI OMAP3530 @ 600 MHzプロセッサー、Linux、WiFi、Bluetoothを備えた640x480の立体画像を提供するデバイスができました。 電力-1アンペア@ 3.7ボルト。 重量-180グラム。







1. Vuzix VR 920は、約400ユーロの高品質なヘッドマウントディスプレイです。
完全な仕様はメーカーのウェブサイトで見つけることができます。



2. Gumstix Overo Fireシングルボードコンピューター
デバイスの詳細な説明は、メーカーのウェブサイトで見つけることができます。



3.接続ボード


シングルボードコンピューターとヘッドマウントディスプレイを接続するには、電源、USB、およびアナログビデオ出力用のシンプルなデジタル-アナログコンバーター(DAC)用のコネクターを備えた小さなボードを設計する必要がありました。 DACはコンピューターのビデオ出力に接続され、出力で12ビットのアナログ信号(色成分ごとに4ビット)を作成します。 LCD出力からの同期信号は、対応するVGA接点に直接送信されます(VR 920は1.8V信号で動作しますが、名目上は5Vでなければなりません)。 実際、OMAPは完全にVGA互換の同期信号を生成できません(HSYNCパルスの持続時間が不十分な場合があります)が、VR920はそのような「間違った」信号でも動​​作します。





図1 回路図: wxhmd.schwxhmd.sch.pdf



両面プリント回路基板はgEDA gschemで設計され、gEDA PCBで飼育され、Direct Inkjet Resist Printingテクノロジーを使用してエッチングされました(詳細については、 こちらをご覧ください )。



Overoのピン配置とフットプリントは、gEDA形式のOVERO.symOVERO.fpに変換する必要がありました 。 これらのファイルは、GumstixがCreative Commons Attribution-ShareAlike2.5ライセンスで公開した仕様に基づいています。 作業の一部は手動で行われたため、エラーが含まれている場合があります。





図2。 配線wxhmd-2.pcbwxhmd-2.pcb.pdf



4.組み立て


Overo USB OTGポートは100 mAしか提供しないため、ヘッドマウントディスプレイはUSBOTG_VBUSではなくVSYSTEMを介して給電されます。





図3 VR920にボードを埋め込む前のパフォーマンステスト



デバイスでの作業を開始して、著者はVR920内の13ピンコネクタが生のUSBおよびVGA信号を受信すると想定しました。 しかし、2つのテール(USBとVGA)に分岐するケーブルには、VGA同期信号を処理する小さなボードが含まれていることがわかりました。





図4 ケーブル内部の「隠れた」ボード



Pascalは、OMAPを生成して適切な複合クロック信号を生成できるかどうかを判断しませんでした(明らかに、非標準のクロック信号を生成します)。 著者はこのボードをコンピューターボードにはんだ付けしただけです。 さらに、著者は、ヘッドマウントディスプレイコネクタに対応するコネクタを見つけることができませんでした(1 mm刻みで13接点)。 犠牲になったケーブルはこれらの問題の両方を解決しました。





図5 最後の準備:ビデオ同期ボードはコンピューターボードにはんだ付けされます





図6 最終組み立て前のテスト



5.ソフトウェア


USB VR920 USBスタックはホストに500 mAが必要であることを伝えるため、Linuxはすぐにヘッドギアを切断します。 通常、この問題はUSBハブを外部電源に接続することで解決します。 私たちの場合、ヘッドギアにはVSYSTEMが搭載されているため、これは最適なソリューションではありません。 システムのパフォーマンスを損なうことなく、usb_ignore_power.patchを使用してUSBデバイスの電源パラメーターのチェックを無視するようLinuxに強制できます。



フレームバッファ。 u-boot環境では、Linuxフレームバッファーの解像度を640x480に設定する必要があります。



OMAP LCD構成。 これらのコマンドは、VGAのような信号を生成するようにOMAP LCDサブシステムを構成します。



DISPLAY=:0.0 xset -dpms # LCD,

devmem2 0x480504fc w 0x00003000 # Polarities

devmem2 0x48050464 w 0x02f00f3f # HSYNC

devmem2 0x48050468 w 0x02000901 # VSYNC

devmem2 0x4805047c w 0x01df027f # Size

killall Xorg #








HID。 / dev / hidrawを使用して、ヘッドレスト加速度計(傾斜センサー)と対話するのが最適です。 これには、CONFIG_HIDRAW = yでGumstix Linuxカーネルを再コンパイルする必要があります。 センサーの読み取り値は、6つの16ビット値(リトルエンディアン)を含む17バイトのチャンクで読み取ることができます。



root@overo:~# hexdump -e '4/1 "%02x " 6/2 " %4d " 1/1 " %02x" "\n"' < /dev/hidraw0

00 02 02 00 -1 403 -60 82 421 189 ab

00 02 02 00 -9 374 -68 65 400 175 ab

00 02 02 00 -8 394 -65 62 396 174 ab

00 02 02 00 -19 378 -78 35 364 158 ab








6.結果




図7 色付きの長方形(左側-元の画像、右側-ヘッドギア)



E12シリーズの抵抗器を使用した場合でも(10%の誤差で)、滑らかな色遷移は得られません。 多分、色成分ごとに4ビットではなく5ビット以上を使用する価値があります。



LJユーザーコメント0x8

「この記事では、抵抗器のDACに関する問題について言及しました。 スムーズな遷移には、チャネルあたり4ビットではなく、6ビット(最初のTFTモニターにはこのビット深度がありました)より多くのDACビットが必要です。

抵抗の抵抗を減らすには、抵抗を2倍に増やします(ただし、ディスプレイ入力は多くの電流を消費しないはずです。そうしないと、トランジスタのリピータを起動する必要があります)。 そして、このような回路では、偏差が10%ではなく+ -1%の抵抗器を強く推奨します。 これは、線形の数字からアナログへの変換に必要です。 放電が多いほど、抵抗の精度がより重要になります。 ソビエトのマイクロ回路では、これらの抵抗は製造後、公称値に到達するために各チップのレーザーによって切断されました。





図8 ヘッドマウントディスプレイ上のFirefox(X11はWiFi経由でリモートで起動)



上記の写真の最高品質は、最も単純なDACの使用だけでなく、ヘッドギアスクリーン上の画像に正確に焦点が合うようにカメラを配置することがかなり問題であるという事実によっても説明されます。



vroom920.cは、3次元のステレオ画像をデモし、頭の位置を追跡するプログラムです。 彼女は、ユーザーの周りの円筒形の部屋のワイヤーイメージを作成します。





図9 ヘッドマウントディスプレイのvroom920



7.結論として


注意! このプロトタイプは、ユーザーの安全性と電磁通信に関する技術標準および規制に違反する可能性があります。



DAC 高品質のDACを使用する方が適切です。 これは筆者の最初の「鉄」プロジェクトであり、インクジェットプリンターを使用したプリント回路基板を使用して作成されたため、筆者は抵抗器に最も単純なDACを使用することで問題を回避しようとしました。



GPIO GPIO出力の抵抗上のDACはOMAP電気パラメーターをわずかに歪める可能性がありますが、これらのDACが急速に熱くなるほど問題はありません。 抵抗器がOveroを燃やす場合、著者はそれについて書くことを約束します。



バッテリー寿命。 システムは1アンペアを消費します-電力消費を最適化しません。 これは非常に受け入れられます。頭に2つの動作するマイクロ波送信機、重いリチウム電池、視界を遮る眼鏡を装着したい人はほとんどいないからです。



設計の改善。 VR920ボードには、このプロジェクトでは使用されなかった多くのトリッキーな機能があります-さまざまなVGAモードと解像度のサポート、さらには画像に重なるオンスクリーンメニューを実装します。 もちろん、これをすべて削除して、KopinのLCDモジュールを直接操作できます。 [VOGL2008]は、320x240の解像度のモデルにこれを実装しました。これには、わずかに異なるアナログRGBインターフェイスがあります。 ここでの主な問題は、9ボルト信号での作業、極性反転およびZIFフレックスコネクタの実装です。



書誌


[PCBPRT]インクジェットPCB印刷の実験: http : //www.pabr.org/pcbprt/pcbprt.en.html



[VOGL2008] Gumstixビデオ出力ボード:: Kopin K230LVアダプター: http ://pervasive.researchstudio.at/portal/node/49



この記事に記載されているデザインおよび記事に含まれている写真に対するすべての権利は、デザインの著者に帰属します。



記事の翻訳は、元の記事の著者の同意を得て行われ、投稿されます。



ソース: http : //www.pabr.org/wxhmd/doc/wxhmd.en.html



All Articles