ライブビデオストリーミング付き Pi 搭載ロボットの構築と制御
なぜ sPiRobot なのか?
これまで多くのプロジェクトで Arduino を使ってきましたが、このビルドでは Raspberry Pi をブレインとして採用。だからこそプロジェクト名は sPiRobot です。
ハードウェアチェックリスト
- 1 × Raspberry Pi(USB Web カメラと Wi-Fi に対応するモデル)
- 1 × USB Web カメラ(例:Logitech C920)
- 1 × USB Wi-Fi ドングル(USB-2.0、802.11b/g/n)
- 1 × 4 GB microSD カード(高速 UHS-I)
- 1 × Micro-USB または USB-C 電源ケーブル(最小 2 A)
- 1 × 9 V 電池(リモート操作用)
- 1 × H ブリッジ / L293D モータードライバー
- 1 × HDMI/AV モニター(初期セットアップ用)
- 1 × USB キーボード + マウス(初期セットアップ用)
ステップ 1:Raspberry Pi の準備
- 最新の Raspberry Pi OS(旧 Raspbian)を microSD カードに書き込み。公式ガイド参照:Installing Raspberry Pi OS。
- SD カードを挿入し、HDMI モニター、キーボード、マウス、Wi-Fi ドングルを接続。USB ケーブル(または信頼できる電源)で Pi に給電。
- デスクトップが読み込まれたらターミナルを開く。
ステップ 2:必須パッケージのインストール
システムを更新し、ビデオストリーミング、Web サービング、画像処理に必要なライブラリをインストール:
$ sudo apt-get update $ sudo apt-get install libv4l-dev libjpeg8-dev subversion imagemagick libapache2-mod-php5 php5 apache2 git
ステップ 3:Web カメラストリーマーのセットアップ
MJPG-Streamer を使って Web カメラ映像を HTTP で配信:
$ svn co https://svn.code.sf.net/p/mjpg-streamer/code/ MJPG-streamer $ cd MJPG-streamer/mjpg-streamer $ sudo make USE_LIBV4L2=true
以下のファイルが生成されることを確認:
- mjpg_streamer(実行ファイル)
- input_uvc.so
- output_http.so
ステップ 4:プロジェクトコードの取得
sPiRobot リポジトリをクローン:
$ git clone https://github.com/sohil4932/sPiRobot
sPiRobot フォルダが作成され、すべてのサーバーサイドスクリプトが含まれます。
ステップ 5:サーバーファイルのデプロイ
必要なファイルを Apache のドキュメントルートにコピー:
$ cd sPiRobot $ sudo cp backward.sh control.html forward.sh help_steuerkreuz.png index.html init.sh left.sh right.sh spirobot.php shutdown.sh stop.sh /var/www/
Web サーバーが GPIO ピンを制御できるよう、www-data にスーパーユーザー権限を付与:
$ echo "www-data ALL=(ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers
ステップ 6:Pi を Wi-Fi に接続して IP を確認
Raspbian にプリインストールの Wi-Fi-Config を開き、ルーターに接続。その後:
$ ifconfig
wlan0 の inet addr が Pi のローカル IP アドレス。リモート制御用に控えておきます。
まとめ
Pi に電源を入れ、Web カメラストリーミングサーバーを起動、Web インターフェースをデプロイすれば、同じネットワーク上の任意のデバイス(ポートフォワーディングでリモートアクセスも可)からロボットを制御し、カメラ映像を閲覧できます。
詳細なウォークスルーとトラブルシューティングは、元のチュートリアルまたは GitHub README を参照してください。
製造プロセス
- 初心者向けIoTチュートリアル:Raspberry Piから温度データをストリーミング
- Raspberry Piでセンサーとアクチュエータを制御:加速度計、サーボ、データストリーミング
- Raspberry Piの可能性を最大限に引き出す必須アクセサリー
- Raspberry Pi光センサーチュートリアル - LDRを配線してPythonで光量を読み取る
- Bridge Shield でスマートロボットを構築:Raspberry Pi と Arduino の統合
- DIY Wall-E 風 Raspberry Pi CD ボックスロボット
- Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
- Arduino & Raspberry Pi でインターネット制御ビデオストリーミングロボットを構築
- Raspberry Pi Webカメラロボットの構築 – ステップバイステップ動画ストリーミングガイド
- Raspberry Pi & Android スマホで Wi-Fi 制御ロボットを構築
- Pythonで作るWi-Fi制御Raspberry Piロボット - ステップバイステップガイド