PiCamera non funziona


9

Per aver avviato la videocamera che sto facendo

>>> 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)

Ho controllato molte risposte che dicevano di aggiornare il pacchetto e l'ho fatto, ma nulla sembra aiutare. La mia macchina fotografica è sparita o c'è qualche soluzione?


1
Hai abilitato la fotocamera in raspi-config?
Werner Kvalem Vesterås,

si l'ho fatto andando in configsudo raspi-config
Coderaemon il

1
Assicurati che la tua fotocamera sia collegata nel modo giusto, in questo modo: adafruit.com/blog/wp-content/uploads/2014/01/…
Werner Kvalem Vesterås

Sì, la fotocamera ha ragione. Il LED rosso di alimentazione è acceso.
Coderaemon,

1
Hai provato a utilizzare la videocamera dalla riga di comando con raspistill? Se non funziona, forse dovresti consultare la guida alle urla di problemi della fotocamera: raspberrypi.org/documentation/tro
troubleshooting/hardware/…

Risposte:


8

Come aggiunta alle altre risposte, voglio solo menzionare che la causa di questo errore potrebbe anche essere che un altro processo sta attualmente utilizzando la fotocamera.


2
Penso che potresti avere ragione. Ho iniziato a ricevere questo errore dopo aver interrotto uno script della fotocamera che non rispondeva (usando CTRL-C). La fotocamera funzionava bene prima di questo. Quindi, come posso rilasciare / ripristinare la fotocamera in modo che funzioni di nuovo?
Bill

Nel mio caso, la motionbiblioteca utilizzava la fotocamera. La corsa ha sudo service motion stoprisolto il mio problema
Laura Corssac il

6

Il modulo videocamera Raspberry Pi utilizza la GPU integrata e la sua memoria. Poiché il tuo messaggio di errore indica che non hai risorse, considera di aggiungere almeno (e forse più di) il minimo consigliato di 128 MB all'assegnazione della GPU.

Per cambiarlo:

sudo raspi-config

selezionare: Opzioni avanzate -> Dividi memoria -> e impostare almeno 128 MB

Alcuni utenti segnalano che questo messaggio scompare dopo aver modificato l'assegnazione della memoria GPU a 256 MB da 128 MB.


Questo è stato il caso per me. Dopo un aggiornamento, 128 MB non erano più sufficienti, ho dovuto impostarlo su 256 MB.
Nicolas BADIA,

4

Ho riscontrato questo stesso problema con Rasp Pi 3. Ho avviato uno script Python che richiederebbe 1 immagine al secondo per un minuto. Ho premuto ctrl-z per interrompere l'esecuzione dello script a metà. Quando ho provato a eseguire nuovamente lo script, ho riscontrato questo errore, anche se sembrava che nessun altro script stesse usando la fotocamera.

La correzione: immettere "ps -a" per elencare tutti i processi attualmente in esecuzione. Cerca quello che dice "python" o "python3" nell'output, in questo modo:
PID TTY TIME CMD 1218 tty1 00:00:00 bash 2203 pts/0 00:00:00 python 8960 pts/1 00:00:00 ps

Utilizzare il comando "kill -KILL [PID #]" per interrompere il processo Python. In questo caso, il comando era "kill -KILL 2203".

Dopo aver fatto ciò, usa di nuovo "ps -a" per assicurarti che il processo python non sia elencato.

Ciò ha risolto il problema per me e sono stato in grado di eseguire nuovamente il mio script senza problemi.

Spero che sia di aiuto.



3

La soluzione è garantire che la linea camera = PiCamera()sia esterna a qualsiasi loop o funzione.

Se la linea camera = PiCamera()viene chiamata ogni volta che viene eseguita la funzione, la fotocamera esaurisce la memoria.

camera = PiCamera()

def Take_an_Image():

    camera.resolution = (1024, 768)
    camera.start_preview()
    camera.capture("Test")

Non sembra che questo errore specifico sia dovuto alla mancanza di memoria (l'errore era "Impossibile abilitare il componente della videocamera: risorse esaurite (tranne la memoria)") e l'OP non ha dichiarato la propria videocamera in un ciclo, ma questo è un buon consiglio se qualcuno non a corto di memoria.
Aurora0001

3

Per chiunque abbia questo problema ... se la luce è accesa all'avvio, potresti davvero avere la porta del cavo a nastro sbagliata! Il cavo si adatterà perfettamente alla porta LCD e la luce si accenderà e tutto il resto. Verrà visualizzato l'errore che dice di abilitare il dispositivo.

Werner lo ha sottolineato: https://blog.adafruit.com/wp-content/uploads/2014/01/1646pi_LRG-600x461.jpg


1

Oltre alla risposta di Alcor, assicurati di eseguire raspi-config e scegli l'opzione 5 dopo l'avvio, per abilitare il supporto della fotocamera.

Penso che potresti aver bisogno di usare sudo


1

Quindi si è scoperto che la porta della fotocamera del mio Raspberry Pi ha avuto qualche problema. Sostituito il Pi, la fotocamera funziona senza problemi.


1

Ho riscontrato lo stesso problema. Mi sono reso conto che da quando stavo trasmettendo video via httpd, non potevo usare le immagini tramite Python. Ho dovuto scegliere se consentire allo script Python di accedere alle immagini o lasciare che il server Apache rendesse disponibile il video tramite browser. Solo un processo alla volta può accedere alla telecamera.


1

Ho avuto questo problema di risorse, si è scoperto che il problema era camera.capture (nome file), perché il file esisteva già.


1

Nel mio codice c'era un bug stupido che ha dato origine a questo errore: ho aperto la fotocamera una volta, ma ho intenzionalmente cercato di riaprirla quando l'utente fa clic su un pulsante hardware. La chiusura della fotocamera prima della seconda chiamata a PiCamera () ha risolto il problema.


0

Questo errore verrà visualizzato se il pulsante non è collegato correttamente. Il Pi penserà che il pulsante sia premuto e proverà continuamente a scattare foto, quindi non avrai più risorse!

Assicurati che il tuo pulsante sia inserito nel pin GPIO corretto e quindi continua con altri metodi di debug.


0

Vale solo il mio penny .. Ho scritto un piccolo programma che scatta una sequenza di foto. Ha funzionato bene in IDLE, ma dalla riga di comando è venuto fuori con lo stesso errore esente da risorse. Il problema è stato risolto aggiungendo camera.close () dopo tranne KeyboardInterrupt :, ovvero Ctrl + C (nella shell di Python). per quando è necessario uscire da un ciclo.


Grazie per la tua risposta. Poiché è la tua prima risposta, il sistema mi ha richiesto di esaminarlo e di fare qualsiasi commento che possa aiutarti a migliorarlo. Faccio fatica a capire qual è la tua risposta proposta. Si prega di provare ad essere più specifici; ad esempio fornire un codice che ritieni possa risolvere il problema. Ti consiglio anche di leggere "Come scrivere una buona risposta" . Considera questi suggerimenti e modifica la risposta di conseguenza.
Seamus,

0

Nel mio caso, avendo lo stesso errore, la sostituzione del modulo videocamera lo ha riparato. Sono stato in grado di riprodurre in modo affidabile l'errore commutando avanti e indietro tra i moduli fotocamera buoni e cattivi. Il mio codice non ha sofferto dei problemi segnalati da altri. Quindi sembra che i problemi hardware possano causare anche questa eccezione.

L'eccezione era:

picamera.exc.picamerammalerror: impossibile abilitare la connessione: risorse esaurite

La versione di Picamera è 1.13 e il modulo della fotocamera è v2.1

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.