PiCamera не работает

9

Для запуска камеры я делаю

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

Я проверил много ответов, которые сказали обновить пакет, и я сделал это, но ничто, кажется, не помогает. У меня пропала камера или есть какое-то решение?

Coderaemon
источник
1
Вы включили камеру в raspi-config?
Вернер Квалем Вестерос
да, я сделал, перейдя в конфигеsudo raspi-config
Coderaemon
1
Убедитесь, что ваша камера подключена правильно, например: adafruit.com/blog/wp-content/uploads/2014/01/…
Вернер Квалем Вестерос
Да, камера права. Красный светодиод питания включен.
Coderaemon
1
Вы пробовали управлять камерой из командной строки raspistill? Если это не
помогает

Ответы:

8

В дополнение к другим ответам, я просто хочу упомянуть, что причиной этой ошибки также может быть то, что другой процесс в настоящее время использует камеру.

Робин
источник
2
Я думаю, что ты мог быть прав. Я начал получать эту ошибку после прерывания сценария камеры, который не отвечал (используя CTRL-C). Камера работала нормально до этого. Так как мне отпустить / сбросить камеру, чтобы она снова заработала?
Билл
В моем случае motionбиблиотека использовала камеру. Бег sudo service motion stopрешил мою проблему
Лаура Корсак
6

Модуль камеры Raspberry Pi использует встроенный графический процессор и его память. Поскольку в вашем сообщении об ошибке говорится о нехватке ресурсов, рассмотрите возможность добавления как минимум (и, возможно, больше) рекомендуемого минимума 128 МБ к выделению графического процессора.

Чтобы изменить это:

sudo raspi-config

выберите: Дополнительные параметры -> Разделение памяти -> и установите не менее 128 МБ

Некоторые пользователи сообщают об исчезновении этого сообщения после изменения выделения памяти графическим процессором с 128 МБ до 256 МБ.

Влк
источник
Это был случай для меня. После обновления 128 МБ было недостаточно, мне пришлось установить его на 256 МБ.
Николас Бадия
4

Я столкнулся с той же проблемой с Rasp Pi 3. Я запустил скрипт на python, который будет обрабатывать 1 изображение в секунду в течение минуты. Я нажал Ctrl-Z, чтобы прервать выполнение сценария примерно на полпути. Когда я снова попытался запустить скрипт, я получил эту ошибку, хотя оказалось, что другие сценарии не используют камеру.

Исправление: введите «ps -a», чтобы получить список всех запущенных процессов. Ищите тот, который говорит "python" или "python3" в выводе, как это:
PID TTY TIME CMD 1218 tty1 00:00:00 bash 2203 pts/0 00:00:00 python 8960 pts/1 00:00:00 ps

Используйте команду "kill -KILL [PID #]", чтобы остановить процесс python. Для этого случая команда была "kill -KILL 2203".

После этого снова используйте «ps -a», чтобы убедиться, что процесс python не указан.

Это прояснило проблему для меня, и я смог запустить свой сценарий снова без каких-либо проблем.

Надеюсь это поможет.

bmward
источник
3

Следуйте этому порядку команд:

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo rpi-update

Последнее очень важно, если вы купили Raspberry давным-давно, И если вам нужны новые функции.

Алькор
источник
1
Обратите внимание, что обновление rpi устарело: picamera.readthedocs.io/en/release-1.10/install3.html и raspberrypi.org/documentation/raspbian/updating.md
Unsliced
3

Решение состоит в том, чтобы линия camera = PiCamera()находилась вне какой-либо петли или функции.

Если линия camera = PiCamera()вызывается каждый раз, когда ваша функция запускается, то камере не хватает памяти.

camera = PiCamera()

def Take_an_Image():

    camera.resolution = (1024, 768)
    camera.start_preview()
    camera.capture("Test")
TeCoEd
источник
Похоже, что эта конкретная ошибка была вызвана нехваткой памяти (ошибка была «Компонент камеры не может быть включен: Недостаточно ресурсов (кроме памяти)»), и ОП не объявлял свою камеру в цикл, но это хороший совет, если кому-то не хватает памяти.
Aurora0001
3

Для тех, кто с этой проблемой ... если при загрузке горит индикатор, значит, у вас не тот порт ленточного кабеля! Кабель будет хорошо вписываться в порт LCD, и свет включится и все. Но вы получите сообщение об ошибке для включения устройства.

Вернер указал на это: https://blog.adafruit.com/wp-content/uploads/2014/01/1646pi_LRG-600x461.jpg

bmidgley
источник
1

В дополнение к ответу alcor, убедитесь, что вы запустили raspi-config, и выберите опцию 5 после загрузки, чтобы включить поддержку камеры.

Я думаю, вам может понадобиться использовать sudo

cometbill
источник
1

Вот и получается, что с портом камеры моего Raspberry Pi возникли некоторые проблемы. Заменил пи, камера работает плавно.

Coderaemon
источник
1

Я столкнулся с той же проблемой. Я понял, что, поскольку я транслировал видео через httpd, я не мог использовать изображения через Python. Мне пришлось либо разрешить скрипту Python доступ к изображениям, либо позволить серверу Apache сделать видео доступным через браузер. Только один процесс может получить доступ к камере одновременно.

user3155285
источник
1

У меня возникла проблема с ресурсами, оказалось, что проблема в fonction camera.capture (имя файла), потому что файл уже существует.

user72314
источник
1

В моем коде была глупая ошибка, которая вызвала эту ошибку: я однажды открыл камеру, но намеренно попытался открыть ее снова, когда пользователь нажимает аппаратную кнопку. Закрытие камеры перед вторым вызовом PiCamera () решило проблему.

Раджараман Вайдьянатхасвами
источник
0

Вы получите эту ошибку, если ваша кнопка неправильно подключена. Пи будет думать, что кнопка нажата, и постоянно будет делать фотографии, поэтому у вас не будет ресурсов!

Убедитесь, что ваша кнопка подключена к правильному выводу GPIO, а затем переходите к другим методам отладки.

Нуван Гуневардена
источник
0

Просто моя копейка стоит .. Я написал небольшую программу, которая принимает последовательность фотографий. В IDLE все работало нормально, но из командной строки возникла точно такая же ошибка из-за недостатка ресурсов. Проблема была исправлена ​​добавлением camera.close () после исключений KeyboardInterrupt: т.е. Ctrl + C (в оболочке python). когда вам нужно вырваться из петли.

Ник
источник
Спасибо за Ваш ответ. Поскольку это ваш первый ответ, система предложила мне просмотреть его и высказать любые замечания, которые могут помочь вам улучшить его. Я изо всех сил пытаюсь понять, каков ваш предложенный ответ. Пожалуйста, попробуйте быть более конкретным; например, предоставьте код, который, по вашему мнению, решит проблему. Я также рекомендую вам прочитать "Как написать хороший ответ" . Пожалуйста, рассмотрите эти предложения и измените свой ответ соответственно.
Симус
0

Для моего случая, имеющего такую ​​же ошибку, замена модуля камеры исправила ее. Я смог надежно воспроизвести ошибку, переключаясь между хорошими и плохими модулями камеры. Мой код не страдает от проблем, указанных другими. Похоже, проблемы с оборудованием могут вызвать и это исключение.

Исключением было:

picamera.exc.picamerammalerror: не удалось включить соединение: нет ресурсов

Версия Picamera - 1.13, а модуль камеры - v2.1.

ayush3504
источник