Сегодня мы покажем вам, как использовать два модуля камер с Raspberry Pi 5. Мы рассмотрим, как подключить модули и как использовать неофициальные модули с двойными CSI портами.
Официальные модули Raspberry Pi довольно просты в использовании, так как они полностью поддерживаются Raspberry Pi OS из коробки, однако некоторые сторонние модули, такие как ZeroCam OV5647 и IMX219, требуют некоторой помощи для запуска.
Давайте покажем вам, как подключить модуль камеры к вашему Raspberry Pi 5, а затем перейдем к программной части.
Как подключить модули камер к Raspberry Pi 5Raspberry Pi 5 использует меньшие разъемы CSI/DSI, чем Raspberry Pi 4, поэтому вам понадобится адаптерный кабель или модуль, предназначенный для Raspberry Pi Zero (так как Zero и Pi 5 используют один и тот же формат разъема).
Установка кабеля камеры почти такая же, как и раньше - выключите ваш Raspberry Pi, очень осторожно поднимите зажим, вставьте кабель настолько глубоко, насколько он войдет, затем снова опустите зажим.
Важно правильно подключить кабели. Металлические зубцы должны быть обращены к разъему Ethernet и контактам PoE, вот так (на изображении ниже зажим еще не закреплен):

Совет: Если вы случайно вытащите маленький зажим из разъема, в большинстве случаев (если он не сломан) вы можете просто осторожно вставить его обратно - просто убедитесь, что он правильно поворачивается.
Как использовать два официальных модуля камеры с Raspberry Pi 5
Как уже упоминалось ранее, официальные модули камер Raspberry Pi проще всего запустить, так как они не требуют изменений в конфигурации.
Мы предполагаем, что вы используете недавно обновленную, современную полную версию Raspberry Pi OS. Подключив две камеры, вы можете открыть окно терминала и начать работу.
Проверьте, распознаются ли модули камер Raspberry Pi
Можем запустить быструю тестовую команду, чтобы убедиться, что операционная система видит оба наших модуля камеры.
Откройте новое окно терминала и введите следующую команду:
libcamera-hello --list-cameras
Вы должны увидеть результат, похожий на приведенный ниже пример.
Мы используем модуль камеры IMX219 V2 в порту 0, а также модуль камеры IMX708 3 в порту 1:
Available cameras
- 0 : imx219 [3280x2464 10-bit] (/base/axi/pcie@120000/rp1/i2c@88000/imx219@10)
Modes: 'SBGGR10_CSI2P' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
1640x1232 [30.00 fps - (0, 0)/0x0 crop]
1920x1080 [30.00 fps - (0, 0)/0x0 crop]
3280x2464 [30.00 fps - (0, 0)/0x0 crop]
'SBGGR8' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
1640x1232 [30.00 fps - (0, 0)/0x0 crop]
1920x1080 [30.00 fps - (0, 0)/0x0 crop]
3280x2464 [30.00 fps - (0, 0)/0x0 crop]
- 1 : imx708 [4608x2592 10-bit] (/base/axi/pcie@120000/rp1/i2c@80000/imx708@1a)
Modes: 'SBGGR10_CSI2P' : 1536x864 [30.00 fps - (0, 0)/0x0 crop]
2304x1296 [30.00 fps - (0, 0)/0x0 crop]
4608x2592 [30.00 fps - (0, 0)/0x0 crop]
Если вы не видите подобного результата, или только один порт показывает, что камеру обнаружено, выключите Raspberry Pi, отключите питание и подключите кабели камеры заново.
Использование двух официальных модулей камер одновременно с Raspberry Pi 5
Чтобы использовать обе официальные камеры одновременно, мы можем открыть второе окно терминала, которое позволит нам запускать отдельные процессы для каждого модуля. Назовем их «левый» и «правый» терминалы.
В левом терминале введите следующую команду:
libcamera-hello --camera 0 -t 0
Должно появиться окно, в котором вы увидите прямую трансляцию с камеры в порту 0.
Теперь запустите аналогичную команду в правом окне терминала. Мы используем «1» вместо «0», чтобы указать этому окну открыть камеру в порту 1:
libcamera-hello --camera 1 -t 0
Вы должны увидеть окно, в котором рядом с первой камерой отображается изображение со второй камеры (автофокус на новом модуле камеры 3 (слева) отлично справляется с этой задачей!):

Как использовать два неофициальных модуля камеры с Raspberry Pi 5
Теперь давайте рассмотрим, как использовать неофициальные модули.
Для нашего сегодняшнего примера мы используем модуль ZeroCam OV5647 на 5 Мп (кабель-переходник не нужен, так как он предназначен для меньшего разъема) и модуль IMX219 на 8 Мп, который мы нашли в нашем ящике со старыми образцами.
Многие из этих неофициальных модулей камер не будут работать из коробки - нам нужно будет отредактировать файл config.txt и внести некоторые изменения.

Откройте новое окно терминала и выполните приведенную ниже команду, чтобы открыть файл config.txt
sudo nano /boot/config.txt
Теперь используйте клавиши со стрелками для навигации по файлу. Нам нужно найти строку camera_auto_detect=1 и добавить перед ней #. Это «закомментирует» ее, остановив попытки нашего Raspberry Pi автоматически обнаруживать камеры. Это должно выглядеть так:
#camera_auto_detect=1
Теперь нам нужно добавить несколько новых строк под этим, чтобы установить конкретное наложение для камер, которые мы хотим использовать. Мы установили OV5647 в слот cam0, а IMX219 - в слот cam1, поэтому добавляем следующие строки:
dtoverlay=ov5647,cam0
dtoverlay=imx219,cam1
Все, что вам нужно сделать, это сохранить файл и выйти из него (Ctrl+X, затем Y), после чего перезагрузить Raspberry Pi 5.
Как и ранее, мы можем проверить, распознаются ли оба модуля, выполнив следующую команду:
libcamera-hello --list-cameras
После этого наш модуль OV5647 будет подключен к порту 0, а модуль IMX219 - к порту 1:
Available cameras
----------------
0 : ov5647 [2592x1944 10-bit GBRG] (/base/axi/pcie@120000/rp1/i2c@88000/ov5647@36)
Modes: 'SGBRG10_CSI2P' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
1296x972 [30.00 fps - (0, 0)/0x0 crop]
1920x1080 [30.00 fps - (0, 0)/0x0 crop]
2592x1944 [30.00 fps - (0, 0)/0x0 crop]
1 : imx219 [3280x2464 10-bit] (/base/axi/pcie@120000/rp1/i2c@80000/imx219@10)
Modes: 'SBGGR10_CSI2P' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
1640x1232 [30.00 fps - (0, 0)/0x0 crop]
1920x1080 [30.00 fps - (0, 0)/0x0 crop]
3280x2464 [30.00 fps - (0, 0)/0x0 crop]
'SBGGR8' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
1640x1232 [30.00 fps - (0, 0)/0x0 crop]
1920x1080 [30.00 fps - (0, 0)/0x0 crop]
3280x2464 [30.00 fps - (0, 0)/0x0 crop]
Совет: Также можно добавить другие датчики камер, такие как IMX296, OV9281 и другие.
Использование двух неофициальных модулей камер одновременно с Raspberry Pi 5
Для совместного запуска неофициальных камер используется тот же процесс, который мы показывали ранее, выполняя приведенную ниже команду в отдельных окнах терминала для каждой камеры, изменяя значения 0 и 1 по мере необходимости для доступа к камере 0 или 1:
libcamera-hello --camera 0 -t 0
Мы надеемся, что это помогло! Если у вас есть вопросы или другие советы по использованию двух камер с Raspberry Pi 5, пожалуйста, оставляйте комментарии.
Написать комментарий