🛠 Caméra MIPI CSI : brancher une Raspberry Pi Camera (OV5647/IMX219) sur la ZERO 3W
Objetivos
Una de las ventajas poco habituales de la ZERO 3W: su puerto de cámara MIPI CSI (4 carriles, conector FPC de 22 pines de 0,5 mm) acepta los módulos Raspberry Pi Camera V1.3 (OV5647) y V2 (IMX219) — algo raro en una placa que no sea Raspberry. Vas a cablear correctamente la cinta plana, activar el controlador del sensor y capturar una imagen mediante V4L2. Es el bloque básico para los proyectos de cámara IP, visión con NPU y robótica de la ficha de proyectos (coche IPC, KVM, etc.).
Material
- 1 Radxa ZERO 3W (se recomienda Radxa OS bookworm b1: es la imagen oficialmente probada por completo)
- 1 módulo Raspberry Pi Camera V1.3 (OV5647) o V2 (IMX219)
- 1 cinta plana CSI de 22 pines (¡atención a la orientación de los contactos!)
- Tutorial GPIO: el conector de 40 pines no es necesario aquí, solo cuenta el puerto CSI
Procedimiento
- Con la placa apagada, abre la pestaña del conector FPC, inserta la cinta plana con los contactos hacia la placa (verifica la orientación en la serigrafía del conector) y cierra la pestaña. En las cámaras Pi, la cinta plana es más corta por el lado del objetivo — tenlo en cuenta.
- Activa la superposición (overlay) del sensor. En Radxa OS, la herramienta
rsetup(menú de overlays) expone los árboles de dispositivos de los sensores compatibles; para OV5647/IMX219, activa la superposición correspondiente y reinicia.
sudo rsetup # Menu > Overlay > caméra (ov5647 ou imx219)
sudo reboot
- Tras reiniciar, verifica la cadena sensor → pipeline:
dmesg | grep -iE 'ov5647|imx219|mipi|isp' # le driver a-t-il répondu sur I2C2 ?
v4l2-ctl --list-devices # apparaît : /dev/video-csi ou rkcif
# Capture d'une frame :\nsudo apt install v4l-utils
v4l2-ctl -d /dev/video-csi --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap --stream-count=1 --stream-to=frame.raw
# Ou via ffmpeg si présent (nom du périphérique selon l'image) :
ffmpeg -f v4l2 -video_size 1920x1080 -i /dev/video-csi -frames:v 1 frame.jpg
> SIN VERIFICAR: los nombres exactos de los dispositivos /dev/video* y el comando de captura de extremo a extremo varían entre el BSP 6.1 (pipeline rkcif/rkisp) y las imágenes mainline — la ficha fuente confirma la compatibilidad con OV5647/IMX219 pero no la cadena de comandos exacta; pruébalo en tu imagen y consulta la sección app-development de la documentación de Radxa.
- El sensor se controla mediante I2C (I2C2_SCL/SDA_M1 en el conector CSI):
i2cdetect -ly luego el bus correspondiente debe mostrar la dirección del sensor (0x10/0x36 típicos de OV5647/IMX219).
Verificación esperada
dmesg muestra la detección exitosa del sensor (ov5647 found / imx219 x:x); v4l2-ctl --list-devices lista un pipeline de vídeo vinculado al CSI; se produce un fotograma .raw de tamaño coherente (1920×1080 NV12 ≈ 3,1 MB). Una imagen borrosa en primer plano es normal: estos módulos enfocan de fábrica al infinito, gira suavemente el objetivo.
Errores frecuentes
- Cinta plana insertada al revés: nada en el bus I2C, ningún mensaje del sensor en dmesg — apaga la placa y gírala.
- Pestaña FPC mal cerrada: contacto parcial, imagen con ruido o detección aleatoria.
- Activar la superposición y otro dispositivo en conflicto en I2C2: el CSI ocupa I2C2_M1, tenlo en cuenta en tus superposiciones.
- Esperar libcamera/rpicam como en una Raspberry Pi: aquí el pipeline es Rockchip (rkcif/rkisp en el BSP) — las herramientas rpicam-* no aplican.
- Buscar la cámara en el conector de 40 pines: el CSI es un conector dedicado de 22 pines, distinto del GPIO.
- Imagen mainline: la compatibilidad con sensores está menos madura que en el BSP de Radxa — para un proyecto de cámara fiable, quédate en la imagen oficialmente probada (bookworm b1).
Otros tutoriales para esta placa
- Premiers pas avec la Radxa ZERO 3W : flasher Radxa OS et démarrer
- Wi-Fi 6 et Bluetooth 5.4 : se connecter, choisir l'antenne, connaître sa révision
- GPIO avec libgpiod : faire clignoter une LED et lire un bouton
- Installer le système sur l'eMMC : rkdeveloptool, MaskROM et gain de fiabilité
- Noyau mainline avec Armbian : vérifier le device tree, ajouter un overlay, lire le SARADC
- NPU 0,8 TOPS : inférence RKNN (YOLO, Whisper) sur la ZERO 3W
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash