カメラ画像転送スクリプト

機能概要

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

		親機がRaspberryPiに写真の撮影要求を送信する
		↓
		RaspberryPiがカメラモジュールで撮影した写真を親機に送信する
		
のような処理を行います。


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

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

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つ用意します。 このとき ToCoStick を用いるのが便利です。

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

$ unzip RasPi_Camera.zip
$ cd RasPi_Camera
		
用意したTWE-Liteにファームウェアを以下のコマンドを実行します。
  1. 親機のファームウェアを書き込む場合
  2. 子機のファームウェアを書き込む場合(RaspberryPi専用)
  3. $ 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用のカメラモジュールをご使用ください。