古いラジコンカーをXboxコントローラーで操作可能に - ArduinoとUSBホストシールドで実現
必要な部品と材料
| Arduino UNO | ×1 |
| Arduino USBホストシールド | ×1 |
| Xbox 360 ワイヤレスコントローラー | ×1 |
| Xbox 360 ワイヤレスレシーバー | ×1 |
| L293D モータードライバ(またはSN754410) | ×2 |
| 7812 / 78S12 電圧レギュレータ | ×各1 |
| スイッチ、ヒートシンク、電源プラグ、バッテリーコネクタ等 | ×1式 |
プロジェクト概要
不要になったラジコンカー(モンスタートラック等)の基板を取り外し、Arduino UNO + USBホストシールド + Xbox 360ワイヤレスレシーバーでコントローラー入力を受信。L293Dドライバ2個で左右モーターを独立制御し、アナログスティックで操向、L2/R2トリガーで前進/後進速度を制御します。電源は単3電池10〜12本(15〜18V)をレギュレータで降圧して使用。
手順1: 車体の準備
古いラジコンカーの電子基板をすべて取り外し、モーター2つへの配線だけを残します。
手順2: Arduinoとシールドのスタック
Arduino UNOにUSBホストシールドを重ね、車体にネジ止めします。
手順3: モーター駆動回路の製作
ブレッドボードまたはユニバーサル基板上に、L293D×2個と7812/78S12レギュレータで構成するHブリッジ回路を組みます。モーター起動時の大電流(約2A)対策として78S12(大電流対応)を使用。回路図は記事内の画像を参照。
手順4: 車体への搭載と配線
製作した回路を車体の空きスペースに固定し、2つのモーターと接続。USBホストシールドにXboxレシーバーを挿します。
手順5: プログラムの書き込み
Krisian Lauszus氏のUSB_Host_Shield_2.0ライブラリ(GitHub: felis/USB_Host_Shield_2.0)をインストールし、付属のXboxワイヤレスレシーバー例題スケッチをベースにモーター制御ロジックを追加したコードを書き込みます。
コードのポイント
XBOXRECVクラスで最大4台のコントローラーに対応- L2/R2トリガーのアナログ値(0〜255)をPWMデューティー比として前進/後進モーターに出力
- 左スティックX軸(LeftHatX)で操向モーターを左右制御(デッドゾーン±7500、フル操舵±26000)
- Bボタンでブレーキ(逆方向に一瞬トルクをかけて停止)、Yボタンで全停止
- XboxボタンでLEDを回転モードに
配線のポイント
- モーター用電源は単3電池10〜12本直列(約15〜18V)を推奨。レギュレータには必ずヒートシンクを装着。
- Arduinoのロジック電源はUSBまたは別途5Vレギュレータから供給。
- L293Dの入力ピンはArduinoのPWM対応ピン(5,6,4,7等)に接続。
動作確認
コントローラーのペアリング後、シリアルモニタにボタン・スティック入力が表示されれば通信OK。実走行でトルク・速度・操向を確認し、必要ならコード内のピン割り当てや閾値を調整してください。
製造プロセス
- Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
- ジェスチャー制御 RGB テーブルランプ – インタラクティブなハンズフリー照明
- ラズベリーパイとNode-REDでAlexaからLEDを制御する - 簡単ステップバイステップガイド
- Arduinoベースのヌンチャク操作6自由度ロボットアームキット
- Arduino Nanoとジョイスティックで2軸ステッピングモーターを制御:Visuinoで簡単プログラミング
- Arduino Nanoで音声制御ロボットを自作
- スマート駐車場カウンター:Arduino、Processing、PHPでリアルタイム車両管理
- PiBot:Arduino駆動の精密ピアノ演奏ロボット
- Wi-Servo:WebブラウザからWi-Fi経由でサーボモーターを制御
- ゲーム用カスタムArduinoジョイスティックハンドルの製作
- Arduinoで自作RCポルシェカー:ステップバイステップガイド