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

【技適マーク付き】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 ノードが復元されていないことを確認。
  • 対応手順:
    1. 自動再接続前に bluetoothctl で該当デバイスを remove
    2.  キャッシュディレクトリを丸ごと削除
      sudo rm -rf /var/lib/bluetooth/<RPIアダプタのMAC>/cache/<ELECOMのMAC>
    3. 再度 bluetoothctl でペアリング
  • これにより毎回初回と同じく /dev/input/event2 が出力され、アナログスティック制御が復活します。

今後の課題

  • 自動再接続でもキャッシュ削除を不要にする仕組みを模索中。
  • udev ルールや Bluetooth プロファイル設定の見直しで、再ペアリングなしに event2 を立ち上げられないか検証予定です。

まとめ

技適マークのない並行輸入 mBot の代替として、技適付きの Raspberry Pi Zero W +ELECOM VR リモコンを組み合わせることで、安全かつ安価に自作ロボットを動かすことができました。一方、自動再接続時の HID ノード復元問題はキャッシュ削除で回避しています。今後は再接続性の改善に取り組み、よりユーザーフレンドリーなシステムを目指します。

 

DIY&修理

Posted by 納戸 工房