見出し画像

自作トラッカーを作ろう【SlimeVR】Part1

VRSNSを始めフルトラやってみたいけどライトハウストラッカーが高いと感じている方や、半田ごてを持っている方は、自由な発想で市販品並みのトラッカーが数千から数万円で作れてしまいますので、是非とトライしてみてください!

Wi-Fi通信可能な完全無線フルトラの製作方法を紹介します。
今回は部品購入までの説明となります。ハードウェア、ソフトウエアは次回となります。

※記事の内容を参考にしてトラブルが起こった場合、アドバイス等は出来ますが責任は負いませんので自己責任でお願いします。

2024/11/20追記
もっと手軽に自作トラッカーに挑戦できるようにDIYKitの発売を開始します!販売ページやNote記事をよくお読みの上ご購入を検討ください。

PART2

PART3

SlimeVR用PCB 専用ケースデータも配布・販売しています



オープンソース SlimeVRとは

ユーザーが好みのセンサー、モジュール等の組み合わせを行うことができ、必要な回路図やFWを公開しているプロジェクトになります。
昨年くらいからSlimeVRを使用した自作トラッカー勢やトラッカーの販売など目立つようになってきました。

制作にあたっての注意点

まず注意点を先にあげておきます。

技適について


Wi-Fiモジュールは必ず技適マークを取得しているものを使用しましょう。
技適マークのないモジュールを通信させた場合電波法違反となります。
電波法違反は、1年以下の懲役又は100万円以下の罰金の対象となります。

また技適が正規かコピーか調べる方法はこちらで検索してください。


バッテリーについて

2024/2/7追記
記事の閲覧がありがたいことに増えてきてるので注意喚起も含め追記します。身近な製品に多くのLipoバッテリーが使われていますが近年爆発や火災がニュースになっています。大抵は強い衝撃や経年劣化によるものですが
新品のバッテリーでも全く危険性がないわけではありません。
取り扱いには十分注意しましょう。
今の所、真似して作って燃えたとか私自身Lipo使ってますが燃えたりはしてません。そういう危険性があることを頭の片隅に置いておいてください!

バッテリーを搭載する場合は、充電電流やバッテリー容量に気を付けましょう。18650など保護回路のない物は必ず保護回路を付けて使用しましょう。

消費電流500maのWiFiモジュールに対し500mah以下のバッテリーを搭載したり、充電電流1Aの充電モジュールに1000mah以下のバッテリーを繋ぐことは劣化を早め大変危険なので真似しないようにしましょう!

またケースに搭載する際はバッテリーの膨張を考慮しバッテリー体積の30~50%の余裕を持たせてください。
Lipoバッテリーを使いたくない方はWiFiモジュールとセンサーのみ接続しモバイルバッテリーから給電するか、乾電池を直列で複数繋ぎ動作させてください。

モジュールについて

SlimeVRDocの回路図にあるようなWemosD1miniをaliexpressやAmazonで検索すると出てきますがこちら技適マークのない物となりますので使用は避けてください。方法としてはモジュールを取り外し換装するか申請を行い180日間利用することができます。

基本的にESP12FやESP8266モジュール単体で購入し自作基板に実装しない方はESP32モジュールを使用することをお勧めいたします。

自分はESP32miniかM5stampC3を使用。(2月に販売されたM5stampS3が気になる)

ESP8266
M5stampC3
ESP32mini

センサーの種類について

IMUセンサーの種類によってトラッキングの精度、再キャリブレーションまでの時間が変わってきます。
センサーは基本的に3軸ジャイロスコープ3軸加速度センサーの6軸か地磁気センサー搭載の9軸に分かれます。

SlimeVRServerの機能でドリフト補正機能をオンにすると安価なセンサーでも
ドリフトをある程度抑えることができます。

先に結論を述べますが、今まで製作した中でお勧めのセンサーはBNO08Xです。最近では比較的安価に購入できます。
理由はどのセンサーより精度が良く、パターンカットや初回キャリブレーションの必要がない為です。

以下センサーの使った感想も踏まえ紹介しますが、後半に出てくるICM20948、BNO08XはSlimeVRの性質上6軸動作のほうが優れていると言われています。(自分も9軸は試していません。)

MPU6050


ドリフトまでの時間5~10分 6軸
安価に手に入りますがドリフトしやすい
一番最初のトラッカーで使用。それなりに使用できました。VRCはIKの関係かドリフトしやすい。clusterでは良好でした。
アリエクで150円ほど

MPU6500


ドリフトまでの時間10~15分 6軸
安価に手に入りますがドリフトしやすい。偽造品が多め
初回制作時に購入10個中10個不良品でした。VRC、clusterともにそこそこ使用できましたがやはりドリフトが目立つ。MPU6050との差はほぼない。
アリエクで150円ほど

MPU6500+QMC5883L


ドリフトまでの時間10~30分 6軸+3軸 
安価に手に入るMPU6500とQMC5883Lを組み合わせ9軸にする方法
安定した地場環境ならドリフトしても徐々に向きが戻るが自分が試した時は上手くいきませんでした。
アリエクで合わせて300円ほど

BMI160


ドリフトまでの時間10~20分 6軸
安価で人気。海外自作勢が多く使っているイメージ。初回キャリブレーションが必要。ドリフトはMPU6500より優れているそうですが自分はMPU6500よりドリフトしやすいと感じました。
アリエクで300円ほど

ICM20948


ドリフトまでの時間15~60分 9軸(6軸)
自分は使用したことがありませんが噂では市販トラッカーにも搭載されているそうです。理由は1.8vと低電圧で駆動するからでしょう。このセンサーを購入し使えるようにするにはセンサーへの電圧をを3.3vから1.8vに変換する必要があります。一部MIKROE-4128、Adafruit ICM-20948、PimoroniPIM448は変換モジュール内蔵の為そのまま使用が可能です。
また、初回キャリブレーションが必要でメーカーによって端子をブリッジさせたりパターンカットする必要があります。
マウザーで2000円ほど


BNO085


ドリフトまでの時間30~60分 9軸(6軸)
上記センサーの中で一番精度や再キャリブレーションまでの時間が長く優秀なセンサーといえるでしょう。市販トラッカーにも同型センサーが使用されています。一般的に入手可能な物はAdafruitBNO085です。
ESP32miniにて動作確認済み。M5stampC3では不可。

GPIO8にプルアップ抵抗を追加でAdafruitBNO085使えるようになるそうです。
2023/06/22追記 めんたいさんのTwitterより引用



マウザーにて4000円ほど

こちらはBNO080ですが性能は変わりません。
アリエクで3000円ほど

必要な部品や費用

下半身5点の場合

ESP32モジュール x5

ダイオード1N5819 x5(充電しながら使用しないのであれば5個で十分です)

M5stampC3の場合(バッテリー残量を確認しないのなら不要。)
100kΩ抵抗 x5
30kΩ抵抗 x5

ESP32miniの場合(バッテリー残量を確認しないのなら不要。)
220kΩ抵抗 x5
100kΩ抵抗 x5

TP4056充電基板 x5

Lipoバッテリー1000mah以上 x5 

3pinスイッチ x5

センサー x5

ケース x5

ベルトx5

プリント基板x5

リード線

※5/20追記 抵抗について誤りがありました。正しくは100KΩと30KΩがそれぞれ5個になります。抵抗については使うモジュールによって変わる場合があります。予めご了承ください。
※5/23追記 ベルト、プリント基板、リード線

MPU系
およそ10000前後
ICM20948
およそ20000前後
BNO08X
およそ26000前後

部品の購入

オススメ

https://www.mouser.jp/

既製品ケースはタカチ工業

https://www.takachi-el.co.jp/


不良品やコピー品が稀にある

個人的にですがバッテリー、センサー、充電基板は安いのでアリエクで仕入しています。今使用しているM5stampC3は正規のお店で購入。スイッチや抵抗、ダイオードは大量購入で単価を下げています。

部品例 なのはが使用している部品になります
M5stamp C3

ESP32mini

TP4056

30KΩ

100KΩ

220kΩ

MPU6050

MPU6500

BMi160

BNO080

スイッチ

1N5819

固定用マジックバンド


上記ベルト専用フックを作成しました。BoothよりSTLデータのダウンロード又は購入できます。
https://kirisamenanoha.booth.pm/items/5355383

まとめ

今回はSlimeVRについて、注意点、モジュールやセンサーについて費用や購入サイトまでをまとめました。間違えてる点等ありましたらお申し付けください。半年間製作した際のノウハウや注意点を共有できたらと考えておりますので次回もよろしくお願いします。次回へ続く。

いいなと思ったら応援しよう!