Raspberry Pi用カメラ画像転送

機能概要

TWE-LITEとApp_UARTを用いてRaspberry Pi用のカメラの画像を転送するPythonスクリプトです。 本スクリプトはカメラ撮影用としてRaspberryPiとRaspberryPi専用のカメラモジュールが1セット以上必要です。 また、親機はRaspberryPiとLinux搭載のPCのみ対応しております。

以下のような処理を行います

		親機がRaspberryPiに写真の撮影要求を送信する
          GPIO接続ボタンを押すか、ターミナルにコマンドを入力する
		↓
		RaspberryPiがカメラモジュールで撮影した写真を親機に送信する
		

カメラ接続RaspberryPi(子機) スイッチ接続RaspberryPi(親機)
子機(カメラ機)の接続例 親機(RaspberryPi)の接続例
※ GPIO に接続するボタンは無線シャッター(シャッター要求を無線伝送)です。ボタンなしでも利用できます。

ダウンロード

 

本スクリプトのファイル構成

本スクリプトは以下のファイルで構成されています。

Receive.py
写真を受け取るスクリプト
Transmission.py
写真を撮影して送信するスクリプト
parseFmt.py・parseFmt_Binary.py・transTools.py
上記二つのスクリプトが使う関数群
img/
写真を保存するディレクトリ
jenprog_RasPi/
RaspberryPi用ファームウェア書き込みツール
jenprog_linux/
Linux(32bitOS)用ファームウェア書き込みツール
firmware/
このスクリプトで用いるTWE-LITE用ファームウェア

Raspberry Piの設定方法

このスクリプトを使うために必要なライブラリやアプリケーションをRaspberry Pi・LinuxPCにインストールします。 送信機・受信機ともに下記の順番で設定・インストールを行って下さい。

  1. カメラモジュールの有効化
  2. 画像編集ソフトのインストール
  3. pythonライブラリのインストール

カメラモジュールの有効化

Raspberry Pi専用のカメラモジュールをRaspberry Piに接続し、カメラを有効にします。 LinuxPCではこの設定は不要です。 カメラモジュールは下の図のまるで示されている場所に接続します。 その後、コマンドラインで

			$ sudo raspi-config
		
と入力し、 「5 Enable Camera」→「Enable」 でカメラモジュールを有効にします。

画像編集ソフトのインストール

本スクリプトではJPEG 2000形式の画像を送受信するために、ImageMagickと呼ばれるアプリケーションでJPEG画像を変換します。 ImageMagickは下記の方法でインストールします。

			$ sudo apt-get install imagemagick
		

pythonライブラリのインストール

以下のコマンドを実行し、本スクリプトに必要なPythonライブラリをインストールします。

$ sudo apt-get install libjpeg8-dev
$ sudo apt-get install python-dev
$ sudo apt-get install python-pip
$ sudo pip install pyserial
$ sudo pip install picamera
$ sudo pip install pillow
		

スクリプトの使用方法

前準備

このスクリプトを用いるためにApp_UARTを書き込んだTWE-LITEを2つ用意します。 このときMONOSTICK(モノスティック)を用いるのが便利です。

まず、アーカイブを展開し、展開したディレクトリに移動します。

$ unzip RasPi_Camera.zip
$ cd RasPi_Camera
用意したTWE-LITEにファームウェアを以下のコマンドを実行します。TWE-LITE 用のファームウェアは App_UART で、添付のバイナリは親機子機用に事前設定したものです。
  1. 親機のファームウェアを書き込む場合
    • RaspberryPiの場合
      $ cd jenprog_RasPi
      $ sudo ./jenprog -p /dev/ttyUSB0 ../firmware/Parent.bin
      $ sudo ./jenprog -r /dev/ttyUSB0	
    • LinuxPCの場合
      $ cd jenprog_Linux
      $ sudo ./jenprog -p /dev/ttyUSB0 ../firmware/Parent.bin
      $ sudo ./jenprog -r /dev/ttyUSB0
  2. 子機のファームウェアを書き込む場合(RaspberryPi専用)
    $ cd jenprog_RasPi
    $ sudo ./jenprog -p /dev/ttyUSB0 ../firmware/Child.bin
    $ sudo ./jenprog -r /dev/ttyUSB0

接続方法

カメラが付いたRaspberryPiには子機に設定したTWE-LITEを、 スイッチのついたRaspberryPiまたは、LinuxPCには親機の設定をしたTWE-LITEを接続してください。

カメラ接続RaspberryPi(子機) スイッチ接続RaspberryPi(親機)
子機(カメラ機)の接続例 親機(RaspberryPi)の接続例

スクリプトの実行

カメラを接続したRapsperryPiは以下のコマンドでスクリプトを実行します。

			$ sudo python Transmission.py
		
また、親機では以下のコマンドでスクリプトを実行します。
			$ sudo python Receive.py

スイッチを押すまたはターミナル上で"s"を入力後、Enterを入力すれば、 自動的に写真が子機から親機に送信され、画面に表示されます。
どちらのスクリプトも"q"を入力後、Enterで終了します。

スクリプトのオプション

スクリプト実行時にコマンドライン引数を指定することで設定を変更できます。引数は親子共通で、下記の通りです。

引数 機能 説明 初期値
-t シリアルポートの指定 TWE-LITEと接続するシリアルポートの指定することができます。
例:sudo python Receive.py -t /dev/ttyUSB1
/dev/ttyUSB0
-b ボーレートの設定 TWE-LITEと接続するときのボーレートを指定することができます。
例:例:sudo python Receive.py -b 38400
115200

注意

  1. 画像を表示することができないため、Teratermやssh等リモート接続をして本スクリプトを使用しないでください。
  2. 本スクリプトはUSB接続のWebカメラ等は使用できません。必ずRaspberryPi用のカメラモジュールをご使用ください。