Raspberry Pi用カメラ画像転送
TWELITEとApp_UARTを用いてRaspberry Pi用のカメラの画像を転送するPythonスクリプトです。 本スクリプトはRaspberryPiとRaspberryPi専用のカメラモジュールが必要です。 また、親機はRaspberryPiとLinux搭載のPCのみ対応しております。
以下のような処理を行います
親機がRaspberryPiに写真の撮影要求を送信する GPIO接続ボタンを押すか、ターミナルにコマンドを入力する ↓ RaspberryPiがカメラモジュールで撮影した写真を親機に送信する
子機(カメラ機)の接続例 | 親機(RaspberryPi)の接続例 ※ GPIO に接続するボタンは無線シャッター(シャッター要求を無線伝送)です。ボタンなしでも利用できます。 |
ダウンロード
- RasPi_Camera (2014/8/22, zip 949KB)
本スクリプトのファイル構成
本スクリプトは以下のファイルで構成されています。
- Receive.py
- Transmission.py
- parseFmt.py・parseFmt_Binary.py・transTools.py
- img/
- jenprog_RasPi/
- jenprog_linux/
- firmware/
写真を受け取るスクリプト
写真を撮影して送信するスクリプト
上記二つのスクリプトが使う関数群
写真を保存するディレクトリ
RaspberryPi用ファームウェア書き込みツール
Linux(32bitOS)用ファームウェア書き込みツール
このスクリプトで用いるTWELITE用ファームウェア
Raspberry Piの設定方法
このスクリプトを使うために必要なライブラリやアプリケーションをRaspberry Pi・LinuxPCにインストールします。 送信機・受信機ともに下記の順番で設定・インストールを行って下さい。
- カメラモジュールの有効化
- 画像編集ソフトのインストール
- 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
スクリプトの使用方法
前準備
このスクリプトを用いるためにApp_UARTを書き込んだTWELITEを2つ用意します。 このときMONOSTICK-モノスティックを用いるのが便利です。
まず、アーカイブを展開し、展開したディレクトリに移動します。
$ unzip RasPi_Camera.zip $ cd RasPi_Camera
用意したTWELITEにファームウェアを以下のコマンドを実行します。TWELITE 用のファームウェアは App_UART で、添付のバイナリは親機子機用に事前設定したものです。
- 親機のファームウェアを書き込む場合
- 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
- 子機のファームウェアを書き込む場合(RaspberryPi専用)
$ cd jenprog_RasPi $ sudo ./jenprog -p /dev/ttyUSB0 ../firmware/Child.bin $ sudo ./jenprog -r /dev/ttyUSB0
接続方法
カメラが付いたRaspberryPiには子機に設定したTWELITEを、 スイッチのついたRaspberryPiまたは、LinuxPCには親機の設定をしたTWELITEを接続してください。
子機(カメラ機)の接続例 | 親機(RaspberryPi)の接続例 |
スクリプトの実行
カメラを接続したRapsperryPiは以下のコマンドでスクリプトを実行します。
$ sudo python Transmission.pyまた、親機では以下のコマンドでスクリプトを実行します。
$ sudo python Receive.py
スイッチを押すまたはターミナル上で"s"を入力後、Enterを入力すれば、
自動的に写真が子機から親機に送信され、画面に表示されます。
どちらのスクリプトも"q"を入力後、Enterで終了します。
スクリプトのオプション
スクリプト実行時にコマンドライン引数を指定することで設定を変更できます。引数は親子共通で、下記の通りです。
引数 | 機能 | 説明 | 初期値 |
-t | シリアルポートの指定 | TWELITEと接続するシリアルポートの指定することができます。 例:sudo python Receive.py -t /dev/ttyUSB1 |
/dev/ttyUSB0 |
-b | ボーレートの設定 | TWELITEと接続するときのボーレートを指定することができます。 例:例:sudo python Receive.py -b 38400 |
115200 |
注意
- 画像を表示することができないため、Teratermやssh等リモート接続をして本スクリプトを使用しないでください。
- 本スクリプトはUSB接続のWebカメラ等は使用できません。必ずRaspberryPi用のカメラモジュールをご使用ください。