PiCamera no funciona

9

Para iniciar la cámara que estoy haciendo

>>> import picamera 
>>> camera = picamera.PiCamera()
mmal: mmal_vc_component_enable: failed to enable compononent : ENOSPC
Traceback (most recent call last):
  File "<stdin>", line, in <module>
  ...
  ...
picamera.exc.PiCameraMMALError: Camera component couldn't be enabled: Out of resources (other than memory)

Revisé muchas respuestas que decían actualizar el paquete e hice eso, pero nada parece ayudar. ¿Se ha ido mi cámara o hay alguna solución?

Coderaemon
fuente
1
¿Ha habilitado la cámara en raspi-config?
Werner Kvalem Vesterås
Sí, lo hice yendo en la configuraciónsudo raspi-config
Coderaemon
1
Asegúrese de que su cámara esté conectada de la manera correcta, así: adafruit.com/blog/wp-content/uploads/2014/01/…
Werner Kvalem Vesterås
Sí, la cámara tiene razón. El LED rojo de encendido está encendido.
Coderaemon
1
¿Has intentado operar tu cámara desde la línea de comandos con raspistill? Si eso no funciona, tal vez debería consultar la guía de gritos de problemas de la cámara: raspberrypi.org/documentation/troubleshooting/hardware/…
Werner Kvalem Vesterås

Respuestas:

8

Como una adición a las otras respuestas, solo quiero mencionar que la causa de este error también podría ser que otro proceso esté usando la cámara actualmente.

Robin
fuente
2
Creo que podrías tener razón. Comencé a recibir este error después de interrumpir un script de cámara que no respondía (usando CTRL-C). La cámara funcionaba bien antes de esto. Entonces, ¿cómo libero / reinicio la cámara para que funcione nuevamente?
Bill
En mi caso, la motionbiblioteca estaba usando la cámara. Correr sudo service motion stopresolvió mi problema
Laura Corssac
6

El módulo de cámara Raspberry Pi utiliza la GPU integrada y su memoria. Como su mensaje de error menciona que no tiene recursos, considere agregar al menos (y posiblemente más) el mínimo recomendado de 128 MB a la asignación de la GPU.

Para cambiarlo:

sudo raspi-config

seleccione: Opciones avanzadas -> División de memoria -> y configure al menos 128 MB

Algunos usuarios informan que este mensaje desaparece después de cambiar la asignación de memoria de la GPU a 256 MB de 128 MB.

vlk
fuente
Este fue el caso para mí. Después de una actualización, 128 MB ya no eran suficientes, tuve que configurarlo en 256 MB.
Nicolas BADIA
4

Me encontré con este mismo problema con el Rasp Pi 3. Comencé un script de Python que tomaría 1 imagen por segundo durante un minuto. Presioné ctrl-z para interrumpir la ejecución del script aproximadamente a la mitad. Cuando intenté ejecutar el script nuevamente, recibí este error, aunque parecía que ningún otro script estaba usando la cámara.

La solución: escriba "ps -a" para enumerar todos los procesos que se ejecutan actualmente. Busque uno que diga "python" o "python3" en la salida, así:
PID TTY TIME CMD 1218 tty1 00:00:00 bash 2203 pts/0 00:00:00 python 8960 pts/1 00:00:00 ps

Use el comando "kill -KILL [PID #]" para detener el proceso de Python. Para este caso, el comando fue "kill -KILL 2203".

Después de hacer esto, use "ps -a" nuevamente para asegurarse de que el proceso de Python no esté en la lista.

Esto me solucionó el problema y pude ejecutar mi script nuevamente sin ningún problema.

Espero que esto ayude.

bmward
fuente
3

La solución es asegurar que la línea camera = PiCamera()esté fuera de cualquier bucle o función.

Si camera = PiCamera()se llama a la línea cada vez que se ejecuta su función, la cámara se queda sin memoria.

camera = PiCamera()

def Take_an_Image():

    camera.resolution = (1024, 768)
    camera.start_preview()
    camera.capture("Test")
TeCoEd
fuente
No parece que este error específico se deba a la falta de memoria (el error fue "El componente de la cámara no se pudo habilitar: Sin recursos (aparte de la memoria)"), y el OP no declaró su cámara en un bucle, pero este es un buen consejo si alguien se queda sin memoria.
Aurora0001
3

Para cualquier otra persona con este problema ... si la luz está encendida en el arranque, ¡entonces es posible que tenga el puerto de cable plano incorrecto! El cable encajará bien en el puerto LCD y la luz se encenderá y todo. Pero recibirá el error que dice que habilite el dispositivo.

Werner señaló esto: https://blog.adafruit.com/wp-content/uploads/2014/01/1646pi_LRG-600x461.jpg

bmidgley
fuente
1

Además de la respuesta de alcor, asegúrese de ejecutar raspi-config y elija la opción 5 después de iniciar, para habilitar el soporte de la cámara.

Creo que podrías necesitar usar sudo

cometa
fuente
1

Entonces resulta que el puerto de cámara de mi Raspberry Pi tuvo algún problema. Reemplazado el Pi, la cámara funciona sin problemas.

Coderaemon
fuente
1

Me encontré con el mismo problema. Me di cuenta de que como estaba transmitiendo video a través de httpd, no podía hacer uso de las imágenes a través de Python. Tuve que elegir dejar que el script Python acceda a las imágenes o dejar que el servidor Apache haga que el video esté disponible a través del navegador. Solo un proceso puede acceder a la cámara a la vez.

usuario3155285
fuente
1

Tuve este problema de recursos, resultó que la función camera.capture (nombre de archivo) era el problema, porque el archivo ya existía.

usuario72314
fuente
1

En mi código había un error tonto que provocó este error: abrí la cámara una vez, pero intenté abrirla nuevamente intencionalmente cuando el usuario hace clic en un botón de hardware. Cerrar la cámara antes de la segunda llamada a PiCamera () resolvió el problema.

Rajaraman Vaidyanathaswami
fuente
0

Recibirá este error si su botón no está conectado correctamente. El Pi pensará que el botón está presionado e intentará tomar fotos continuamente, por lo tanto, se quedará sin recursos.

Asegúrese de que su botón esté conectado al pin GPIO correcto y luego continúe con otros métodos de depuración.

Nuwan Goonewardena
fuente
0

Solo vale mi centavo ... Escribí un pequeño programa que toma una secuencia de fotos. Funcionó bien en IDLE, pero desde la línea de comando apareció exactamente el mismo error al estar sin recursos. El problema se solucionó agregando camera.close () después, excepto KeyboardInterrupt :, es decir, Ctrl + C (en el shell de Python). para cuando necesitas salir de un bucle.

Mella
fuente
Gracias por tu respuesta. Debido a que es su primera respuesta, el sistema me ha pedido que la revise y haga comentarios que puedan ayudarlo a mejorarla. Me cuesta entender cuál es su respuesta propuesta. Intenta ser más específico; Por ejemplo, proporcione un código que considere que resolverá el problema. También te recomiendo que leas "Cómo escribir una buena respuesta" . Tenga en cuenta estas sugerencias y edite su respuesta en consecuencia.
Seamus
0

Para mi caso, al tener el mismo error, reemplazar el módulo de la cámara lo arregló. Pude reproducir de manera confiable el error al alternar entre los módulos de cámara buenos y malos. Mi código no sufrió los problemas que otros señalaron. Parece que los problemas de hardware también pueden causar esta excepción.

La excepción fue:

picamera.exc.picamerammalerror: no se pudo habilitar la conexión: sin recursos

La versión de Picamera es 1.13 y el módulo de la cámara es v2.1

ayush3504
fuente