Мультиплексор камер для Raspberry Pi 4: решения Arducam для ваших задач и планы на будущее


Введение: что мешает подключить две камеры к Raspberry Pi
Многие пользователи Raspberry Pi замечают, что на плате только один разъём камеры. На самом деле процессоры последних моделей, например Pi 3 и Pi 4, поддерживают две камеры, но на стандартных платах Raspberry Pi выведен только один интерфейс. На модулях Raspberry Pi Compute Module выведены оба, но для них нужна специальная несущая плата, и среди мейкеров они распространены мало.
Задача: зачем нужны несколько камер или стереокамера для Raspberry Pi 4 и других моделей
Что делать, если для особой задачи нужны несколько камер? Пожалуй, самое простое решение сейчас — объединить несколько плат Raspberry Pi с камерами. Это работает, но заметно усложняет проводку, увеличивает энергопотребление и занимает больше места. В итоге стоимость развёртывания может оказаться гораздо выше ожидаемой.
Решение: адаптеры Arducam для нескольких камер
За последние годы Arducam разработала и выпустила два типа адаптеров для нескольких камер Raspberry Pi: один позволяет подключить две камеры Pi к одной Pi Zero, другой — подключить четыре камеры Pi к одной плате серий A и B. Оба мультиплексора совместимы со стандартными драйверами камер Pi на 5 Мп (OV5647) и 8 Мп (IMX219), так что уже имеющиеся камеры можно подключить к мультиплексору, и они будут работать как обычно. При этом ограничений на модель Raspberry Pi фактически нет: стереоадаптер можно поставить туда, где стоял мультиплексор на четыре камеры, и наоборот.
В основе этих плат-адаптеров лежит мультиплексирование. Raspberry Pi позволяет подключить и распознаёт только одну камеру, поэтому адаптер переключает каналы и по очереди передаёт видеопотоки разных камер на встроенный порт CSI платы. Raspberry Pi по-прежнему работает с одной камерой, но вы получаете изображение с нескольких точек обзора.
Применение: 3D-сканер, две камеры, видеонаблюдение, камера для дрона и другое
Пример 1. 3D-сканер на камерах Raspberry Pi

Восстановление 3D-модели по нескольким снимкам, сделанным с разных ракурсов.
Пример 2. Две камеры (обзор 360°) для Raspberry Pi 4, 3B+, 3A+ и 3

Съёмка нескольких изображений в разных направлениях и их сшивка в одно.
*Есть и пример с несколькими камерами SPI: панорамная съёмка на Arduino.
Пример 3. Расширенная система видеонаблюдения на Raspberry Pi 4

Камера видеонаблюдения на базе Raspberry Pi: несколько камер подключены к одной плате и направлены в разные стороны, чтобы охватить всю территорию.
Пример 4. Камера Raspberry Pi для дронов

Большинство камер на дронах работают в режиме FPV, а с несколькими камерами можно переключаться на вид сбоку или сзади — так проще выполнять полётное задание.
Ограничения: асинхронное переключение
У такого решения много ограничений. Снимать фото или видео одновременно со всех камер нельзя: можно только переключиться на одну камеру и снять кадр или видео с неё. Камеры работают асинхронно, поэтому при переключении частота кадров может падать вдвое, а испорченные кадры приходится отбрасывать, пока не пойдут нормальные. Сигналы камер CSI-2 — это очень быстрые сигналы MIPI, чувствительные к шуму, затуханию и помехам. Поэтому очень длинные кабели и каскадное подключение адаптеров не поддерживаются.
Что дальше: настоящая стереокамера с полной синхронизацией двух камер Pi
Следующим шагом Arducam готовила настоящую стереокамеру: к ней можно одновременно подключить две камеры Pi с полной синхронизацией.
Обновление: Arducam выпустила синхронную стереоплату HAT для Raspberry Pi, подробнее — здесь.

