【技適マーク付き】激安Bluetoothアナログスティックコントローラを活用


並行輸入で手に入れた mBot を動かそうとしたところ、Bluetooth モジュールに技適マークが付いておらず、日本国内の電波法に抵触する可能性があることが判明しました。そこで、Raspberry Pi Zero W をベースに “mBot もどき” を自作し、技適マーク付きの Bluetooth コントローラで制御する仕組みを試してみました。本記事では、その経緯とトラブルシュートの方法をご紹介します。
購入した mBot の技適マーク問題
- 並行輸入品の mBot 本体は、Bluetooth モジュールに技適マークがありませんでした。
- 日本国内で無線機器を使う際は、技術基準適合証明(技適)が必須です。
- このまま使い続けるのは電波法違反になるため、安全な代替手段を検討しました。
“mBot もどき” を Raspberry Pi Zero W で自作
- Raspberry Pi Zero W には国内取得の技適マークが付帯しているため、無線通信も安心して利用可能です。
- Python+GPIO でモーター制御、Bluetooth 経由で指令を受け付けるベースシステムを構築しました。
Bluetooth コントローラ選定
- アナログスティック付きで技適マークを持つコントローラを探し、ELECOM の VR リモコンに着目。
- 最安クラスながら、十字ボタン・A/B/X/Y ボタン・アナログスティックまで搭載しており、コストパフォーマンス良好です。
- ゲームで使うようなBluetoothコントローラは、おおよそ3000円からなので、1000円で購入できるELECOMのアナログスティック付きVRリモコンはお得
ELECOM VR リモコンの接続検証
初回ペアリング時の動作
- bluetoothctl でペアリングを行うと、以下のデバイスノードが生成されました。
- /dev/input/event1
- /dev/input/event2
- /dev/input/event3
- /dev/input/js0
- /dev/input/mouse0
- このうち、/dev/input/event2 からアナログスティックの軸値が取得でき、マッピングしてロボットを自由に操作できました。
再起動→自動再接続時の不具合
- リモコンの電源オフ・電源オン後、自動で再接続させると生成されるデバイスは /dev/input/event1 のみ。
- そのため、アナログスティックの入力が一切取得できない状態に。
原因と暫定対応策
- 再接続時に Bluetooth のプロファイルキャッシュが影響し、必要な HID ノードが復元されていないことを確認。
- 対応手順:
- 自動再接続前に bluetoothctl で該当デバイスを remove
- キャッシュディレクトリを丸ごと削除
sudo rm -rf /var/lib/bluetooth/<RPIアダプタのMAC>/cache/<ELECOMのMAC>
- 再度 bluetoothctl でペアリング
- これにより毎回初回と同じく /dev/input/event2 が出力され、アナログスティック制御が復活します。
今後の課題
- 自動再接続でもキャッシュ削除を不要にする仕組みを模索中。
- udev ルールや Bluetooth プロファイル設定の見直しで、再ペアリングなしに event2 を立ち上げられないか検証予定です。
まとめ
技適マークのない並行輸入 mBot の代替として、技適付きの Raspberry Pi Zero W +ELECOM VR リモコンを組み合わせることで、安全かつ安価に自作ロボットを動かすことができました。一方、自動再接続時の HID ノード復元問題はキャッシュ削除で回避しています。今後は再接続性の改善に取り組み、よりユーザーフレンドリーなシステムを目指します。