PiCamera funktioniert nicht

9

Zum Starten der Kamera mache ich

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

Ich habe viele Antworten überprüft, die sagten, dass das Paket aktualisiert werden soll, und das habe ich getan, aber nichts scheint zu helfen. Ist meine Kamera weg oder gibt es eine Lösung?

Coderaemon
quelle
1
Haben Sie die Kamera in raspi-config aktiviert?
Werner Kvalem Vesterås
Ja, ich habe es getan, indem ich in die Konfiguration sudo raspi-config
gegangen
1
Stellen Sie sicher, dass Ihre Kamera richtig angeschlossen ist, wie folgt
Werner Kvalem Vesterås
Ja Kamera ist richtig. Die rote LED leuchtet.
Coderaemon
1
Haben Sie versucht, Ihre Kamera über die Befehlszeile mit zu raspistillbedienen? Wenn das nicht funktioniert, sollten Sie sich vielleicht an die Anleitung zum Schreien von
Kameraproblemen wenden

Antworten:

8

Als Ergänzung zu den anderen Antworten möchte ich nur erwähnen, dass die Ursache für diesen Fehler auch darin liegen könnte, dass derzeit ein anderer Prozess die Kamera verwendet.

Robin
quelle
2
Ich denke du könntest Recht haben. Ich bekam diesen Fehler, nachdem ich ein Kameraskript unterbrochen hatte, das nicht reagierte (mit STRG-C). Die Kamera hat vorher einwandfrei funktioniert. Wie kann ich die Kamera freigeben / zurücksetzen, damit sie wieder funktioniert?
Bill
In meinem Fall motionbenutzte die Bibliothek die Kamera. Laufen hat sudo service motion stopmein Problem gelöst
Laura Corssac
6

Das Raspberry Pi-Kameramodul verwendet die integrierte GPU und ihren Speicher. Da in Ihrer Fehlermeldung angegeben wird, dass keine Ressourcen mehr vorhanden sind, sollten Sie in Betracht ziehen, mindestens (und möglicherweise mehr als) das empfohlene Minimum von 128 MB zur GPU-Zuteilung hinzuzufügen.

Um es zu ändern:

sudo raspi-config

Wählen Sie: Erweiterte Optionen -> Speicheraufteilung -> und stellen Sie mindestens 128 MB ein

Einige Benutzer melden, dass diese Meldung verschwindet, nachdem die GPU-Speicherzuweisung von 128 MB auf 256 MB geändert wurde.

vlk
quelle
Dies war bei mir der Fall. Nach einem Update reichten 128 MB nicht mehr aus, ich musste es auf 256 MB einstellen.
Nicolas BADIA
4

Ich bin mit dem Rasp Pi 3 auf dasselbe Problem gestoßen. Ich habe ein Python-Skript gestartet, das eine Minute lang 1 Bild pro Sekunde aufnehmen würde. Ich drücke Strg-Z, um die Skriptausführung etwa zur Hälfte zu unterbrechen. Als ich versuchte, das Skript erneut auszuführen, wurde dieser Fehler angezeigt, obwohl anscheinend keine anderen Skripte die Kamera verwendeten.

Das Update: Geben Sie "ps -a" ein, um alle aktuell ausgeführten Prozesse aufzulisten. Suchen Sie nach einer, die in der Ausgabe "python" oder "python3" sagt, wie folgt:
PID TTY TIME CMD 1218 tty1 00:00:00 bash 2203 pts/0 00:00:00 python 8960 pts/1 00:00:00 ps

Verwenden Sie den Befehl "kill -KILL [PID #]", um den Python-Prozess zu stoppen. In diesem Fall lautete der Befehl "kill -KILL 2203".

Verwenden Sie anschließend erneut "ps -a", um sicherzustellen, dass der Python-Prozess nicht aufgeführt ist.

Dies hat das Problem für mich behoben und ich konnte mein Skript ohne Probleme erneut ausführen.

Hoffe das hilft.

bmward
quelle
3

Die Lösung besteht darin, sicherzustellen, dass sich die Leitung camera = PiCamera()außerhalb einer Schleife oder Funktion befindet.

Wenn die Leitung camera = PiCamera()jedes Mal aufgerufen wird, wenn Ihre Funktion ausgeführt wird, geht der Kamera der Speicher aus.

camera = PiCamera()

def Take_an_Image():

    camera.resolution = (1024, 768)
    camera.start_preview()
    camera.capture("Test")
TeCoEd
quelle
Es scheint nicht, dass dieser spezielle Fehler darauf zurückzuführen ist, dass nicht genügend Speicher vorhanden ist (der Fehler lautete "Kamerakomponente konnte nicht aktiviert werden: Nicht genügend Ressourcen (außer Speicher)"), und das OP hat die Kamera nicht angemeldet eine Schleife, aber dies ist ein guter Rat, wenn jemand nicht genügend Speicher hat.
Aurora0001
3

Für alle anderen mit diesem Problem ... Wenn das Licht beim Booten leuchtet, haben Sie möglicherweise den falschen Flachbandkabelanschluss! Das Kabel passt gut in den LCD-Anschluss und das Licht geht an und alles. Es wird jedoch die Fehlermeldung angezeigt, dass das Gerät aktiviert werden soll.

Werner wies darauf hin: https://blog.adafruit.com/wp-content/uploads/2014/01/1646pi_LRG-600x461.jpg

bmidgley
quelle
1

Stellen Sie zusätzlich zu der Antwort von alcor sicher, dass Sie raspi-config ausführen, und wählen Sie nach dem Start Option 5 aus, um die Kameraunterstützung zu aktivieren.

Ich denke, Sie müssen möglicherweise Sudo verwenden

Kometenschnabel
quelle
1

Es stellt sich also heraus, dass der Kameraanschluss meines Raspberry Pi ein Problem hatte. Ersetzte den Pi, Kamera funktioniert reibungslos.

Coderaemon
quelle
1

Ich bin auf dasselbe Problem gestoßen. Da ich Videos über httpd sendete, wurde mir klar, dass ich die Bilder nicht über Python verwenden konnte. Ich musste entweder das Python-Skript auf die Bilder zugreifen lassen oder den Apache-Server das Video über den Browser verfügbar machen lassen. Es kann jeweils nur ein Prozess auf die Kamera zugreifen.

user3155285
quelle
1

Ich hatte dieses Ressourcenproblem, es stellte sich heraus, dass die Funktion camera.capture (Dateiname) das Problem war, da die Datei bereits vorhanden war.

user72314
quelle
1

In meinem Code gab es einen dummen Fehler, der zu diesem Fehler führte: Ich habe die Kamera einmal geöffnet, aber absichtlich versucht, sie wieder zu öffnen, wenn der Benutzer auf eine Hardware-Schaltfläche klickt. Das Schließen der Kamera vor dem zweiten Aufruf von PiCamera () hat das Problem behoben.

Rajaraman Vaidyanathaswami
quelle
0

Sie erhalten diesen Fehler, wenn Ihre Taste nicht richtig angeschlossen ist. Der Pi wird denken, dass die Taste gedrückt ist und ständig versuchen, Fotos zu machen, daher werden Sie keine Ressourcen mehr haben!

Stellen Sie sicher, dass Ihre Schaltfläche an den richtigen GPIO-Pin angeschlossen ist, und fahren Sie dann mit anderen Debugging-Methoden fort.

Nuwan Goonewardena
quelle
0

Nur mein Penny wert. Ich habe ein kleines Programm geschrieben, das eine Folge von Bildern macht. In IDLE hat es einwandfrei funktioniert, aber über die Befehlszeile wurde genau derselbe Fehler angezeigt, der auf Ressourcen zurückzuführen ist. Das Problem wurde durch Hinzufügen von camera.close () nach Ausnahme von KeyboardInterrupt:, dh Strg + C (in der Python-Shell) behoben. für den Fall, dass Sie aus einer Schleife ausbrechen müssen.

Nick
quelle
Danke für deine Antwort. Da es Ihre erste Antwort ist, wurde ich vom System aufgefordert, sie zu überprüfen und Kommentare abzugeben, die Ihnen bei der Verbesserung helfen könnten. Ich habe Mühe zu verstehen, was Ihre vorgeschlagene Antwort ist. Bitte versuchen Sie genauer zu sein; Geben Sie beispielsweise Code an, mit dem Sie das Problem beheben können. Ich würde Ihnen auch empfehlen, "Wie man eine gute Antwort schreibt" zu lesen . Bitte berücksichtigen Sie diese Vorschläge und bearbeiten Sie Ihre Antwort entsprechend.
Seamus
0

In meinem Fall wurde der gleiche Fehler durch Ersetzen des Kameramoduls behoben. Ich konnte den Fehler zuverlässig reproduzieren, indem ich zwischen guten und schlechten Kameramodulen hin und her wechselte. Mein Code litt nicht unter den Problemen, auf die andere hingewiesen hatten. Es scheint also, dass Hardwareprobleme auch diese Ausnahme verursachen können.

Die Ausnahme war:

picamera.exc.picamerammalerror: Verbindung konnte nicht aktiviert werden: Keine Ressourcen mehr

Die Picamera-Version ist 1.13 und das Kameramodul ist v2.1

ayush3504
quelle