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

Быстрый старт: поворотная камера PTZ для Raspberry Pi

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

Подключение оборудования

Схема подключения комплекта поворотной камеры PTZ к Raspberry Pi
ПримечаниеПровода-перемычки на схеме окрашены в разные цвета только для того, чтобы их было проще различать. Порядок цветов у разных комплектов разный и может не совпадать с вашим. Поэтому при подключении ориентируйтесь не на цвет, а на положение провода.

Настройка ПО

Поддерживаемые платформы и ОС

Поддерживаемые платформы и ОС
ПлатформаBookworm (rpicam)Bullseye (libcamera/rpicam)Buster (raspistill)
Raspberry Pi 5√
Raspberry Pi 4B / 3B+ / 3A+ / Zero / Zero 2 W√√
Raspberry Pi CM3 / CM3+ / CM4 / CM5 (нужна дополнительная плата-адаптер)√√

Настройка device tree

Комплект PTZ с камерой OV5647

Настройка комплекта поворотной камеры PTZ с OV5647 для разных ОС и платформ описана в разделе «Настройка ПО — OV5647».

Комплект PTZ с камерой IMX219

Настройка комплекта поворотной камеры PTZ с IMX219 для разных ОС и платформ описана в разделе «Настройка ПО — IMX219».

Комплект PTZ с камерой IMX477

Настройка комплекта поворотной камеры PTZ с IMX477 для разных ОС и платформ описана в разделе «Настройка ПО — IMX477».

ПомощьЕсли вашей камеры нет в списке, напишите нам на quote@arducam-russia.ru.

Комплекты PTZ на Raspberry Pi 5 (Bookworm)

ПлатформаОСПоддерживаемые сенсоры
Raspberry Pi 5BookwormOV5647
Raspberry Pi 5BookwormIMX219
Raspberry Pi 5BookwormIMX477

Комплекты PTZ с OV5647 и IMX219

Комплекты PTZ с OV5647 и IMX219 работают на Raspberry Pi 5 так же, как на Raspberry Pi 4, но в Bookworm на Raspberry Pi 5 нужно настроить device tree. Остальные шаги — как в разделе «Комплекты PTZ в Bullseye» ниже.

Комплект PTZ с IMX477

Установите зависимости

sudo apt update
sudo apt install -y libatlas-base-dev python3-opencv python3-picamera2
sudo apt install python3-numpy
Скачайте исходный код

git clone https://github.com/ArduCAM/PTZ-Camera-Controller.git
Включите модуль камеры

sudo nano /boot/firmware/config.txt 
#Find the line: camera_auto_detect=1, update it to:
camera_auto_detect=0
#Find the line: [all], add the following item under it:
dtoverlay=imx477
#Save and reboot.

Если комплект подключён к порту cam0 на Raspberry Pi 5, внесите такие изменения:


sudo nano /boot/firmware/config.txt 
#Find the line: camera_auto_detect=1, update it to:
camera_auto_detect=0
#Find the line: [all], add the following item under it:
dtoverlay=imx477,cam0
#Save and reboot.
Включите I2C

1. Выполните команду sudo raspi-config.

2. Выберите пункт Interface Options и нажмите Enter.

Пункт Interface Options в меню raspi-config

3. Выберите I2C и нажмите Enter.

Пункт I2C в меню raspi-config

4. Выберите YES и нажмите Enter для подтверждения.

Подтверждение включения I2C

5. Выйдите из raspi-config и перезагрузите Raspberry Pi, чтобы изменения вступили в силу.

Запустите FocuserExample.py
cd PTZ-Camera-Controller/B016712MP
python3 FocuserExample.py

После запуска программы сначала нажмите клавишу T и подождите около 8 секунд: режим сменится с «Fix» на «Adjust». В режиме «Adjust» зумом, фокусом, ИК-фильтром и другими функциями можно управлять с клавиатуры.

Окно программы управления камерой PTZ

Подробнее — в документации проекта на GitHub.

Комплекты PTZ в Bullseye

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

sudo apt-get install python3-opencv

Шаг 2. Скачайте исходный код

git clone https://github.com/ArduCAM/PTZ-Camera-Controller.git

Шаг 3. Включите I2C

1. Выполните команду sudo raspi-config.

2. Выберите пункт Interface Options и нажмите Enter.

Пункт Interface Options в меню raspi-config

3. Выберите I2C и нажмите Enter.

Пункт I2C в меню raspi-config

4. Выберите YES и нажмите Enter для подтверждения.

Подтверждение включения I2C

5. Выйдите из raspi-config и перезагрузите Raspberry Pi, чтобы изменения вступили в силу.

Шаг 4. Включите драйвер камеры

Настройте драйвер по разделу для вашей камеры: «Камеры Raspberry Pi — настройка device tree».

Шаг 5. Запустите пример

Камеры OV5647 и IMX219
cd PTZ-Camera-Controller
python3 FocuserExample.py
Камера IMX477
cd PTZ-Camera-Controller/B016712MP
python3 FocuserExample.py
Окно программы управления камерой PTZ

Подробнее — в документации проекта на GitHub.

Камеры PTZ в Ubuntu

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

sudo apt-get update && sudo apt-get upgrade
sudo apt install -y cmake
sudo apt install libyaml-dev
sudo apt install libpng-dev
sudo apt install -y libcamera-dev libepoxy-dev libjpeg-dev libtiff5-dev
sudo apt install -y python3-pip git
sudo pip3 install jinja2
sudo apt install -y libboost-dev
sudo apt install -y libgnutls28-dev openssl libtiff5-dev
sudo apt install -y qtbase5-dev libqt5core5a libqt5gui5 libqt5widgets5
sudo apt install -y meson
sudo pip3 install pyyaml ply
sudo pip3 install --upgrade meson
sudo apt install -y libglib2.0-dev libgstreamer-plugins-base1.0-dev    
sudo apt install -y cmake libboost-program-options-dev libdrm-dev libexif-dev
sudo apt-get install python-opencv
sudo apt-get install python3-smbus

Шаг 2. Соберите libcamera

git clone git://linuxtv.org/libcamera.git
cd libcamera
meson build --buildtype=release -Dpipelines=raspberrypi -Dipas=raspberrypi -Dv4l2=true -Dgstreamer=enabled -Dtest=false -Dlc-compliance=disabled -Dcam=disabled -Dqcam=enabled -Ddocumentation=disabled -Dpycamera=enabled
ninja -C build   # use -j 2 on Raspberry Pi 3 or earlier devices
sudo ninja -C build install
#Adding dynamic link libraries to __int_py will not copy successfully
sudo cp -r ~/libcamera/build/src/py/libcamera/ /usr/local/lib/python3.10/dist-packages/
sudo rm /usr/local/lib/python3.10/dist-packages/libcamera/__init__.py
sudo bash -c 'cat /home/#your account name#/libcamera/build/src/py/libcamera/__init__.py >> /usr/local/lib/python3.10/dist-packages/libcamera/__init__.py'

Шаг 3. Соберите libcamera-apps

git clone https://github.com/raspberrypi/libcamera-apps.git
cd libcamera-apps
mkdir build
cd build
cmake .. -DENABLE_DRM=1 -DENABLE_X11=1 -DENABLE_QT=1 -DENABLE_OPENCV=0 -DENABLE_TFLITE=0
make -j4  # use -j1 on Raspberry Pi 3 or earlier devices
sudo make install
sudo ldconfig # this is only necessary on the first build

Шаг 4. Соберите python-kms++

git clone https://github.com/tomba/kmsxx.git
cd kmsxx
git submodule update --init
meson build
sudo ninja -C build install 
sudo cp -r ~/kmsxx/build/py/pykms/ /usr/local/lib/python3.10/dist-packages/
sudo ldconfig

Шаг 5. Установите Picamera2

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

Шаг 6. Измените файл конфигурации

sudo vi /boot/firmware/config.txt

Найдите строку camera_auto_detect и замените её на camera_auto_detect=0.

В конец файла добавьте строку dtoverlay= с названием сенсора.

Например:

dtoverlay=imx477

Шаг 7. Разрешите доступ к /dev/dma_heap в Ubuntu

# add rule in /etc/udev/rules.d/raspberrypi.rules and add rule
SUBSYSTEM=="dma_heap", GROUP="video", MODE="0660"
# Add user to video group Then reboot
sudo usermod -a -G video $USER 

Шаг 8. Запустите проект

git clone https://github.com/ArduCAM/PTZ-Camera-Controller.git
cd PTZ-Camera-Controller
sudo python3 FocuserExample.py

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

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