WEB制作

GoPiGo2 動かしながらカメラ画像をブラウザに表示

サンプルプログラムを修正して,ブラウザで GoPiGo2 を制御しながらカメラ画像を表示させるようにした。
 

1.新たにディレクトリを作成し,サンプルプログラムをアップロード

pi@dex:~$ sudo mkdir gpgstream
pi@dex:~$ sudo chown pi:pi gpgstream
WinSCP でサンプルプログラム(/home/pi/Dexter/GoPiGo/Software/Python/Examples/Browser_Streaming_Robot)の中身をここにアップロード。

■セットアップ
pi@dex:~$ cd gpgstream
pi@dex:~/gpgstream $ sudo broser_stream_setup.sh
 

2.サンプルプログラムを修正

■カメラ画像の取り込み
camera_streamer.py の修正
self.cameraStreamerProcess = subprocess.Popen(
[ "/usr/local/bin/raspberry_pi_camera_streamer" ] )
       ↓
self.cameraStreamerProcess = subprocess.Popen(
[ "/home/pi/mjpg-streamer/mjpg_streamer" ] )

■シャットダウン
robot_web_server.py の修正


■その他
robot_controller.py の修正


www/index.html の修正
 

3.MJPG-streamerを起動するためのスクリプトを作成

■ディレクトリ移動
pi@dex:~ $ cd mjpg-streamer

■スクリプトファイルを作成
pi@dex:~/mjpg-streamer $ sudo nano start_server.sh

#!/bin/sh
PORT="8080" #ポート番号
ID="user" #ID
PW="password" #パスワード
SIZE="320x240" #画面サイズ
FRAMERATE="5" #フレームレート
export LD_LIBRARY_PATH=/usr/local/lib
./mjpg_streamer \
    -i "input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y -n" \
    -o "output_http.so -w /home/pi/gpgstream/www -p $PORT"

4.MJPG-streaming を起動して GoPiGo2 を動作させるスクリプトを作成

cd ~
pi@dex:~ $ sudo nano gpg_camera.sh

#!/bin/sh
cd /home/pi/mjpg-streamer
sudo sh /home/pi/mjpg-streamer/start_server.sh &
sleep 1
sudo python /home/pi/gpgstream/robot_web_server.py
■動作確認
pi@dex:~ $ sudo sh gpg_camera.sh

動くことを確認して、一旦終了
バックグラウンドモードで起動した stream.sh は、下記のコマンドで終了させる。

pi@dex:~ $ sudo kill -9 `pidof mjpg_streamer`

robot_web_server.py は Control + C で終了させる。

5.自動起動を設定

■ systemd スクリプト作成
pi@dex:~ $ cd /etc/systemd/system
pi@dex:/etc/systemd/system $ sudo nano gpg_camera.service

[Unit]
Description = GoPiGo2 with Mjpg-streamer

[Service]
Type=idle
ExecStart=/usr/bin/env bash  /home/pi/gpg_camera.sh

[Install]
WantedBy=multi-user.target

■デーモンを有効化
pi@dex:/etc/systemd/system $ sudo systemctl enable gpg_camera.service
 

6.再起動して動作確認

pi@dex:~ $ sudo reboot
2017/07/24 GoPiGo2   toshi