Настройка и примеры работы камер для Raspberry Pi

Компактные камеры для Raspberry Pi не занимают дефицитные USB-порты и не нагружают процессор одноплатника, как это делают внешние USB-камеры.

Модели камер для Raspberry Pi

Подключение камеры

Камеры чувствительны к статическому электричеству. Перед работой с модулем, устраните свой заряд — например прикоснитесь к домашней водопроводной трубе.

  1. Подключите камеру через шлейф к Raspberry Pi в разъём CSI:
  2. Присоедините дисплей к малинке через HDMI-разъём.
  3. Зайдите в меню конфигурации параметров Raspberry Pi:
    Preferences Raspberry Pi Configuration
  4. Перейдите на вкладку Interfaces и переключите радиокнопку Camera в положение Enabled.
  5. Сохраните изменения кнопкой OK и перезагрузите Raspberry Pi.

Для работы с камерой используйте подключение по HDMI. При работе через виртуальный рабочий стол (VNC) окно с захватом данных с камеры не отобразится.

Примеры работы через встроенные утилиты

Камера подключена и настроена — проверим её возможности. Для испытания воспользуемся встроенными утилитами raspistill и raspivid, которые служат для захвата фото и видео соответственно.

Все команды выполняйте во встроенном терминале.

Тест камеры

Исполните инструкцию захвата изображения.

raspistill -t 10000

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

Снимок фото

Попробуем сделать снимок камеры и сохранить фотографию в файл.

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

Выполните команду захвата изображения и сохранения в файл на рабочем столе с именем image.jpg.

raspistill -t 2000 -o /home/pi/Desktop/image.jpg

В результате на рабочем столе появится фотография с камеры.

Запись видео

Используйте модуль в режиме видеокамеры — снимите минутный ролик и сохраните его с именем video.h264.

raspivid -t 60000 -o video.h264

После минутного ожидания, на рабочем столе появится видеофайл с камеры. Для просмотра ролика используйте встроенный плеер.

Более подробно про встроенные утилиты для работы с камерой читайте в документации от производителя.

Примеры работы через Python

Проведём эксперименты с камерой через интегрированную среду разработки Python3.

Тест камеры

  1. Запустите IDLE, войдя в главное меню и выбрав пункты Programming Python 3 (IDLE)
  2. Создайте новый файл и сохраните его.

    Не сохраняйте файл под именем picamera.py — название зарезервировано для системного файла. Если файл перезаписать — камера не будет работать.

  3. Введите следующий код.
    testCamera.py
    # подключаем необходимые библиотеки
    from picamera import PiCamera
    from time import sleep
     
    # создаём объект для работы с камерой
    camera = PiCamera()
     
    # запускаем предпросмотр сигнала с камеры на экране поверх всех окон
    camera.start_preview()
     
    # 10 секунд смотрим на экран
    sleep(10)
     
    # выключаем предпросмотр
    camera.stop_preview()


  4. Сохраните файл комбинацией клавиш Ctrl + S и запустите его выполнение, нажав F5. На десять секунд на экране появится изображение с камеры.

Ваша камера исправна, правильно подключена и готова к работе!

Снимок фото

Изменим код предыдущего примера, чтобы сохранить фотографию с камеры в файл.

  1. Уменьшите время ожидания следующей команды с десяти до трёх секунд. Для этого измените параметр функции sleep. Не уменьшайте его меньше двух секунд — камере необходима пауза между включением и выполнением снимка. За это время модуль автоматически скорректирует баланс белого и экспозицию.
  2. Перед последней строкой добавьте функцию camera.capture и укажите путь, по которому будет находиться наша фотография. У вас должен получиться следующий код:
    saveImage.py
    # подключаем необходимые библиотеки
    from picamera import PiCamera
    from time import sleep
     
    # создаём объект для работы с камерой
    camera = PiCamera()
     
    # запускаем предпросмотр сигнала с камеры на экране поверх всех окон
    camera.start_preview()
     
    # даём камере три секунды на автофокусировку и установку баланса белого
    sleep(3)
     
    # делаем снимок и сохраняем его на рабочий стол с именем image.jpg
    camera.capture('/home/pi/Desktop/image.jpg')
     
    # выключаем режим предпросмотра
    camera.stop_preview()


  3. Сохраните файл и запустите его. В результате его выполнения на рабочем столе появится фотография с камеры.

Запись видео

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

  1. Замените функцию capture() на функции start_recording() и stop_recording() — для начала и окончания записи.
  2. Длину ролика можно задать с помощью параметра функции sleep, как мы это делали в предыдущих примерах. Но мы рекомендуем использовать метод camera.wait_recording — он отслеживает и обрабатывает ошибки записи.
    camera.py
    from picamera import PiCamera
    from time import sleep
     
    camera = PiCamera()
     
    # Запускаем предпросмотр сигнала с камеры на экране поверх всех окон
    camera.start_preview()
     
    # Начинаем запись видеофайла
    camera.start_recording('/home/pi/Desktop/video.h264')
     
    # Минуту пишем потоковое видео
    camera.wait_recording(60)
     
    # Останавливаем запись
    camera.stop_recording()
     
    # Выключаем предпросмотр
    camera.stop_preview()

После минутного ожидания, на рабочем столе появится видеофайл с камеры. Для просмотра ролика используйте встроенный плеер.