К содержимому
  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 и новее, где снова включён устаревший стек камеры.

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

Для камер Pivariety выполните установку по шагам ниже.

Версия Picamera2 от Arducam почти не отличается от официальной, но из-за добавленного управления автофокусом устанавливается иначе.

Можно пользоваться и официальной документацией Raspberry Pi с примерами на GitHub, но разделы 2.1 и 2.2 в ней замените шагами ниже.

Список плат камер Pivariety:

РазрешениеМодуль камеры
2 МпIMX462
2 МпOG02B10
2 МпOV2311
2,3 МпAR0234
16 МпIMX298
18 МпAR1820
21 МпIMX230

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

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

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

dpkg -l | grep libcamera
Проверка версии libcamera

Если версия ниже 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": focus value} — ручная фокусировка, {"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 в репозитории picamera2_examples на GitHub.

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

Задание режима фокусировки перед установкой фокуса

Значение LensPosition задаётся в диапазоне 0–15:

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

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

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