PiCamera ne fonctionne pas


9

Pour démarrer la caméra que je fais

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

J'ai vérifié beaucoup de réponses qui m'ont dit de mettre à jour le paquet et je l'ai fait mais rien ne semble aider. Mon appareil photo est-il parti ou existe-t-il une solution?


1
Avez-vous activé la caméra dans raspi-config?
Werner Kvalem Vesterås

oui je l'ai fait en allant dans configsudo raspi-config
Coderaemon

1
Assurez-vous que votre caméra est connectée correctement, comme ceci: adafruit.com/blog/wp-content/uploads/2014/01/…
Werner Kvalem Vesterås

Oui, la caméra a raison. Le voyant d'alimentation rouge est allumé.
Coderaemon

1
Avez-vous essayé d'utiliser votre appareil photo à partir de la ligne de commande avec raspistill? Si cela ne fonctionne pas, vous devriez peut-être consulter le guide de
résolution des

Réponses:


8

En plus des autres réponses, je veux juste mentionner que la cause de cette erreur pourrait également être qu'un autre processus utilise actuellement l'appareil photo.


2
Je pense que vous pourriez avoir raison. J'ai commencé à obtenir cette erreur après avoir interrompu un script de caméra qui ne répondait pas (à l'aide de CTRL-C). La caméra fonctionnait bien avant cela. Alors, comment puis-je libérer / réinitialiser l'appareil photo pour qu'il fonctionne à nouveau?
Bill

Dans mon cas, la motionbibliothèque utilisait l'appareil photo. La course a sudo service motion stoprésolu mon problème
Laura Corssac

6

Le module de caméra Raspberry Pi utilise le GPU intégré et sa mémoire. Étant donné que votre message d'erreur mentionne l'absence de ressources, envisagez d'ajouter au moins (et peut-être plus) le minimum recommandé de 128 Mo à l'allocation du GPU.

Pour le changer:

sudo raspi-config

sélectionnez: Options avancées -> Mémoire partagée -> et définissez au moins 128 Mo

Certains utilisateurs signalent que ce message a disparu après avoir modifié l'allocation de mémoire GPU à 256 Mo au lieu de 128 Mo.


Ce fut le cas pour moi. Après une mise à jour, 128 Mo ne suffisaient plus, j'ai dû le régler à 256 Mo.
Nicolas BADIA

4

J'ai rencontré ce même problème avec le Rasp Pi 3. J'ai commencé un script python qui prendrait 1 image par seconde pendant une minute. J'ai appuyé sur ctrl-z pour interrompre l'exécution du script à mi-chemin. Lorsque j'ai essayé d'exécuter à nouveau le script, j'ai eu cette erreur, même s'il semblait qu'aucun autre script n'utilisait l'appareil photo.

Le correctif: entrez "ps -a" pour répertorier tous les processus en cours d'exécution. Recherchez celui qui dit "python" ou "python3" dans la sortie, comme ceci:
PID TTY TIME CMD 1218 tty1 00:00:00 bash 2203 pts/0 00:00:00 python 8960 pts/1 00:00:00 ps

Utilisez la commande "kill -KILL [PID #]" pour arrêter le processus python. Dans ce cas, la commande était "kill -KILL 2203".

Après cela, utilisez à nouveau "ps -a" pour vous assurer que le processus python n'est pas répertorié.

Cela a résolu le problème pour moi et j'ai pu réexécuter mon script sans aucun problème.

J'espère que cela t'aides.



3

La solution est de s'assurer que la ligne camera = PiCamera()est en dehors de toute boucle ou fonction.

Si la ligne camera = PiCamera()est appelée à chaque exécution de votre fonction, la caméra manque de mémoire.

camera = PiCamera()

def Take_an_Image():

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

Il ne semble pas que cette erreur spécifique soit due à un manque de mémoire (l'erreur était "Le composant de la caméra n'a pas pu être activé: manque de ressources (autre que la mémoire)"), et l'OP n'a pas déclaré sa caméra dans une boucle, mais cela est un bon conseil si quelqu'un ne manque de mémoire.
Aurora0001

3

Pour toute autre personne ayant ce problème ... si la lumière est allumée au démarrage, vous pourriez vraiment avoir le mauvais port de câble ruban! Le câble s'intégrera bien dans le port LCD et la lumière s'allumera et tout. Mais vous obtiendrez l'erreur disant d'activer l'appareil.

Werner l'a souligné: https://blog.adafruit.com/wp-content/uploads/2014/01/1646pi_LRG-600x461.jpg


1

En plus de la réponse d'alcor, assurez-vous d'exécuter raspi-config et choisissez l'option 5 après le démarrage pour activer la prise en charge de la caméra.

Je pense que vous pourriez avoir besoin d'utiliser sudo


1

Il s'avère donc que le port de l'appareil photo de mon Raspberry Pi a eu un problème. Remplacé le Pi, la caméra fonctionne bien.


1

J'ai rencontré le même problème. J'ai réalisé que puisque je diffusais de la vidéo via httpd, je ne pouvais pas utiliser les images via Python. J'ai dû choisir de laisser le script Python accéder aux images ou laisser le serveur Apache rendre la vidéo disponible via le navigateur. Un seul processus peut accéder à la caméra à la fois.


1

J'ai eu ce problème de ressource, il s'est avéré que la fonction camera.capture (nom de fichier) était le problème, car le fichier existait déjà.


1

Dans mon code, il y avait un bug idiot qui a provoqué cette erreur: j'ai ouvert la caméra une fois, mais j'ai intentionnellement essayé de l'ouvrir à nouveau lorsque l'utilisateur clique sur un bouton matériel. La fermeture de la caméra avant le deuxième appel à PiCamera () a résolu le problème.


0

Vous obtiendrez cette erreur si votre bouton n'est pas correctement connecté. Le Pi pense que le bouton est enfoncé et essaie continuellement de prendre des photos, vous serez donc à court de ressources!

Assurez-vous que votre bouton est branché sur la bonne broche GPIO, puis passez à d'autres méthodes de débogage.


0

Juste mon argent vaut la peine .. J'ai écrit un petit programme qui prend une séquence de photos. Cela a bien fonctionné dans IDLE, mais à partir de la ligne de commande est venu exactement la même erreur étant hors des ressources. Le problème a été résolu en ajoutant camera.close () après excepté KeyboardInterrupt :, c'est-à-dire Ctrl + C (dans le shell python). pour quand vous avez besoin de sortir d'une boucle.


Merci pour votre réponse. Parce que c'est votre première réponse, le système m'a demandé de l'examiner et de faire des commentaires qui pourraient vous aider à l'améliorer. J'ai du mal à comprendre quelle est votre réponse proposée. Veuillez essayer d'être plus précis; Par exemple, fournissez du code qui, selon vous, résoudra le problème. Je vous recommande également de lire "Comment écrire une bonne réponse" . Veuillez considérer ces suggestions et modifiez votre réponse en conséquence.
Seamus

0

Pour mon cas, ayant la même erreur, le remplacement du module de caméra l'a corrigé. J'ai pu reproduire l'erreur de manière fiable en basculant entre les bons et les mauvais modules de caméra. Mon code n'a pas souffert des problèmes signalés par d'autres. Il semble donc que des problèmes matériels puissent également provoquer cette exception.

L'exception était:

picamera.exc.picamerammalerror: échec de l'activation de la connexion: manque de ressources

La version de Picamera est 1.13 et le module de caméra est v2.1

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.