2026年5月29日金曜日

Wiiリモコン+Arduino+LEGOでラジコン作る(3):USB Host Shieldでドングルを使うをトレースしてみた

IoT女子 modern_tool_rescue シーン

このトレース企画も、気づけば3回目です。前回は LEGO のキャタピラを DC モーターでガタガタ動かすところまでやりました。今回はいよいよ「Wiiリモコンで操縦する」の核心、リモコンを Arduino につなぐ回です。

でも正直、タイトルを見て「え、それだけ?」って思っちゃったんです。だって Bluetooth ですよ?私のスマホもイヤホンもゲーム機も、ぜんぶ最初から勝手につながるじゃないですか。Arduino にリモコンをつなぐくらい、5分で終わる話では…?と完全に油断していました。

そうしたら出てきた部品が「USB Host Shield」と「Bluetooth ドングル」。おまけに基板をカッターで切る改造つき。えっ、つなぐだけなのに、なんでこんな大ごとに…?というのが今回のスタート地点です。

→ 元記事:「Wiiリモコン+Arduino+LEGO でラジコンを作る(3):USB Host Shield で Bluetooth ドングルを使えるようにする」(tech.andhandworks.com)

完成品イメージ:Wiiリモコン+Arduino+LEGO ラジコン(3)

そもそも「USB Host Shield」って何?

調べてまず驚いたのが、Arduino UNO は単体では USB 機器を「つなげる側(ホスト)」になれない、という事実でした。私たちが普段 Arduino を PC につなぐとき、Arduino は「つながれる側(デバイス)」なんですよね。マウスやリモコンみたいな機器を Arduino 側にぶら下げるには、Arduino を“親玉”に昇格させてあげる拡張基板が要る——それが USB Host Shield です。元記事では Circuits@Home 製、または SparkFun 製を使っています。

そしてその上に Bluetooth ドングル(USB に挿す Bluetooth アダプタ)を挿す。Wiiリモコンは Bluetooth でつながる機器なので、結局「Arduino →(USB Host Shield)→ ドングル →(無線)→ Wiiリモコン」という、思ったより長いバケツリレーだったんです。2015年の Arduino UNO には Bluetooth が内蔵されていなかったから、こうやって外付けで“足す”しかなかったんですね。

カッターで基板を切る…!?

いちばん声が出たのがここ。SparkFun 製のシールドは Circuits@Home のライブラリとそのままでは相性が悪く、元記事では基板を物理改造しています。手順はざっくり4つ。① Vin ラインをカット、② 7番・8番ピンのラインをカット、③ 5V レギュレータをバイパス、④ 74HC4050 というチップと RST をつなぐ。

……カッターで基板の配線を切る、って。今の感覚だと「ファームウェアのアップデートで直せないの?」と思っちゃうんですけど、ハードはソフトみたいに後から書き換えられない。配線そのものが仕様だから、合わなければ物理で直す。当たり前なんですけど、デジタルネイティブにはなかなかの衝撃でした。ちなみに 74HC4050 は電圧の高さを変換する“レベルシフタ”という部品で、5V と 3.3V みたいに電圧が違う回路同士を仲良くつなぐための小さなチップだそうです。

ライブラリは GitHub から手動コピー

動かすためのソフトは「USB Host Library 2.0」を GitHub からダウンロードして、Arduino の libraries フォルダに手で置いて、IDE を再起動。今なら Arduino IDE の「ライブラリマネージャ」で検索してポチるだけなので、フォルダに直接コピーと聞くと一瞬身構えます。でも逆に言えば、2015年の時点で GitHub に置いて手で入れる文化はちゃんとあったんだ、と妙に感心しました。

セットが済めば、Wiiリモコンの ①+② ボタン同時押しでペアリング完了。あとはボタンを押すたびにシリアルモニタに反応が出る——元記事の「一見ものすごく大変そうですが実は簡単に終わります」という一言、最初は「いや部品多すぎでは?」と疑ったんですけど、ライブラリが全部面倒を見てくれるから“コードは簡単”という意味だったんですね。疑ってすみませんでした。

2026年の私が同じことをやるなら

ここで恒例の時代差ツッコミタイムです。今これをやるなら、私は迷わず ESP32 開発ボード を選びます。ESP32 は Bluetooth が最初からチップに内蔵されているので、USB Host Shield も、ドングルも、基板のカッター改造も、ぜんぶ要りません。「Bluepad32」のようなライブラリを使えば、Wiiリモコンや市販のゲームパッドをそのまま受信できます。Claude に「ESP32 で Wiimote を受けるには?」と聞いたら、配線の考え方ごと数秒で返ってきました。

2015年に部品4種類+基板改造でやっていたことが、2026年にはボード1枚で済む。これはマウントを取りたいわけじゃなくて、純粋にすごい進歩だなと思います。逆に言えば、Bluetooth 内蔵が当たり前じゃなかった時代に、外付けを重ねて無理やり実現したこの記事は、なかなかの力技だったんですね。

今回の使用部品

覚えた用語メモ

  • USB ホスト / USB Host Shield:Arduino を「USB 機器をぶら下げる親玉」にする拡張基板。
  • Bluetooth ドングル:USB に挿して Bluetooth 通信を足すアダプタ。
  • 74HC4050:電圧の違う回路をつなぐためのレベルシフタ IC。
  • MultiWii:Wiiリモコンのモーションセンサーを流用して作られた、Arduino ベースのドローン制御プロジェクト。元記事でも「応用先」として触れられています。

次回はいよいよ最終回、Wiiリモコンで実際に DC モーターを動かして“走らせる”回です。このバケツリレーの最後がちゃんとつながるのか、お楽しみに。

関連アイテム

0 件のコメント:

コメントを投稿