自作データグローブを作ってみる ハードウエア編、ソフトウエア編
お久しぶりです。今回は前回に引き続きデータグローブの作成方法を紹介したいと思います。
前回
ハードウエア編
モジュールを使った基本的な回路図を貼っておきます。ベースにして下さい。これを基にPCB設計、組み立て、動作確認を行っていますがこうしたほうが良いや回路を間違えてる等あればご指摘ください。
以上の回路ではバッテリー駆動が出来ず、電圧が安定せず曲げセンサーのふらつきが大きかったのでバッテリーの先にDCDCコンバータを付けてESP32のレギュレータを低ドロップアウト電圧のADP3338に交換しています。
MT3608は反時計回りで7回転ほどさせると昇圧。出力電圧が5vになるように調整します。
曲げセンサーのふらつきを更に抑えたい場合はESP32の3v3からではなく別の3v3レギュレータをDCDCコンバータの後に付けて曲げセンサーに繋げてください。
また、ローパスフィルタを付けるとなお良しでしょう。
組み立て
今回は設計したPCBとケースを利用し組み立てます。
上記のMT3608についてはパターンカットしない回路で追加しました。
これだとSWオフでもバッテリーからMT3608に給電される為お勧めはしません。
ソフトウエア編
インストール方法や基本的な使い方は省きます。
必要なソフトウエア
・VSCode(PlatformIOも)
https://code.visualstudio.com/
ESP32にFWの書き込みするのに使用
・steamVR
https://store.steampowered.com/app/250820/SteamVR/?l=japanese
steamVRにてコントローラーとして認識させるのに使用
・SlimeVRServer
https://github.com/SlimeVR/SlimeVR-Installer/releases/latest/download/slimevr_web_installer.exe
SlimeVRトラッカーの制御やsteamVRに手トラッカーを追加するのに使用
・OpenGlove v0.5.1
https://store.steampowered.com/app/1574050/OpenGloves/
LucidGlovesの制御に使用。BTの設定とエミュレーション設定だけ
・Multi Track OSC Sender
https://kirisamenanoha.booth.pm/items/5167553
SkeltonInputデバイスに対応モーションをまとめたアプリに送信するのに使用
説明が大変なので動画にします。
12/28追記
ファームウェアについてですがAdvancedConfig.hの#define CLAMP_FLEXION と#define ENABLE_MEDIAN_FILTER をtrueにすることで曲げセンサーのノイズによるふらつきがほぼなくなりました。
こちらの設定を有効にするにはrunningmedianライブラリが必要になるので、platformIOのlibraryからrunningmedianを検索してインストールしてください!
もしsteamVRが起動してHMDがありませんなどエラーが出る、HeadsetWindowが邪魔になる場合は以下の方法でsteamVRのNullドライバーを有効にすると解決します。
C\ProgramFiles(x86)\steam\steamapps\common\SteamVR\drivers\null\resources\settings\default.vrsettingsをsakuraエディタで以下のように編集する。
もしくはダウンロードして置き換えてください。 https://drive.google.com/file/d/1SPH8YZFaDY-Rm8vjqfGtP3mEaalyKJWS/view?usp=sharing
また、VRHMDを利用する際にopengloveが有効になっていると
コントローラーが反応しなくなるのでアドオンの管理からオフにして再起動してください。
ソフトウエア編は以上になります。
まとめ
大雑把な解説になりましたが、自作データグローブを作成することが出来ます。初めて作成しましたが普通に使えるので安価に指の曲げ、手の回転が出来るデータグローブとしてはかなり良いのでなないかと思いました。
今後表面実装やケースの再設計を行いDIYkitとして販売出来たらよいなと考えています。
Youtubeのチャンネル登録Twitterのフォローもよろしくお願いします。
この記事が気に入ったらサポートをしてみませんか?