![見出し画像](https://assets.st-note.com/production/uploads/images/74497467/rectangle_large_type_2_4cecfa32c4eaab461bc5ece57350b815.png?width=1200)
Arducam imx519のフォーカス制御を試す
前回記事に引き続き、imx519のマニュアルフォーカス制御について簡単にまとめておきます。
やり方
とりあえず、使えそうなソースが公式にあるので拾ってきます。
cd ~
wget https://github.com/ArduCAM/Arducam-Pivariety-V4L2-Driver/raw/master/focus/Focuser.py
wget https://github.com/ArduCAM/Arducam-Pivariety-V4L2-Driver/raw/master/focus/v4l2_utils.py
前回作ったスクリプトを改良します。(Focuser.py,v4l2_utils.pyと同じディレクトリにスクリプトを作成して下さい。)
focuser.set(Focuser.OPT_FOCUS,xxx)でフォーカス値をセットできます。
xxxの範囲は0~4095です。
反映までラグがあるのでセットしたら適当なsleepが必要。
現在の値がほしい場合はfocuser.get(Focuser.OPT_FOCUS)で取得できます。
#2022年3月15日にpicamera2の大幅な変更があったので一部修正しました
#from picamera2 import *
from picamera2.picamera2 import *
#from null_preview import *
from time import sleep
from Focuser import Focuser
picam2 = Picamera2()
picam2.start_preview()
#preview = NullPreview(picam2)
preview_config = picam2.preview_configuration()
capture_config = picam2.still_configuration()
picam2.configure(preview_config)
picam2.start()
focuser = Focuser('/dev/v4l-subdev1')
sleep(2)
focuser.set(Focuser.OPT_FOCUS,1700)
sleep(0.5)
picam2.switch_mode_and_capture_file(capture_config, "test1.jpg")
focuser.set(Focuser.OPT_FOCUS,4095)
sleep(0.5)
picam2.switch_mode_and_capture_file(capture_config, "test2.jpg")
また、実行時にFocuser.pyで「KeyError: 'default'」が発生する場合がありました。以前確認した時は出なかったので、imx519のドライババージョンとかによるものかもしれないです。
![](https://assets.st-note.com/img/1647567118087-pGz4lbiZ1h.png?width=1200)
とりあえずFOCUSのデフォルト値を定義するキーが見つからないっぽい・・・
v4l2_utils.pyを実行するとキーは'default'ではなく'default_value'で定義されていることがわかります。
![](https://assets.st-note.com/img/1647581852490-s3cAKvV61c.png?width=1200)
なのでFocuser.pyを開いてdefault_valueに修正すると動くようになります。
![](https://assets.st-note.com/img/1647582071137-FZOtjph81K.png?width=1200)
撮った写真はこんな感じです。
意外と接写できます。
![](https://assets.st-note.com/img/1647569365979-oFnpSMZdWS.jpg?width=1200)
![](https://assets.st-note.com/img/1647569387638-gebMCZ97DW.jpg?width=1200)
(カメラから5cmくらいの距離)
ArducamカメラのサンプルコードはGitにも上げておきます。
忙しい人向け
忙しい人は下記でお試しください。
git clone https://github.com/ArcanaMfg/Arducam.git
python Arducam/ManualFocusTest/FocusTest.py
以上、Arducam imx519のフォーカス制御の紹介でした。
よろしければこちらの記事も参考にしてください。
この記事が気に入ったらサポートをしてみませんか?