Necesito saber cómo detectar de forma remota si un módulo de cámara de 8mp o 5mp está conectado al rpi para la implementación en un proyecto integrado.
¿Alguna ayuda?
Necesito saber cómo detectar de forma remota si un módulo de cámara de 8mp o 5mp está conectado al rpi para la implementación en un proyecto integrado.
¿Alguna ayuda?
Respuestas:
Ninguna de las anteriores.
Aproveche el controlador v4l ( modprobe bcm2835-v4l2
), y use el v4l2-ctl
comando de la CLI o, si quiere ser elegante, use las bibliotecas v4l2 de python o C:
# v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YU12'
Name : Planar YUV 4:2:0
(mucho más salida)
# v4l2-ctl --list-framesizes=YU12
ioctl: VIDIOC_ENUM_FRAMESIZES
Size: Stepwise 16x16 - 2592x1944 with step 2/2
Si está satisfecho con la codificación C, eche un vistazo a las líneas relevantes en raspistill, que utiliza la nueva MMAL_PARAMETER_CAMERA_INFO
para buscar el tipo de cámara conectada.
Si no está tan contento con C, tendrá que esperar una semana más o menos mientras termino la picamera 1.11, que tendrá un nuevo PiCamera.model
parámetro que puede consultar para obtener la misma información (esto devolverá una cadena que contiene el nombre del sensor como devuelto por MMAL_PARAMETER_CAMERA_INFO
).
Actualización
Como muestra claramente la respuesta de EdMc2, terminé llamando a esto en PiCamera.revision
lugar de modelo.
La respuesta de EdMc2 funcionó para mí, pero cam.revision solo muestra el nombre del sensor de la cámara. Así que encontré una resolución máxima como esta:
import picamera
with picamera.PiCamera() as cam:
print(cam.MAX_RESOLUTION)
Puede guardar el archivo (por ejemplo, picamera.py) y ejecutarlo así:
python3 picamera.py
Mi resultado es 2592x1944
que es una cámara de 5MP.