無線版のご利用について
概要
本ページでは、無線版Hapbeat(Duo/Band Wireless)の利用方法の概要を紹介します。詳しい実装方法については下部の実装例やファームウェアでの公開コードをご覧ください。
基本的な利用イメージ(ESP-NOWの場合)https://gyazo.com/2b0e8bb8626ff333b214cca5d94a1b6c
1. Hapbeat 側に振動再生用の音源データ(.wav)を書き込む
2. Hapbeatと連携させるアプリケーション側(Unity, Python などで作成)で、PC等とUSB接続した送信機にテキストコマンド(例:'0,0,0,0,50,50,0')を振動させたいタイミングでシリアル通信(効果音を挿入するイメージ)
3. 送信データに基づき、該当するHapbeat内保存データを再生(再生ボリュームや受信するHapbeatの個体を別々に分けるなどの変更可能)
参考
振動用音声データの差し替え
送受信データ形式説明
無線接続方法
無線版Hapbeatは ESP32-S3-MINI-1-N8 を搭載しており、複数の方法で無線接続が可能です。
ESP-NOW
特徴:低遅延(近距離で2ms程度)でブロードキャスト可能で実装が容易。
用途:リアルタイム性の高い、ゲームアプリやイベント・施設での利用
注意事項:下記の送信機が別途必要となります。
Wi-Fi(2.4GHzのみ)
特徴:施設の無線ルーターに接続することで、広範囲での接続が可能です。公式ではMQTTを用いたサンプルを提供しています。
用途:センサーと連携した遠隔通知システムなど
※Bluetooth機能は原則サポート致しません。業務用途でBluetooth機能がどうしても必要な場合はContactよりご相談ください。
アプリケーション実装例(Unity)
FPSデモリポジトリ:https://github.com/yus988/Hapbeat_wireless_FPSdemo_Unity/tree/main
再生するタイミングでシリアル通信でカンマ区切りのメッセージを送ることで実現できます。
概要説明
SerialHanderオブジェクト(SerialHandler.cs 含)をシーンに配置
https://gyazo.com/aa21766ef4aa04d794a5aa69a2f1039c
SerialHander.cs 内でアクション名、データ名、再生部位、再生ボリュームなどを指定
https://github.com/yus988/Hapbeat_wireless_FPSdemo_Unity/blob/b609a9d8e4ae5b9a675e283a1b8c5b37aee81ad8/Assets/FPS/Scripts/Game/Shared/SerialHandler.cs#L117-L155
任意のゲームオブジェクト内でSerialHandlerをStartで呼び出し、
code:cs
void Start(){
_SerialHandler = GameObject.Find("SerialHandler").GetComponent<SerialHandler>();
}
任意の箇所で下記のように各パラメータを指定して実行。
code:cs
_SerialHandler.SendSerial("shotblaster", "wrist_L", "oneshot");
_SerialHandler.SendSerial("shotblaster", "neck", "oneshot");
_SerialHandler.SendSerial("landing", "neck", "oneshot", interpolatedValue);
実装例(銃撃時)
※SendSerialでは以下のようなパラメータ設定が可能(振動の強さを動的に変えたい場合は呼び出し元で変数を第4,5引数に指定)
code:cs
SendSerial(
string action,
string devicePos,
string playType = "oneshot",
float leftPower = -1f,
float rightPower = -1f
)
SendSeiral全体
送信機について(ESP-NOW)
送信側マイコンモジュール例:
ATOM Lite(最安) https://www.switch-science.com/products/6262
M5Stack Basic V2.7 (ディスプレイが大きくデバッグに便利)https://www.switch-science.com/products/9010?_pos=9&_sid=1111e6047&_ss=r
※シリアル通信の安定性の観点からesp32s3系統のモジュール(UART変換はmcu内蔵)ではなく、UART変換チップを別に載せたesp32c3系統のモジュールがおすすめです。esp32s3でも基本問題ありませんが、短いインターバルで連続駆動すると動作が不安定になる場合があります。
対応デバイス
Duo Wireless 説明書
Band Wireless 説明書
Duo/Band Wireless へのソフトウェアの書き込み環境の構築—書き込みテストまで
https://www.notion.so/yus988/ESP-NOW-162063f7898080878a9be85b6082d63e
ファームウェア
Hapbeat https://github.com/yus988/Hapbeat_Wireless_firmware
送信機 https://github.com/yus988/Hapbeat_Wireless_Sender