Камера в OctoPrint: решение Arducam
1. Образ для SD-карты
Скачайте образ для SD-карты.
2. Запишите образ на SD-карту




Версия ОС и ядра:

3. Установка зависимостей
3.1. Включите драйвер фокусировки и установите libcamera
| Разрешение | Сенсор | Основной артикул | Быстрый старт |
|---|---|---|---|
| 5 Мп | OV5647 | B0176 | ПО: включение драйвера фокусировки для OV5647 |
| 8 Мп | IMX219 | B0182 | ПО: включение драйвера фокусировки для IMX219 |
| 12 Мп | IMX477 | B0272 | ПО: включение драйвера фокусировки для IMX477 |
| 16 Мп | IMX519 | B0371 | ПО: включение device tree для IMX519 |
| 21 Мп | IMX230 | B0324 | ПО: включение device tree для Arducam Pivariety |
| 64 Мп | 64MP Hawkeye | B0399 | ПО: включение device tree для 64MP Hawkeye |
Установка libcamera:
Шаг 1. Скачайте bash-скрипт.
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
Шаг 2. Установите libcamera.
./install_pivariety_pkgs.sh -p libcamera_dev
Шаг 3. Установите libcamera-apps.
./install_pivariety_pkgs.sh -p libcamera_apps
3.2. Проверка
Проверьте видеоустройство:

rpicam-still -t 5000 -o test.jpg -n
4. Скачайте исходный код плагина libcamera
Клонируйте исходный код mjpg-streamer и выполните команды ниже, чтобы собрать и установить плагин libcamera.
git clone https://github.com/ArduCAM/mjpg-streamer.git mjpg-streamer-libcamera
cd mjpg-streamer-libcamera/mjpg-streamer-experimental
git checkout bullseye
make
sudo install -m 755 _build/mjpg_streamer /opt/mjpg-streamer
sudo find _build -name "*.so" -type f -exec install -m 644 {} /opt/mjpg-streamer \;
sudo cp -a -r ./www /opt/mjpg-streamer
sudo chmod 755 /opt/mjpg-streamer/www
sudo chmod -R 644 /opt/mjpg-streamer/www
5. Настройте файл octopi.txt
Откройте /boot/octopi.txt и внесите изменения, описанные ниже.
sudo nano /boot/octopi.txt
5.1. Выберите камеру
Прокрутите файл до конца и добавьте строку:
camera="libcamera"

5.2. Задайте параметры плагина libcamera
Общие настройки
Чтобы оставить параметры по умолчанию, добавьте в octopi.txt строку:
camera_libcamera_options=""
Пример. Чтобы задать частоту кадров 60 к/с и включить непрерывный автофокус, добавьте в octopi.txt строку:
camera_libcamera_options="-afmode continuous -fps 60"

Файл настроек для OV5647/IMX219/IMX477
Для камер Arducam OV5647/IMX219/IMX477 с моторизованной фокусировкой дополнительно нужно указать файл настроек (tuning file):
Камера OV5647 с моторизованной фокусировкой:
camera_libcamera_options="-afmode continuous -fps 60 /usr/share/libcamera/ipa/rpi/vc4/ov5647_af.json"
Камера IMX219 с моторизованной фокусировкой:
camera_libcamera_options="-afmode continuous -fps 60 /usr/share/libcamera/ipa/rpi/vc4/imx219_af.json"
Камера IMX477 с моторизованной фокусировкой:
camera_libcamera_options="-afmode continuous -fps 60 /usr/share/libcamera/ipa/rpi/vc4/imx477_af.json"

Режим фокусировки
Если камера поддерживает и автофокус, и ручную фокусировку, сначала задайте режим фокусировки в параметрах. Варианты:
Однократный автофокус
camera_libcamera_options="-afmode auto -fps 60"
Непрерывный автофокус
camera_libcamera_options="-afmode continuous -fps 60"
Ручная фокусировка
camera_libcamera_options="-afmode manual -fps 60"
Описание параметров
Описание всех параметров выводит команда:
cd /home/pi/mjpg-streamer-libcamera/mjpg-streamer-experimental
./mjpg_streamer -i "input_libcamera.so -h"

5.3. Настройте вывод камеры по HTTP
Раскомментируйте в octopi.txt две строки:
camera_http_webroot="./www-octopi"
camera_http_options="-n"
6. Замените файл webcamd
Файл webcamd находится в каталоге /root/bin. Переименуйте исходный файл, чтобы сохранить резервную копию, затем скопируйте в /root/bin модифицированный Arducam файл webcamd. Выполните команды:
cd ~
sudo mv /root/bin/webcamd /root/bin/webcamd.bak
sudo wget -O webcamd https://github.com/ArduCAM/mjpg-streamer/releases/download/v1.0.3/webcamd
sudo mv webcamd /root/bin/
sudo chmod 755 /root/bin/webcamd
7. Перезагрузите Pi
sudo reboot
8. Просмотр в браузере
8.1. Изображение
Введите IP-адрес устройства (IPv4) в адресной строке браузера.
Нажмите на вкладку, на которую указывает красная стрелка на скриншоте ниже, — откроется изображение с камеры.

8.2. Управление
Установите плагин управления.
Нажмите кнопку, на которую указывает стрелка на скриншоте ниже.

Следуйте инструкциям, чтобы скачать плагин.

Вставьте ссылку на архив плагина в поле, выделенное на скриншоте:
https://github.com/The-EG/OctoPrint-CameraSettings/archive/main.zip

Затем следуйте подсказкам на странице, чтобы перезапустить сервис.
sudo reboot
8.3. Ручная фокусировка
Чтобы пользоваться ручной фокусировкой камеры с автофокусом, выберите нужный режим при настройке параметров плагина libcamera на шаге 5.2 и выполните дальнейшую настройку.
Например, для ручной фокусировки камеры OV5647 с моторизованной фокусировкой откройте octopi.txt и добавьте:
camera_libcamera_options="-afmode manual -fps 60 /usr/share/libcamera/ipa/rpi/vc4/ov5647_af.json"
