<!--親の顔より見た光景-->

日々の発見を残していきます。

ステレオカメラとIRステレオカメラによるヘビの運動量算出【3】

2つのIR カメラをrasberry pi に繋ぐ。

1. 準備

  • rasberry pi用マルチカメラアダプタ

f:id:akagi13213:20190321224936p:plain
図1 rasberry pi 用マルチカメラアダプタ

  • IR カメラ x 2

f:id:akagi13213:20190318002506p:plain
図2 赤外線カメラ

2. 接続

写真のようにフレキケーブルを接続する。GPIOピンの位置はこの通りにしないと壊れると思う。

f:id:akagi13213:20190321225615p:plainf:id:akagi13213:20190321225737p:plainf:id:akagi13213:20190321225812p:plain


マルチカメラアダプタはABCDの4つ口があり、最大4段まで拡張が可能で、1段積み用の設定、2段積み用・・と設定がある。
1段しか使わない場合は、DIPスイッチの1, 5のみONにする。

f:id:akagi13213:20190322001729p:plain
図3 1段積み用のDIPスイッチ

3. 動作確認

このマルチカメラアダプタにはライブラリはない(たぶん)ので泥臭くコードを書く必要がある。

1. コード

#!/bin/python

import RPi.GPIO as gp
import os
import time

gp.setwarnings(False)
gp.setmode(gp.BOARD)

# Setup the stack layer 1 board
gp.setup(7, gp.OUT)
gp.setup(11, gp.OUT)
gp.setup(12, gp.OUT)

def main():
  gp.output(7, False)
  gp.output(11, False)
  gp.output(12, True)
  capture(1)
  gp.output(7, False)
  gp.output(11, True)
  gp.output(12, False)
  capture(3)

def capture(cam):
  cmd = "raspistill -o capture_%d.jpg" % cam
  os.system(cmd)

if __name__ == "__main__":
  time.sleep(5)
  main()
  gp.output(7, False)
  gp.output(11, False)
  gp.output(12, True)

●コードの解説

  gp.output(7, False)
  gp.output(11, False)
  gp.output(12, True)
  capture(1)
  gp.output(7, False)
  gp.output(11, True)
  gp.output(12, False)
  capture(3)

CAM A をキャプチャする場合、ピン出力を以下にする。

ピン番号
7 OFF
11 OFF
12 ON

CAM C をキャプチャする場合、ピン出力を以下にする。

ピン番号
7 OFF
11 ON
12 OFF

その他、マルチカメラアダプタの詳細設定は以下を参照。
http://www.arducam.com/downloads/RaspCAM/RaspberryPi_Multi_Camera_Adapter_Module_UG.pdf


2. 赤外線ライトの強度調整
添付画像の赤枠箇所をマイナスドライバーで回すと、赤外線ライトの強度を変更できる。

f:id:akagi13213:20190322002634p:plain
図4 可変抵抗でライト強度を調整

3. カメラピント調整
図の赤枠箇所を回すと、ピント調整できる。

f:id:akagi13213:20190322002813p:plain
図5 ピント調整

4. 結果
左右でこんな画が撮れた。

f:id:akagi13213:20190322002942p:plainf:id:akagi13213:20190322003012p:plain
図6 IRカメラ画