Raspberry Pi & Android スマホで Wi-Fi 制御ロボットを構築
スマホでロボットを操縦してみたくありませんか?Raspberry Pi、L293D モータードライバー、RootSaid WiFi Command Center アプリがあれば、モバイル制御ロボットを実現できます。このガイドでは、コンポーネント選定からリスナースクリプト作成まで全ステップを解説します。
必要なコンポーネント
各アイテムのリンクから Amazon(またはお好みの小売店)で購入可能です。
- Raspberry Pi(GPIO ピン搭載モデルならどれでも可)
- 12 V リチウムポリマー(LiPo)バッテリー
- DC モーター 2 個
- ロボットシャーシ(発泡ボード、薄い金属板、または完成キット)
- L293D デュアル H ブリッジモータードライバー
- RootSaid – WiFi Command Center インストール済み Android スマホ
- WiFi ネットワーク(ルーターまたはホットスポット)
ステップバイステップ構築ガイド
1. シャーシの組み立て
Raspberry Pi、L293D、バッテリーを搭載できる頑丈なベースを設計。発泡ボードや薄い金属板などの軽量素材で重量を抑制。完成キットをオンライン購入するのも一案です。
2. 電源システムのセットアップ
12 V LiPo がモーターと L293D 内蔵レギュレーターに給電。Raspberry Pi を保護するため、DC-DC コンバーターまたはバックレギュレーターで 5 V に降圧してから Pi の 5 V 入力に供給します。
3. モータードライバーの取り付け
L293D をシャーシに固定し、2 つの DC モーターに配線。ピンアウト詳細は L293D データシート参照。モータードライバーのイネーブルピンをハイ(ロジック 1)に設定して継続動作可能にします。
4. Raspberry Pi の準備
Raspberry Pi OS(旧 Raspbian)を書き込んだ microSD カードを挿入。Pi を起動し、sudo passwd pi で pi ユーザーのパスワード設定。sudo apt update -y && sudo apt upgrade -y でシステムを最新化。
5. WiFi 接続
Pi を WiFi ネットワークに接続。ターミナルで ifconfig または hostname -I で Pi の IP アドレスを確認。スマホの IP から Pi に ping を打って疎通確認。
6. GPIO ピンの配線
6 つの GPIO ピンでモーターを制御:
- モーター 1:GPIO 33(IN1)と GPIO 11(IN2)
- モーター 2:GPIO 13(IN3)と GPIO 15(IN4)
- イネーブルピン:GPIO 29 と GPIO 31(両方 HIGH に維持)
7. リスナースクリプトのインストール
Pi 上で以下の Python スクリプトをダウンロードし controller.py として保存。UDP ポート 5050 でリッスンし、着信コマンドをモーターアクションに変換します。
import socket
import RPi.GPIO as GPIO
# GPIO 設定
GPIO.setmode(GPIO.BOARD)
# モーター 1
GPIO.setup(33, GPIO.OUT)
GPIO.setup(11, GPIO.OUT)
# モーター 2
GPIO.setup(13, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)
# イネーブルピン
GPIO.setup(29, GPIO.OUT)
GPIO.setup(31, GPIO.OUT)
GPIO.output(29, GPIO.HIGH)
GPIO.output(31, GPIO.HIGH)
# UDP ソケット
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('', 5050))
print('Listening for commands on port 5050...')
while True:
data, addr = sock.recvfrom(1024)
cmd = data.decode().strip().lower()
if cmd == 'forward':
GPIO.output(33, GPIO.HIGH); GPIO.output(11, GPIO.LOW)
GPIO.output(13, GPIO.HIGH); GPIO.output(15, GPIO.LOW)
elif cmd == 'backward':
GPIO.output(33, GPIO.LOW); GPIO.output(11, GPIO.HIGH)
GPIO.output(13, GPIO.LOW); GPIO.output(15, GPIO.HIGH)
elif cmd == 'left':
GPIO.output(33, GPIO.LOW); GPIO.output(11, GPIO.HIGH)
GPIO.output(13, GPIO.HIGH); GPIO.output(15, GPIO.LOW)
elif cmd == 'right':
GPIO.output(33, GPIO.HIGH); GPIO.output(11, GPIO.LOW)
GPIO.output(13, GPIO.LOW); GPIO.output(15, GPIO.HIGH)
elif cmd == 'stop':
GPIO.output(33, GPIO.LOW); GPIO.output(11, GPIO.LOW)
GPIO.output(13, GPIO.LOW); GPIO.output(15, GPIO.LOW)
else:
print('Unknown command:', cmd)
python controller.py でスクリプト実行。Pi は UDP コマンド受信準備完了です。
8. スマホに RootSaid をインストール
Google Play Store から RootSaid – WiFi Command Center アプリをダウンロード。アプリを開き、Pi の IP アドレスとポート 5050 を入力。画面上の矢印ボタンで移動コマンドを送信します。
9. ロボットのテスト
すべて接続・通電後、スマホから各方向を試してみてください。モーターが即座に反応すれば、Android デバイスと Raspberry Pi のリンク確立成功です。
おめでとうございます!スマートフォンから直接操縦できる完全機能する Wi-Fi 制御ロボットが完成しました。
製造プロセス
- Raspberry Pi制御アクアポニックスシステム:構築ガイド & コード
- Raspberry PiとHologramでSMS制御スマートAC電源スイッチを構築
- Bridge Shield でスマートロボットを構築:Raspberry Pi と Arduino の統合
- MonkMakes RRB2 キットで自作 Raspberry Pi ロボット – 詳細ガイド
- ライブビデオストリーミング付き Pi 搭載ロボットの構築と制御
- XMP-1 の構築:低コスト XMOS-Raspberry Pi モバイルプラットフォーム
- DIY Wall-E 風 Raspberry Pi CD ボックスロボット
- Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
- Arduino & Raspberry Pi でインターネット制御ビデオストリーミングロボットを構築
- Raspberry Pi Webカメラロボットの構築 – ステップバイステップ動画ストリーミングガイド
- Raspberry Pi でジェスチャー制御ロボットを構築 – 加速度センサーと RF 通信でハンドフリー操作