Многокамерные модули Jetvariety: руководство пользователя
Введение
Arducam 2MP*2 Stereo Camera MIPI Module — модуль стереокамеры с двумя синхронизированными монохромными сенсорами OV2311 с глобальным затвором (2 × 2 Мп). Он подключается напрямую к разъёмам MIPI CSI-2 на Raspberry Pi и Jetson Nano и работает на этих платформах с драйвером камеры V4L2. Модуль легко встроить в собственную аппаратную разработку или использовать с собственными алгоритмами на встраиваемых системах — для измерения глубины, 3D-картографирования, SLAM и других задач.
Что такое Camarray
Camarray — серия встраиваемых стереокамер и решений с несколькими камерами от Arducam. Это развитие платы Arducam Sync Stereo Camera HAT: Camarray подключает до 4 синхронизированных модулей камер к встраиваемой системе — Raspberry Pi, Jetson Nano, Xavier NX — так, что система видит их как одну камеру в одном слоте. С Camarray число камер больше не ограничено числом разъёмов на основной или несущей плате, а драйверы камер от Arducam делают многокамерные приложения гибче.
- Плата Camarray HAT не поддерживает цифровое панорамирование в режиме объединения с половинным разрешением и программное управление скоростью панорамирования.
- Плата Camarray HAT не обрезает кадр вдвое (когда вдвое уменьшаются и горизонтальное разрешение каждой камеры, и угол обзора), а сжимает его: горизонтальное разрешение каждой камеры уменьшается вдвое, а угол обзора не меняется. Поэтому поддержка режима сканирования ей не нужна.
Общие характеристики
Сенсор
| Модель сенсора | OV2311 |
|---|---|
| Тип затвора | Глобальный затвор |
| Активные пиксели | (1600 × 2) × 1300 |
| Разрешение | 2 × 2 Мп |
| Оптический формат | 1/2.9" |
| Размер пикселя | 3 × 3 мкм |
| Цветной фильтр | Нет (монохромный) |

Объектив
| Сменный объектив | Да |
|---|---|
| Диафрагма | F2.8 |
| Фокусировка | Ручная фокусировка |
| Дистанция фокусировки | От 30 см до бесконечности (при фокусировке на бесконечность) |
| Фокусное расстояние | 2,8 мм |
| Угол обзора | 83° по горизонтали |
| Крепление объектива | M12 |
| Чувствительность к ИК | Без ИК-фильтра (чувствителен к ИК-излучению) |

Плата камеры
| Размер платы камеры | 105 × 24 мм |
|---|

| № вывода | Название | Тип | Описание |
|---|---|---|---|
| 1 | 3V3 | Питание | Питание 3,3 В |
| 2 | FSIN | Вход | Вход кадровой синхронизации |
| 3 | STB | Выход | Выход стробирования светодиода |
| 4 | GND | Земля | Земля |
| 5 | 3V3 | Питание | Питание 3,3 В |
| 6 | SDA | Вход-выход | Данные последовательного интерфейса SCCB (вход-выход) |
| 7 | SCL | Вход | Тактовый вход последовательного интерфейса SCCB |
| 8 | GND | Земля | Земля |
Разъём и шлейф
| Интерфейс разъёма | MIPI CSI-2, 15 контактов, 2 линии |
|---|---|
| Длина шлейфа | 150 мм (15 контактов), 150 мм (15–22 контакта) |
| Ответный разъём | SFW15R-2STE1LF |
| № вывода | Название | Описание |
|---|---|---|
| 1 | GND | Земля |
| 2 | CAM_D0_N | Линия данных MIPI 0 (−) |
| 3 | CAM_D0_P | Линия данных MIPI 0 (+) |
| 4 | GND | Земля |
| 5 | CAM_D1_N | Линия данных MIPI 1 (−) |
| 6 | CAM_D1_P | Линия данных MIPI 1 (+) |
| 7 | GND | Земля |
| 8 | CAM_CK_N | Тактовая линия MIPI (−) |
| 9 | CAM_CK_P | Тактовая линия MIPI (+) |
| 10 | GND | Земля |
| 11 | CAM_IO0 | Включение питания |
| 12 | CAM_IO1 | Светодиодный индикатор |
| 13 | CAM_SCL | I2C SCL |
| 14 | CAM_SDA | I2C SDA |
| 15 | CAM_3V3 | Вход питания 3,3 В |
Работа с официальным драйвером V4L2
| Формат видео | GREY (8 бит) / Y10P (10 бит) |
|---|---|
| Выходной интерфейс | Последовательный MIPI, 2 линии |
| Форматы вывода | Монохромный RAW, 8/10 бит |
Частота кадров (регулируется в пределах 5–50 к/с)
| Raspberry Pi | Jetson Nano | |
|---|---|---|
| RAW8 (GREY) | 3200 × 1300 при 50 к/с | 3200 × 1300 при 50 к/с |
| RAW10 (Y10P) | 3200 × 1300 при 50 к/с | 3200 × 1300 при 50 к/с |
Быстрый старт
Подключение оборудования

Проверка драйвера
Этот шаг нужен, чтобы проверить, не установлены ли другие драйверы. Если вы уверены, что других драйверов нет, пропустите его и переходите к установке драйвера Arducam V4L2.
1. Типы драйверов
Для Jetson есть три драйвера:
- официальный драйвер IMX219;
- драйвер Arducam IMX477;
- драйвер Arducam V4L2.
1) Драйверы Arducam IMX477 и Arducam V4L2 при установке автоматически заменяют другие драйверы, удалять их вручную не нужно.
2) Чтобы использовать официальный драйвер IMX219, удалите драйвер Arducam IMX477 или Arducam V4L2 командой:
sudo dpkg -r arducam-nvidia-l4t-kernel
3) Драйвер Arducam IMX477 устанавливается так же, как драйвер Arducam V4L2, отличается только пакет драйвера (.deb).
Этот модуль работает с драйвером Arducam V4L2.
2. Проверьте драйвер
Выполните команды ниже и посмотрите, есть ли ответ. Если ответа нет, соответствующий драйвер не установлен.
Проверка официального драйвера IMX219:
dmesg | grep imx219

Проверка драйвера Arducam IMX477:
dmesg | grep imx477

Проверка драйвера Arducam V4L2:
dmesg | grep arducam

Установка драйвера Arducam V4L2
Подробная инструкция — на этой странице.
Первый запуск
1. Установите модуль V4L2 для Python
Для Python 3.x:
wget https://bootstrap.pypa.io/get-pip.py

Введите следующую команду и нажмите Enter — загрузка займёт несколько минут.
sudo python3 get-pip.py


sudo pip3 install v4l2-fix


Как исправить ошибку, описано в баг-трекере Launchpad проекта python-v4l2 (ошибка № 1664158).
2. Скачайте пример кода
git clone https://github.com/ArduCAM/MIPI_Camera.git


3. Проверьте, определилась ли камера
ls /dev/video0

4. Проверьте поддерживаемые форматы видео
v4l2-ctl --list-formats-ext
5. Вывод изображения в реальном времени
Если вы работаете с Jetson удалённо (например, через MobaXterm), для вывода изображения выполните следующую команду (один раз):
export DISPLAY=:0.0
Перейдите в каталог программы:
cd MIPI_Camera/Jetson/Jetvariety/example/
Сейчас OV2311 поддерживает такие команды:
RAW8:
python3 arducam_displayer.py -f GREY --width 3200 --height 1300 -d 0 --fps
RAW10:
python3 arducam_displayer.py -f Y16 --width 3200 --height 1300 -d 0 --fps
GREY — для RAW8, Y16 — для RAW10. Параметры--widthи--heightзадают ширину и высоту входного изображения. Параметр--fpsвыводит текущую частоту кадров; если она не нужна, уберите этот параметр.
Например, выполните команду:
python3 arducam_displayer.py -f GREY --width 3200 --height 1300 -d 0 --fps
В командной строке в реальном времени обновляется частота кадров.

Чтобы закрыть окно с изображением, нажмите Ctrl+C.


6. Приём данных без вывода изображения
Сохранение RAW-изображения:
v4l2-ctl --set-fmt-video=width=3200,height=1300,pixelformat=GREY --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=ov2311.raw -d /dev/video0
RAW8:
v4l2-ctl --set-fmt-video=width=3200,height=1300,pixelformat='GREY' --stream-mmap --stream-count=-1 -d /dev/video0
RAW10:
v4l2-ctl --set-fmt-video=width=3200,height=1300,pixelformat='Y10P' --stream-mmap --stream-count=-1 -d /dev/video0

7. Настройка экспозиции
Откройте два терминала: в первом выполните команду вывода изображения, во втором — команду настройки экспозиции.
Настройка экспозиции:
v4l2-ctl -c exposure=1000
Просмотр параметров экспозиции (минимум, максимум, значение по умолчанию):
v4l2-ctl -l

Например, выполните во втором терминале команду:
v4l2-ctl -c exposure=6000

Чем больше время экспозиции, тем ярче изображение и ниже частота кадров.
8. Настройка усиления
Откройте два терминала: в первом выполните команду вывода изображения, во втором — команду настройки усиления.
Настройка усиления:
v4l2-ctl -c gain=12
Просмотр параметров камеры (минимум, максимум, значение по умолчанию):
v4l2-ctl -l

Например, выполните во втором терминале команду:
v4l2-ctl -c gain=200

Чем больше усиление, тем ярче изображение; частота кадров при этом не меняется.
9. Изменение частоты кадров
Чтобы изменить частоту кадров, введите команду, подставив вместо «X» нужное значение:
v4l2-ctl -c frame_rate=X
Например, нужно установить 40 к/с. Откройте два терминала и в первом введите команду:
python3 arducam_displayer.py -f GREY --width 3200 --height 1300 -d 0 --fps

Во втором терминале введите команду для изменения частоты кадров:
v4l2-ctl -c frame_rate=40

Чтобы посмотреть диапазон частоты кадров в текущем режиме вывода, введите во втором терминале команду:
v4l2-ctl -l



Вывод изображения в VLC
Откройте медиаплеер VLC.

1. Выведите изображение
Нажмите Ctrl+C.

В поле «Название видеоустройства» выберите «/dev/video0» и нажмите «Воспроизвести».


2. Настройте экспозицию, усиление и частоту кадров
Нажмите Ctrl+E и на вкладке «v4l2 control» отрегулируйте ползунками параметры «Exposure» (экспозиция), «Gain» (усиление) и «Frame_rate» (частота кадров).


Вывод изображения в MPlayer
1. Установите mplayer
sudo apt-get install mplayer
2. Выведите изображение
mplayer tv:// -tv driver=v4l2:device=/dev/video0
Не вводите эту команду в удалённом сеансе, иначе программа зависнет.

Или введите следующую команду, чтобы масштабировать изображение:
mplayer tv:// -tv driver=v4l2:device=/dev/video0 -zoom -x 1280 -y 520
Параметры -x и -y задают ширину и высоту масштабированного изображения; меняйте их пропорционально.

Что дальше
После быстрого старта изучите раздел «Руководство по применению» — например, об использовании драйверов камер MIPI Arducam для userland.
Руководство по применению
Инструкция — на этой странице.


