はじめに
Compute Module 3
は2つのカメラを使えるのですね。
ソフト側のみ
ですが、 2つのカメラモジュール
を認識させ、簡単な操作をさせてみます。
使用するもの
前提
- Raspberry Pi Compute Module3
- 評価ボードなどに繋がっている
- OSインストール済み(今回は
Raspbian Jessie Lite
を使用してます) - ボードに
CSI CAMERA CONNECTOR
2つがついている -
CSI CAMERA CONNECTOR
にカメラモジュールが接続されている- 今回は、基板の
CAMERA0
に可視光、CAMERA1
に赤外線が接続されている
- 今回は、基板の
カメラモジュールの認識
参考URL
- ATTACHING A RASPBERRY PI CAMERA MODULE TO THE COMPUTE MODULE IO BOARD
- COMPUTE MODULE ATTACHING AND ENABLING PERIPHERALS GUIDE
カメラモジュールの有効化
pi@raspberrypi:~ $ sudo raspi-config
- 「5 Interfacing Options」選択
- 「P1 Camera 」を選択
- 「Would you like the camera interface to be enabled?」→「Yes」選択
- reboot
カーネル等のアップデート
一応、アップデート
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get upgrade
pi@raspberrypi:~ $ sudo rpi-update
ブロブファイルを作成
参考URL 1. 「Quickstart」のブロブファイルでは、2つのカメラモジュールを認識できないため、
ページ下部にあるEnable both camerasファイルから作成します
Enable both camerasをダウンロード
pi@raspberrypi:~/camera $ wget https://www.raspberrypi.org/documentation/hardware/computemodule/dt-blob-dualcam.dts
--2017-11-10 06:14:27-- https://www.raspberrypi.org/documentation/hardware/computemodule/dt-blob-dualcam.dts
Resolving www.raspberrypi.org (www.raspberrypi.org)... 46.235.227.11, 93.93.128.133, 93.93.130.214, ...
Connecting to www.raspberrypi.org (www.raspberrypi.org)|46.235.227.11|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12421 (12K) [application/octet-stream]
Saving to: ‘dt-blob-dualcam.dts’
dt-blob-dualcam.dts 100%[==================================================================================>] 12.13K --.-KB/s in 0.006s
2017-11-10 06:14:36 (2.07 MB/s) - ‘dt-blob-dualcam.dts’ saved [12421/12421]
pi@raspberrypi:~/camera $
参考URL 2.を参考にdts→binに変換し「/boot」配下に配置
pi@raspberrypi:~/camera $
pi@raspberrypi:~/camera $ ls
dt-blob.dts dt-blob-dualcam.dts
pi@raspberrypi:~/camera $
dt-blob.dts dt-blob.dts.back dt-blob-dualcam.dts
pi@raspberrypi:~/camera $ sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-dualcam.dts
/boot/dt-blob.bin: Warning (unit_address_vs_reg): Node /videocore/pins_cm/pin_config/pin@default has a unit name, but no reg property
/boot/dt-blob.bin: Warning (unit_address_vs_reg): Node /videocore/pins_cm/pin_config/pin@p0 has a unit name, but no reg property
/boot/dt-blob.bin: Warning (unit_address_vs_reg): Node /videocore/pins_cm/pin_config/pin@p1 has a unit name, but no reg property
・
・
・
pi@raspberrypi:~/camera $
# 再起動
pi@raspberrypi:~/camera $ sudo shutdown -r now
※ 定義されているが、実際にpinなどがないため、Warningがでていると思われます
再起動後、2つのカメラモジュールが認識されています
カメラモジュールを操作
コマンド
pi@raspberrypi:~ $
# 普通のカメラ
pi@raspberrypi:~ $ raspistill -o firstpic.jpg -cs 1
pi@raspberrypi:~ $
# 赤外線カメラ
pi@raspberrypi:~ $ raspistill -o firstpic_noir.jpg -cs 0
pi@raspberrypi:~ $
Python3 で操作
pi@raspberrypi:~ $ sudo apt-get install python3-venv
・
・
・
pi@raspberrypi:~ $ mkdir test
pi@raspberrypi:~ $ cd test
pi@raspberrypi:~/test $
pi@raspberrypi:~/test $ python3 -m venv env
pi@raspberrypi:~/test $ source env/bin/activate
(env) pi@raspberrypi:~/test $
(env) pi@raspberrypi:~/test $ pip install picamera
Collecting picamera
Downloading https://www.piwheels.hostedpi.com/simple/picamera/picamera-1.13-py3-none-any.whl (154kB)
100% |████████████████████████████████| 163kB 148kB/s
Installing collected packages: picamera
Successfully installed picamera-1.13
(env) pi@raspberrypi:~/test $
(env) pi@raspberrypi:~/test $
(env) pi@raspberrypi:~/test $ python
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170124] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from picamera import PiCamera
>>>
# 赤外線カメラ
>>> camera = PiCamera(camera_num=0)
>>> camera.start_preview()
<picamera.renderers.PiPreviewRenderer object at 0x744c7df0>
>>> camera.stop_preview()
>>> camera.close()
>>>
# 普通のカメラ
>>> camera = PiCamera(camera_num=1)
>>> camera.start_preview()
<picamera.renderers.PiPreviewRenderer object at 0x744c7fd0>
>>> camera.stop_preview()
>>> camera.close()
>>>
picameraの参考URLはこちら