Raspberry Pi カメラモジュール

Raspberry Pi カメラモジュールを買った。

早速使ってみる。

1.カメラ基板から出ているリボンケーブルを
Raspberry Pi 2 基板の「CAMERA」と書かれてるとこにつぐ。

2.raspi-config にカメラを有効にする項目があるので有効にする。

$ sudo raspi-config

「5 Enable Camera」で Enable(有効)にする。

3.カメラを使うためのコマンドが用意されている。

静止画撮影
raspistill

静止画撮影 -o オプションで出力ファイル名を指定
$ raspistill -o test.jpg

するとエラーメッセージが。

* failed to open vchiq instance
(* vchiqインスタンスを開くことができませんでした)

パーミッションの問題らしい。
$ ls -l /dev/ | grep vch
crw-rw—T 1 root video 248, 0 Jan 1 1970 vchiq

よくわからないけど、その他にも rw を追加
$ sudo chmod a+rw /dev/vchiq

確認
$ ls -l /dev/ | grep vch
crw-rw-rwT 1 root video 248, 0 Jan 1 1970 vchiq

もう一度撮影
$ raspistill -o test.jpg

今度は成功した。
jpgファイルをSFTPソフトでWindowsにダウンロードして確認すると
天井の画像が。初撮影成功。

なんかソフトフォーカスがかかっている。
よく見るとレンズに保護フィルムが付いていた。
保護フィルムを剥がしてもう一度撮影すると、なかなかシャープな絵が。

今のスマートフォンのカメラには及ばないけど、
昔のガラケーカメラよりは良い画質ぐらいな感じかな。

防犯カメラに使っても十分誰か判別できると思う。

jpgファイルの詳細を見ると、
大きさ 2592×1944
水平方向の解像度 72dpi
垂直方向の解像度 72dpi
カメラの製造元 RaspberryPi
カメラのモデル RP_OV5647
絞り値 f/2.9
露出時間 1/14 秒
ISO 速度 ISO-250
となっていた。へー。

動画撮影
raspivid

ドリル刃・ルータ刃用のケース

ドリルやルータの刃を買うと刃だけでケースが無かったりします。
安い刃を買うとほぼ無いです。

今までもホームセンターや東急ハンズなどで思いついた時に探していたのですが、無いんですよね。

が、とうとう見つけました。「牧野工業」という会社が出しています。

Amazonで「牧野工業」を検索すると出てきます。
サイズも様々。

Amazonで「牧野工業」

スイッチサイエンス の BME280搭載 温湿度・気圧センサモジュール

Raspberry Pi2 で、Pythonのサンプルプログラムを動かして温度・湿度・気圧を一応取得出来たので方法を残しておきます。

■ハードウェアについて

今回使った BME280搭載 温湿度・気圧センサモジュールは、スイッチサイエンスから出ているものです。
1cm×2cmのサイズで、温度・湿度・気圧の3種類の環境情報が取得可能です。
接続は、I2CとSPIで接続できます。
電源電圧は、DC1.8V~3.3V
Raspberry Pi とつないで動作させることができます。

スイッチサイエンス商品ページ
https://www.switch-science.com/catalog/2236/

Amazonでも買えます。

■Raspberry Pi 2との接続

SDO: Hi,LoでI2Cアドレスが決まる(Hiの時 0x77, Loの時 0x76)そうで、今回はGND(Lo)につなぐ(サンプルプログラムが0x76で書かれてる)。
SCK: I2C SCL
SDI: I2C SDA
CSB: 3.3V これはなんで3.3Vなのか謎。そのうち調べる。
GND: GND
Vcore: Vioはつながっているので特につながなくてもいいはず。
Vio: 3.3V

BME280_raspberrypi

 

■raspi-configでI2Cを有効にする

raspi-config を起動してI2Cを有効にします。

$ sudo raspi-config

raspi-config 8 Advanced Options

raspi-config A7 I2C

あと、YES。

■設定

/etc/modules に i2c-dev を追加

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
i2c-dev

 

■I2Cのアドレスを確認

$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

 

■サンプルプログラム取得

$ wget https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py
--2015-08-16 03:36:21-- https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 103.245.222.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|103.245.222.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3867 (3.8K) [text/plain]
Saving to: `bme280_sample.py'

100%[================================================>] 3,867 --.-K/s in 0s

2015-08-16 03:36:25 (13.3 MB/s) - `bme280_sample.py' saved [3867/3867]

 

■サンプルプログラム実行

$ sudo python bme280_sample.py
Traceback (most recent call last):
 File "bme280_sample.py", line 3, in <module>
 import smbus
ImportError: No module named smbus

エラーが出た。smbusってのがないっぽい。

■ソフトインストール

$ sudo apt-get install python-smbus
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
 python-smbus
0 upgraded, 1 newly installed, 0 to remove and 25 not upgraded.
Need to get 11.9 kB of archives.
After this operation, 95.2 kB of additional disk space will be used.
Get:1 http://archive.raspberrypi.org/debian/ wheezy/main python-smbus armhf 3.1.1+svn-1 [11.9 kB]
Fetched 11.9 kB in 1s (9,661 B/s)
Selecting previously unselected package python-smbus.
(Reading database ... 79545 files and directories currently installed.)
Unpacking python-smbus (from .../python-smbus_3.1.1+svn-1_armhf.deb) ...
Setting up python-smbus (3.1.1+svn-1) ...

 

■再度サンプルプログラム実行

$ sudo python bme280_sample.py
temp : 32.17 ℃
pressure : 1008.27 hPa
hum : 49.47 %

取得できた。でも気温が少し高めに出てる気がする。 とりあえずサンプルプログラムそのままで動かしたけど、微調整とかできるのかな?

 

参考

https://www.switch-science.com/catalog/2236/
http://qiita.com/masato/items/027e5c824ae75ab417c1
http://trac.switch-science.com/wiki/BME280