ラズパイZeroとPi cameraでLEGOトレインの車載カメラをつくる

鉄道模型にはやはり車載カメラが外せません。Nゲージの鉄道模型は大きさ的に難易度が高いので、まずはLEGOトレインにラズパイzeroで車載カメラを乗せてみました。

LEGOトレイン

LEGOシティのシリーズには列車や貨物列車があります。利点として
リモコンで運転できる
今回操作は元々のレゴトレインのリモコン機能で運転します。
つまり、ストリーミングするだけです。工作不要。超簡単。
サイズが大きい
LEGOトレインは大型です。ラズパイzeroとモバイルバッテリぐらい楽勝で搭載可能です。

基本構成と手順

  • ラズパイカメラを接続したラズパイZero Wをモバイルバッテリで駆動する。
  • ラズパイ一式をレゴトレインに載せる。
  • ラズパイはWiFiして、ストリーミングすればPCからブラウザで車載画像を見ることができる。
  • レゴトレインはリモコンで動かす。

ラズパイZero Wの基本設定

ラズパイは Raspberry Pi Zero W を使用しています。リモートでストリーミングするのでWiFi内蔵のZero Wが望ましいです。

WiFi APへの接続設定

/etc/wpa_supplicant/wpa_supplicant.conf ファイルにアクセスポイントの情報を追加します。

$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

# 例
network={
        ssid="hoge-ssid"
        key_mgmt=WPA-PSK
        psk="hoge-password"
}

固定アドレス

PCからラズパイZero Wへ接続するので、固定アドレスにしておく方が便利です。

$ sudo vi /etc/dhcpcd.conf

# WiFi接続固定アドレス
interface wlan0
static ip_address=192.168.1.20/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

ラズパイZeroでストリーミング

ラズパイカメラを準備

Pi Camera V2を使用しました。
OSはRaspbian stretchです。
ラズパイZeroに接続した上で raspi-configによりcameraを有効にします。

正常に認識されているかを確認します。下記レスポンスでOK。

$ vcgencmd get_camera
supported=1 detected=1

mjpg-streamerをインストール

動画のストリーミングには mjpg-streamer を使用しました。

$ sudo apt-get update
$ sudo apt-get install libjpeg9-dev cmake
$ sudo git clone https://github.com/jacksonliam/mjpg-streamer.git mjpg-streamer
$ cd mjpg-streamer/mjpg-streamer-experimental
$ sudo make
$ cd
$ sudo mv mjpg-streamer/mjpg-streamer-experimental /opt/mjpg-streamer

mjpg-streamerを起動

$ LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i "input_raspicam.so -f 15 -q 50 -x 640 -y 480" -o "output_http.so -p 8080 -w /opt/mjpg-streamer/www"

-x 640×480 pix
-f 15 fps
-q 50 quarity
-p 8080 ポート

これで http://[ラズパイip]:8080 にアクセスすると次の画面が表示されます。

mjpg-streamerによるストリーミング

MenuからStreamを選択するとストリーミング画面が表示されます。さらに here をクリックすると画像のみの画面が表示されます。

LEGOトレイン車載カメラ

LEGOトレインに搭載します。先日IoT展で頂いたarmのモバイルバッテリがジャストサイズ。


応答性を高めたかったので、5 fps、quarity 30 にしてみました。

$ LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i "input_raspicam.so -f 5 -q 30 -x 640 -y 480" -o "output_http.so -p 8080 -w /opt/mjpg-streamer/www"

走行






無事成功です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です