К содержимому
  1. Главная
  2. Документация
  3. Камеры для Raspberry Pi
  4. Руководство по Picamera2

Руководство по Picamera2

Документация Arducam · перевод arducam-russia.ru

Введение

Picamera2 — замена Picamera на основе libcamera. Picamera была Python-интерфейсом к устаревшему стеку камеры Raspberry Pi. Picamera2 тоже предоставляет простой API на Python.

СправкаОфициальная документация Raspberry Pi по Picamera2 опубликована на GitHub и в руководстве Picamera2 Manual.

В Arducam добавили в исходную библиотеку управление автофокусом.

Picamera2 поддерживается только в образах Raspberry Pi OS Bullseye и новее, как 32-, так и 64-битных. С сентября 2022 года Picamera2 предустановлена в образах, которые скачиваются с сайта Raspberry Pi. Библиотека работает на всех платах Raspberry Pi вплоть до Pi Zero, хотя на менее мощных устройствах производительность в некоторых задачах может быть ниже.

ПримечаниеPicamera2 не поддерживается:
  • в образах на основе Buster и более ранних выпусков;
  • в образах Raspberry Pi OS Legacy;
  • в образах Bullseye и новее, где снова включён устаревший стек камеры.

Начало работы

РазрешениеСенсор
5 МпOV5647
8 МпIMX219
12 МпIMX477
12 Мп477M
12 МпIMX708
12 МпIMX378
16 МпIMX519
64 Мп64MP Hawkeye
64 Мп64MP OV64A40
0,3 МпOV7251
1,58 МпIMX296
1 МпOV9281
2 МпOV2311
2 МпIMX290/IMX462/IMX327

Управление фокусом в PiCamera2

Шаг 1. Установите libcamera

Убедитесь, что установлена libcamera версии 0.0.10:

dpkg -l | grep libcamera
Версия libcamera в выводе dpkg

Если версия ниже 0.0.10, установите последнюю:

wget -O install_pivariety_pkgs.sh https://github.com/ArduCAM/Arducam-Pivariety-V4L2-Driver/releases/download/install_script/install_pivariety_pkgs.sh 
chmod +x install_pivariety_pkgs.sh
./install_pivariety_pkgs.sh -p libcamera_dev
./install_pivariety_pkgs.sh -p libcamera_apps

Шаг 2. Установите зависимости Picamera2

sudo apt install -y python3-kms++
sudo apt install -y python3-pyqt5 python3-prctl libatlas-base-dev ffmpeg python3-pip
sudo pip3 install numpy --upgrade
sudo apt install picamera2 --upgrade

Шаг 3. Основы работы

СоветВ picamera2 автофокус управляется через picam2.set_controls: {"AfMode": 0, "LensPosition": значение_фокуса} — ручная фокусировка, {"AfMode": 1, "AfTrigger": 0} — однократный автофокус, {"AfMode": 2, "AfTrigger": 0} — непрерывный автофокус.
#!/usr/bin/python3

import time

from picamera2 import Picamera2, Preview

picam2 = Picamera2()
picam2.start_preview(Preview.QTGL)

preview_config = picam2.create_preview_configuration()
picam2.configure(preview_config)

picam2.start()
time.sleep(1)

picam2.set_controls({"AfMode": 0, "LensPosition": 425})
# If your libcamera-dev version is 0.0.10, use the following code.
# AfMode Set the AF mode (manual, auto, continuous)
# For example, single focus: picam2.set_controls({"AfMode": 1 ,"AfTrigger": 0})
#              continuous focus: picam2.set_controls({"AfMode": 2 ,"AfTrigger": 0})

time.sleep(5)

picam2.set_controls({"AfMode": 1 ,"AfTrigger": 0})

Однократный автофокус в Picamera2
ЦитатаПодробности — в примере AutofocusControl.py из репозитория ArduCAM/picamera2_examples на GitHub.

Режим фокусировки нужно задавать при каждой установке фокуса.

Установка режима фокусировки в Picamera2

Диапазон LensPosition — от 0 до 15:

Ручная фокусировка через LensPosition в Picamera2
ЦитатаПодробности — в примере ManualfocusControl.py из репозитория ArduCAM/picamera2_examples на GitHub.

Запросить цену

Укажите количество — пришлём коммерческое предложение.