LoginSignup
4
3

More than 5 years have passed since last update.

Raspberry Pi Compute Module 3 2つのカメラを認識、操作してみる(ソフト側)

Posted at

はじめに

Compute Module 3 は2つのカメラを使えるのですね。
ソフト側のみ ですが、 2つのカメラモジュール を認識させ、簡単な操作をさせてみます。

使用するもの

前提

  • Raspberry Pi Compute Module3
    • 評価ボードなどに繋がっている
    • OSインストール済み(今回は Raspbian Jessie Lite を使用してます)
    • ボードに CSI CAMERA CONNECTOR 2つがついている
    • CSI CAMERA CONNECTOR にカメラモジュールが接続されている
      • 今回は、基板の CAMERA0 に可視光、 CAMERA1 に赤外線が接続されている

カメラモジュールの認識

参考URL

  1. ATTACHING A RASPBERRY PI CAMERA MODULE TO THE COMPUTE MODULE IO BOARD
  2. COMPUTE MODULE ATTACHING AND ENABLING PERIPHERALS GUIDE

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

pi@raspberrypi:~ $ sudo raspi-config
  1. 「5 Interfacing Options」選択
  2. 「P1 Camera 」を選択
  3. 「Would you like the camera interface to be enabled?」→「Yes」選択
  4. 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はこちら

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3