Wiiのセンサーバーを自作してみた
そろそろWiiリモコンのCMOSイメージセンサを利用したWindowsソフトが出てきそうなのですが、Wiiを持っていないのでセンサーバーを使用するソフトが出ても試せない、それなら自分で作ってしまえということで、Wiiのセンサーバーを自作してみました。
PCでWiiリモコン使う際にはPCディスプレイ上に設置することになるので、電源はディスプレイのUSB端子から取ることにしました。
これなら電池切れの心配もありません。
Wiiに付属のセンサーバーには、バーの両端に赤外線LEDを5つ直列接続した回路がそれぞれ入っていますが、今回自作のUSBセンサーバーは入力が5Vなので赤外線LEDを3つずつ使うことにしました。
3個で足りなかった場合は並列接続で増やすことにします。
簡単な回路図
実際は電流制限用の抵抗で手頃な値が手元になかったため、100Ωと180Ωの抵抗を組み合わせて制作しています。
USBセンサーバーの材料明細です。
・赤外線LED 6個
・電流制限用抵抗 100Ω 2個
・電流制限用抵抗 180Ω 3個
・USBケーブル 1本
・配線用モール(2号?) 25cm
・Power確認用LED 1個
・紙エポ片面ユニバーサル基板
・赤と黒の配線 各30cm
材料費はセンサーバー1本あたり350円以下ですが、LEDなどは100個単位で購入したので実際はもっとかかってます。
それでも2000円程度といったところです。
で、準備が整ったのでさっそく制作に取り掛かります。
センサーバーの正確な長さが分からなかったので画像から適当に推測。
また、赤外線LEDの間隔が19cmという情報をネットで見つけたので、配線用モールを25cmにカット。
モール1本が1mなので、1本242円のモールからセンサーバーが4本作れます。
ユニバーサル基板は72×47mmで1枚60円、これからセンサーバー3本分の基板が楽に取れます。
基板サイズは約10mm×30mmです。
今回は手元にあったUSB延長ケーブルを使用
USBケーブルのVbusとGNDを接続します

ケースの下部をはめ込んで、安っぽい作りながらとりあえず完成
モールのエンドキャップを取り付ければちょっとはましになりそうですが、あいにく近所のホームセンターにはありませんでした。

テレビのREGZA 42Z2000にもUSB端子があったので繋いでみました。
デジカメで撮ると赤外線LEDが光っているのが確認できます。
完成したものの、Wiiを持っていないのでちゃんとWiiリモコンが自作センサーバーのIR LEDを検出してくれるのか検証できていません。
Wiiを入手するかWindows用のセンサーバーを使用するソフトがリリースされれば検証できるんですが、Wiiの入手はまだ大変そうなので、Windows用ソフトのリリースを待ちたいと思います。
Glove PIEがIRを使ったカーソル操作にすでに対応していることが分かったので、早速試してみました。
結果、Wiiリモコンで指した場所にポインタがきちんと移動しました。
それもかなり正確なのでちょっとビックリです。
ただし、ディスプレイから30cmぐらいの距離では位置検出がうまくいかないようで、1m程度離れる必要があります。
ここら辺はWiiを同じで近すぎても駄目のようです。
とりあえず自作USBセンサーバーでもきちんと動作はするということで検証終了です。
電源確認用のLEDはいらないような気がしてきたので、省いたバージョンも作ってみました。
追記
WiinRemoteの最新版がリリースされました。
このバージョンからIRセンサ機能が実装されています。
ちょっと試してみましたが、うちの環境では左上にポインタが張り付いてしまって正常にIRセンサ機能が動きませんでした。
Glove PIEではきちんと動作するんですけど何が原因なんでしょうか。
関係ないとは思うけど、とりあえず純正と同じ赤外線LED 5×2バージョンのセンサーバーも作って試してみようかな。
最新バージョンでうまく動作しました。
モニタから1m程度離れた距離で使用するのであれば赤外線LEDは左右1つずつでも問題ないようです。
追記
PCのモニタ用に左右の赤外線LEDの間隔を狭く(16cm)にしたバージョンも作ってみました。
あいかわらず安っぽい出来ですが、シルバーかブラックの塗装をすればもう少しマシにはなりそう。
| 固定リンク










コメント
左右のLEDの間隔を狭めてみてはどうでしょうか?
そうすればもうすこしディスプレイに近づけても
ポインティングできるような気がします
ディスプレイ用に最適化できれば面白いですね
投稿: ぶぶ | 2006/12/14 18:29
詳しい回路教えてください
どっちに何Ωの抵抗を使えばいいんですか?
投稿: ペッパー | 2006/12/14 22:34
実はディスプレイがUXGA×2な環境で左右に広すぎるのがうまく動かない原因の1つです。
WiiのセンサーバーのLED間隔19cmだと近距離で使用する際には両端3分の1ぐらいのところでポインタが動かなくなったり、あらぬ方向に飛んだりします。
モニタ1台だと通常のLED間隔でもきちんと動作します。
LED間隔を狭くして試してみましたが、12cmぐらいだと近距離でも3200×1200の全領域でポインタが動作しますが、リモコンが指す位置と画面上のポインタの位置のズレが大きくなります。
これはソフトのキャリブレーションで調整できそうですね。
投稿: まりん | 2006/12/14 23:52
入力5.0V、赤外線LEDが 1.25V/20mA × 3
なので制限抵抗は計算上は62.5Ωですが、
手元に近い値の抵抗がなかったので
100Ωと180Ωを並列接続して64.3Ωとしています。
電源確認用のLED部分は1.9V/20mA × 1で
制限抵抗の値が155Ωとなるので180Ωを使いました。
投稿: まりん | 2006/12/15 00:10
電子工作の素人でまとはずれな質問かもですが、
赤外線LED(1.25V/20mA) × 4個を直列接続すれば
5VのUSB VBusで抵抗は不要になったりしますか?
(5-1.25*3) / 0.02=62.5だけど
(5-1.25*4) / 0.02=0 (?!)
投稿: ねおん | 2006/12/24 01:47
赤外線LEDのスペックによりますが、USBのVbusは非常に安定しており高い電圧が出ることもないので自作レベルではたぶん大丈夫かと思います。
ただし、私が持っているIRLEDはVFのMaxが1.8Vなので部品ばらつきで5Vでは電圧不足になる可能性もあります。
あと、私の場合は電池駆動(1.5V*4)も考えてあの回路にしています。
入力5V時は100Ωと180Ω並列で64.3Ω、入力6V時は180Ωを外して対応が出来るようにしています。
投稿: まりん | 2006/12/24 02:30
なるほど、電池駆動も視野に入れておられたわけですね。
納得です。ご回答ありがとうございました!
投稿: ねおん | 2006/12/25 05:42
センサーバーの自作に参考にさせていただいております。
ありがとうございます。
1.2~1.3Vの赤外線LEDを4コ直列で、モバイルクルーザーPLS5USB
http://www.diatec.co.jp/products/det.php?prod_c=123
を使って、動作させてみました。
今、ケースを作るべく材料を吟味中です。箸箱をごにょごにょ・・・
電池は充電電池(eneloopが好き♪)を使えば1.2Vですので、抵抗をかまさなくても良さそうです(動作未確認)。電池ケースもあるのですが、電池がなくって(^^;
できたら報告に参ります。では。
投稿: ぞう♪ | 2006/12/25 16:33
はじめまして、鍋です。
私もセンサバーを作ってみました。
電池駆動で動いています。
マンガン電池・アルカリ電池・eneloopなどに対応しようと思うと、
それぞれ電圧が違う点で苦労しました。状況に応じて、
抵抗が少ない場合:電力を喰いすぎて不安定
抵抗が大きい場合:電流が少なく近距離しか届かない
という現象が生じます。
結局、計算がめんどくさくて可変抵抗であたりつけて作りました。
このページを参考にし、作りましたので報告です。
投稿: 鍋 | 2007/01/18 02:10
このページをLINKさせていただきました
ご報告です。
投稿: ひぐらし | 2007/02/03 00:46
自作センサーバーをメガネに装着して、遊んでみました。
ttp://myhome.cururu.jp/kacom/blog/article/21001739973
投稿: KACOM | 2008/01/21 10:14
>>KACOMさん
おおっすごい!ヘッドトラッキングシステムを自作されたんですね。
さっそくネタにさせて貰います。
投稿: まりん | 2008/01/22 01:01