Краткая инструкция по подключению и использованию аппаратной камеры для Raspberry Pi Обратите внимание, что камера может быть повреждена статическим электричеством. Перед тем, как достать камеру рекомендуется дотронуться до заземлённого объекта (например до радиатора батареи отопления), чтобы снять заряд. Камера подсоединяется к плате при помощи гибкого шлейфа. Разъём для шлейфа находится между Ethernet и HDMI портами. Объектив камеры может быть закрыт прозрачной защитной плёнкой, перед использованием её нужно удалить.

Включаем поддержку камеры в Raspbian

Загрузите Raspberry Pi и осуществите вход в систему (по умолчанию имя пользователя - pi , пароль - raspberry ). В терминале выполните команды для обновления дистрибутива Raspbian до последний версии: sudo apt-get update

sudo apt-get upgrade

Программное обеспечение для работы с камерой

raspivid консольное приложение для записи видео с камеры.

raspistill приложения для получения изображений с камеры параметры -o или –output определяют имя выходного файла -t или –timeout длительность записи видео (по умолчанию 5 секунд) -d или –demo запись в режиме демонстрации возможностей. Будут использованы все возможные эффекты

Примеры: raspistill -o image.jpg - захват изображения в.jpg формате

raspivid -o video.h264 - захват 5-ти секундного видео в формате h264

raspivid -o video.h264 -t 10000 - захват 10-ти секундного видео в формате h264

raspivid -o video.h264 -t 10000 -d - захват 10-ти секундного видео в формате h264 в режиме демонстрации возможностей

Посмотреть все возможные параметры для приложений raspivid и raspistill можно следующим образом:raspivid | less, raspistill | less

Используйте курсор для перемещения по списку или введите "q" для выходаПодробное описание параметров для программного обеспечения камеры можно найти

Передача потокового видео по сети

Для передачи видео выполняем на Raspberry Pi команду

raspivid -t 999999 -o - | nc 5001

Для просмотра видео на клиенте необходимо установить mplayer и netcat и запустить их следующим образом nc -l -p 5001 | mplayer -fps 31 -cache 1024 для Linux

Наблюдение всегда было полезным инструментом в арсенале любого хакера, независимо от того нападаем мы или защищаемся. Самостоятельное наблюдение за целями не всегда практично, а традиционные системы видеонаблюдения, как правило, либо слишком дорогое удовольствие, либо имеют недостаточный для наших задач функционал. Сегодня мы будем использовать motionEyeOS на Raspberry Pi Zero для создания небольшой скрытой Wi-Fi камеры, очень доступной и легко скрываемой.

Для чего вы можете ее использовать

Неужели вы бы не нашли способ использовать маленькую, дюймовую шпионскую камеру ценой в 40 баксов? На самом деле, сложное видеонаблюдение никогда не было доступно большинству людей, и только совсем недавно такие платы, как Pi Zero W, стали достаточно мощными, чтобы мы могли создавать такие классные штуки. Благодаря тому, что Raspberry Pi - это решение из разряда Plug-and-Play, мы можем на скорую руку собрать за небольшие деньги легко настраиваемую дневную или ночную камеру.

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

Также перед началом атаки камера может быть использована для выполнения скрытого наблюдения за тем, что делает цель, и за тем, какие предпринимаются меры безопасности. Если установить ее в зоне видимости цели и ее окружения, то можно собирать информацию, например, как цели вводят свои пароли, делать скриншоты ключей, или смотреть, как пользователи реагируют на атаки.

MotionEyeOS

Чтобы собрать эту сборку максимально быстро и просто, мы будем использовать кастомный образ для Raspberry Pi, который называется motionEyeOS.

«MotionEyeOS - это дистрибутив Linux, который превращает одноплатный компьютер в систему видеонаблюдения. ОС основана на BuildRoot и использует на бекенде motionEye , а на фронтенде - motionEye».
motionEyeOS

Проще говоря, мы можем установить столько Raspberry Pi-камер, сколько захотим. Все они будут подключены к одному простому и симпатичному веб-интерфейсу, который мы можем транслировать в Интернет и наблюдать за происходящим перед объективами камер из любой точки мира. Кроме того, мы сможем настроить датчик движения так, что нам не придется часами сидеть, наблюдая за тем, как ничего не происходит.

Обычная камера против NoIR-камеры

Существует два типа плат для камер, которые мы можем использовать с Pi. Оба имеют по 8 мегапикселей и ведут съемку в 1080p. Стандартная камера похожа на камеру в вашем смартфоне, но не такого высокого качества. Камера NoIR немного отличается. Как следует из названия, у нее нет ИК-фильтра (инфракрасного). Это означает, что она может видеть больший спектр света, чем стандартная камера, что дает основное преимущество при ночном видении, но за это придется платить плохой размытой картинкой при свете дня.

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

Если вы ведете съемку в темноте, то используйте камеру NoIR вместо обычной, тогда у вас появится возможность видеть в темноте. Не забывайте, что вам все равно понадобится источник инфракрасного света, например, инфракрасный светодиодный источник или стойка с ИК-подсветкой, чтобы камера могла видеть. Человеческие глаза не видят в ИК-спектре, поэтому не беспокойтесь о том, что этот свет кто-нибудь заметит и догадается о наличии рядом камеры.

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

Если вы ограничены в средствах и можете позволить себе только одну из двух типов камер, то мы советуем купить NoIR-камеру. Это на несколько долларов дороже, но в комплекте идет ИК-фильтр, поэтому вы сможете менять камеру так, чтобы она стала стандартной, когда вам это потребуется.

Корпус для камеры

Корпус для камеры, которую вы хотите использовать, очень важен для любой сборки, потому что здесь есть множество вариантов. Вот некоторые моменты, которые стоит принимать во внимание:

  • Что вы собираетесь использовать - Raspberry Pi или Pi Zero?
  • Собираетесь ли вы установить камеру в помещении или на улице?
  • Насколько прочной она должна быть?
  • Насколько скрытой должна быть ваша камера?

Нужен ли ИК-источник света? Если да, то нужен ли он в какой-то конкретной ситуации?

Учитывая эти вопросы, вы можете погуглить и найти подходящий для ваших целей корпус для камеры. Выбор по умолчанию - корпус, который можно найти на Amazon’е по запросам «Raspberry camera case». Если у вас есть доступ к 3D-принтеру, то можно поискать что-нибудь подходящее на Thingiverse

Если вы используете Pi Zero, то ZeroView и Pigeon будут хорошим выбором.

Что еще вам понадобится

Если вы впервые покупаете Raspberry Pi, тогда набор Canakit - это отличный выбор, в котором есть все, что нужно. Наиболее экономичным вариантом будет Pi Zero CanaKit и Pi 3 CanaKit. Если вы не хотите покупать набор, то вот список того, что вам нужно для этой сборки:

  • Raspberry Pi - в принципе для наших задач годится любая Pi, но настоящий выбор лежит между Pi 3 и Pi Zero W. Встроенный Wi-Fi делает их очень легкими для установки, разница между ними - в производительности и размере. Если размер критичен, то используйте Zero, но у нее могут быть проблемы с производительностью, например, более низкая частота кадров. Имейте в виду, что вы можете использовать длинный (2 метра) кабель для камеры, что позволит лучше спрятать Pi, поскольку видимым должен быть только сам модуль камеры.
  • Карта microSD.
  • Кардридер для microSD.
  • Источник питания.

Шаг 1. Скачайте образ motionEyeOS

Для начала нужно скачать кастомный образ для Raspberry Pi со страницы выпуска motionEyeOS ‘Github . Скачайте последнюю версию для того типа Pi, который вы будете использовать. Помните, что для Pi Zero вам нужно скачать версию для оригинальной Pi.

Образ заархивирован, поэтому первым делом его нужно распаковать. В Windows вы можете использовать 7-Zip, а на Mac - Keka. Вы также можете использовать WinZip для обеих платформ. WinZip стоит денег, но пробная версия бесплатна. После того, как вы установите что-нибудь из них себе в систему, кликните на архив правой кнопкой мыши и выберите в меню «Извлечь файлы» (Extract files).

Шаг 2. Запись образа на карту MicroSD

Теперь необходимо записать образ на карту microSD. Прежде чем начать, лучше отсоедините любые внешние жесткие диски и другие USB-устройства, которые у вас подключены, а затем вставьте microSD карту в кардридер и подключите его к компьютеру. Это важно, чтобы случайно не затереть не тот диск.

Если у вас уже есть программа для записи образов на флешки, то можете воспользоваться ею. Если такой программы еще нет, то загрузите Etcher, так как его использовать проще всего. У него предельно простой пользовательский интерфейс, и он работает на Windows, Mac и Linux. Etcher должен определить, какую операционную систему вы используете. Если этого не происходит, то убедитесь, что вы загрузили версию, которая подходит к вашей операционной системе и следуете инструкциям на экране. Откройте Etcher (если он не откроется автоматически сразу после установки) и выберите образ, который вы только что скачали.

Убедитесь, что вы выбрали правильный диск и запишите образ. Затем безопасно извлеките SD-карту. Маловероятно, что использование Etcher’а вызовет какую-нибудь ошибку, но если вдруг что-то с ним не получится, то попробуйте воспользоваться ApplePiBaker для Mac или Win32 Disk Imager для Windows.

Шаг 3. Настройка Wi-Fi

Мы можем использовать Ethernet для подключения нашего Pi к сети. Это дает самое быстрое и стабильное соединение, но иногда мы хотим или вынуждены использовать Wi-Fi-соединение, поэтому давайте посмотрим, как можно это сделать.

Если вы используете Windows,загрузите Notepad ++ или у вас могут возникнуть проблемы с тем, как Windows сохраняет переносы строк. После того, как вы его скачаете, откройте его и перейдите в меню «Edit», а затем «EOL Conversion» и нажмите «UNIX»

Чтобы Pi подключался к сети при загрузке, мы должны предоставить ему сетевые учетные данные. Сделать это можно с помощью файла wpa_supplicant.conf, который мы добавляем в загрузочный раздел SD-карты. Etcher отсоединил SD-карту, поэтому выньте ее из кардридера и снова вставьте. В Windows необходимо включить отображение расширений имен файлов на вкладке «Вид» в Проводнике, чтобы вы могли редактировать тип файла.

Затем, используя текстовый редактор, например Notepad++, создайте файл с именем «wpa_supplicant.conf». На скриншоте ниже мы создали новый текстовый документ, а затем переименовали его.

Скопируйте текст ниже, заменив SSID и PSK своей информацией, но не удаляйте кавычки. Если вы живете за пределами США, то можете найти свой код страны и тоже заменить его

Country=us update_config=1 ctrlinterface=/var/run/wpasupplicant network={ scan_ssid=1 ssid=»MyNetworkSSID» psk=»YourPassword» }

После этого сохраните файл и безопасно извлеките SD-карту. Если вы делаете много сборок Pi, то это может быть очень полезный файл, который имеет смысл хранить на рабочем столе и просто копировать на каждую новую Pi, чтобы быстро подключать ее к Wi-Fi.

Шаг 4. Собираем устройство

Самой важной частью процесса сборки является подключение камеры. Давайте посмотрим, как это должно быть сделано на Pi и Pi Zero.

Во-первых, поднимите черную пластиковую часть ленточного разъема, расположенную между разъемами HDMI и аудио на Pi 3.

Затем вставьте ленточный кабель таким образом, чтобы его медные разъемы были обращены к порту HDMI и нажмите вниз его черную часть.

На Pi Zero процесс похож. Вытяните черную пластиковую часть ленточного разъема.

Теперь вставьте ленту так, чтобы ее медные контакты были обращены к плате, и также нажмите на черную часть.

После этого вы должны проделать то же самое с другим концом кабеля и модулем камеры, при этом медные провода должны быть обращены к плате.

Вставьте SD-карту в слот внизу Raspberry Pi. Последний этап - засунуть все это в тот корпус, который вы выбрали. Здесь у нас корпус Pi Foundation, который идет в комплекте CanaKit.

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

Наконец, подключите Pi к питанию.

Шаг 5. Запустите вашу Pi

Pi может потребоваться несколько минут, чтобы загрузиться в первый раз, поэтому можно сходить на кухню и сделать себе кофе или чаю, или можно начать записывать ОС на новую флешку если вы запланировали сделать несколько устройств. Через три-пять минут она должна загрузиться, поэтому найдем ее в нашей сети.

Ее IP-адрес можно найти несколькими способами. Например, можно открыть страницу администрирования вашего маршрутизатора и просмотреть все подключенные к нему устройства или воспользоваться программами типа Nmap, Fing или Angry IP Scanner . Если вы не можете найти его, то наиболее вероятной проблемой будет файл wpa_supplicant.conf. Дважды проверьте его и убедитесь, что информация в нем записана правильно.

Как только вы найдете IP-адрес Pi, вставьте его в адресную строку вашего браузера. Вы попадете на страницу входа камеры. По умолчанию имя пользователя - admin, а пароля нет.

Если все сделано правильно, то в верхнем левом углу мы увидим наш видеоканал.

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

По очевидным причинам, первая вещь, которую мы должны сделать - установить пароль администратора и пароль пользователя. Кликните на три горизонтальные полоски в левом верхнем углу экрана, а затем кликните на «General Settings».

К сожалению, вы не сможете изменить имя пользователя admin, но вы можете изменить «Surveillance Username». Как следует из названия, этот пользователь может просматривать только камеры, но не имеет прав изменять настройки. Идем дальше и устанавливаем пароли для обеих учетных записей.

Если вы находитесь в меню, то вы, может быть, захотите изменить имя камеры («Camera Name») в разделе «Video Device». Это очень полезно, когда у вас есть много камер или у вас есть кто-то, кто не знаком с настройкой камеры. После этого нажмите «Apply» на верхней панели, и камера перезапустится.

Когда камера перезапустится, нам нужно проверить наличие обновлений. Перейдите на вкладку «General Settings» и кликните «Advanced Settings». Когда вкладка развернется, кликните «Check» рядом с «Software Updates». Обновление ПО должно стать вашей привычкой.

Вы можете изменить часовой пояс и имя хоста. Здесь также вы должны безопасно отключать Pi.

Шаг 6. Исправление IP-адреса

Чтобы упростить себе процесс добавления камер и поиск этой веб-страницы в будущем, полезно установить статический IP-адрес. Найдите вкладку «Network» в настройках и откройте ее. Затем измените конфигурацию IP на статическую, установив IP в тот, который у нее есть в текущий момент.

Шаг 7. Добавление камер

В любом случае в реальности обычно требуется больше одной камеры. Наша текущая конструкция может быть визуализирована следующим образом:

Однако это не будет нормально работать, поскольку придется каждый раз заходить на веб-страницу для каждой новой камеры. И в связи с этим, у нас есть два варианта добавления новых камер. Первый заключается в том, чтобы иметь Pi-хост более чем для одной камеры, что можно сделать, если добавить новые веб-камеры к Pi. Это может быть полезно, если для покрытия всех углов в одной зоне наблюдения требуется несколько камер, но эта возможность ограничена вычислительной мощностью Pi. В зависимости от того, какое разрешение камеры и частоту кадров вы установили, вы можете избежать подобных проблем на Pi 3, но не на Pi Zero.

Чтобы добавить камеру в сеть, перейдите в верхнюю левую часть страницы и откройте вкладку «Settings», затем кликните «Camera 1» и «add camera».

Появится окно, по умолчанию оно будет искать любые локальные камеры на Pi. У нас камер больше нет, но если вы это сделаете, то появится раскрывающееся меню рядом с «Camera». Выберите ту, которую вы хотите добавить, и кликните «ОК».

Второй способ, который мы можем использовать, заключается в том, чтобы одна motionEye-камера дистанционно управляла другой motionEye-камерой. Мы даже можем обозначить одно из motionEye-устройств как хаб и добавить все другие камеры на основе motionEye к этому хабу в качестве удаленных motionEye-камер. Это лучше всего подходит для нашей сборки на основе Pi из-за ограниченной мощности процессора каждой отдельной Pi. Из Pi Zero получаются отличные удаленные камеры, с которыми Pi 3 выступает в качестве хаба.

Перейдите в меню «Add Camera», как и раньше, но на этот раз выберите «remote motionEye». Затем вам нужно предоставить информацию, причем URL-адресом будет статический IP-адрес, который мы установили несколькими шагами ранее. Если у этого Pi имеется более одной камеры, вы можете выбрать, какую из них добавить.

Шаг 8. Настройка обнаружения движения

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

Если у вас возникли проблемы с ложным срабатыванием камер, включите «Mask», и вы сможете выбрать те части кадра, которые нужно игнорировать. Это действительно полезно, если у вас есть деревья, которые шатаются на ветру, или автомобили, проезжающие по улице.

Заключение

Сегодня мы узнали, как сделать и настроить одну или несколько Raspberry Pi-камер, работающих под управлением motionEyeOS и объединить их в сеть.

Есть больше настроек, которые мы могли бы рассмотреть, такие как проброс портов, чтобы мы могли видеть камеру из любого места в Интернете, запуск скриптов в результате движения чего-то в кадре или использование контактов GPIO. Мы рассмотрим некоторые из этих функций в следующих статьях. А пока изучите остальные настройки самостоятельно и не забывайте о всплывающих подсказках, которые будут отображаться справа от каждой настройки при наведении на нее мыши.

Если у вас есть вопросы, не стесняйтесь оставлять их в комментариях!

Отказ от ответственности : Эта статья написана только для образовательных целей. Автор или издатель не публиковали эту статью для вредоносных целей. Если читатели хотели бы воспользоваться информацией для личной выгоды, то автор и издатель не несут ответственность за любой причиненный вред или ущерб. Рассмотрим методы правильного подключения камеры к Raspberry Pi и работу с ней через терминальное окно и с помощью языка программирования Python.
Материалы по теме: ,
Подключая камеру к Raspberry помним следующее:
  • камера боится статического электричества, прикасаться к ней во время работы желательно через антистатический материал
  • камера потребляет 250 мА - при использовании посредственного блока питания Малины подключение камеры может вызвать нехватку питания при активной работе камеры
  • в камере нет микрофона
  • верх камеры находится со стороны противоположной выходу шлейфа, но для отражение изображения по вертикали есть специальная команда - об это ниже.

Подключение

Желательно выполнять подключение камеры к выключенной Raspberry. Быстро выключить Малину можно командой
sudo shutdown now
Шлейфовый разъем CSI находится рядом с HDMI:Плюс подключения камеры через этот разъем в отличие от USB - в разгрузке процессора при передаче данных через интерфейс CSI
Для удобства фиксации камеры есть готовые решения, например - Акриловый холдер .
Интерфейс камеры должен быть активирован в настройках Raspberry:
После активации камеры (если это требовалось) Малину необходимо перезагрузить:sudo reboot now
Для работы с камерой в Raspbian уже предустановлены необходимые утилиты и драйвера. Обновим пакеты для использования свежих версий: sudo apt-get update -y sudo apt-get dist-upgrade -y Если все сделано верно, попробуем получить пробный кадр с камеры - создадим папку для фотографий, перейдем в нее и выполним команду захвата изображения: mkdir ~/pi_cam/ cd ~/pi_cam/ raspistill -v -o test.jpg
В случае фейла следует проверить предыдущие шаги, либо прозвонить контакты разъемов на камере и на Малине.
В ОС Raspbian предустановлены следующие пакеты для работы с камерой:
  • raspivid, raspvidyuv - захват видео
  • raspistill, raspiyuv- получение фотографий
Полное руководство по перечисленным утилитам на английском языке находится на офф. сайте Raspberry Pi
Все утилиты запускаются из терминала и достаточно просты в использовании.
Пакеты, с названиями, оканчивающимися на “yuv” не используют компонент кодирования - сохраняют “сырую” необработанную информацию, полученную сенсором камеры. Рассмотрим работу с каждым пакетом, но прежде познакомимся со списком общих для всех пакетов параметров камеры, а далее рассмотрим специфические аргументы и конкретные примеры их применения.

Общие параметры

Рассмотрим значения параметров. Стоит заметить, что:
  • Если какой то аргумент не указан при обращении к утилите, то применяется его значение по умолчанию.
  • ЕСЛИ КОЛОНКА “ДИАПАЗОН ДОПУСТИМЫХ ЗНАЧЕНИЙ” ПУСТА - значит никаких дополнительных значений передавать не нужно - достаточно передачи самого аргумента.
  • Превью демонстрируется только на подключенном к Raspberry физическом мониторе. В случае доступа к Малине через удаленный рабочий стол (VNC) превью демонстрироваться не будет при любых настройках так как изображение превью посылается напрямую на монитор поверх остальной информации
  • Аналогичная с просмотром видео через рабочий стол
Аргумент
Описание
Диапазон допустимых значений
Значение по умолчанию
-p
Параметры окна предпросмотра
ширина,высота,x-координата, y-координата
-f
Предпросмотр во весь экран
no
-n
Без предпросмотра
-op
Прозрачность окна предпросмотра
0...255
255
-sh
Резкость
-100...100
0
-co
Контраст
-100...100
0
-br
Освещенность
0...100
50
-sa
Насыщенность
-100...100
0
-ISO
Чувствительность датчика в камере
-100...100
0
-vs
Стабилизация видео
(только для видео)
no
-ev
Экспокоррекция
-10...10
0
-ex
Экспозиция
  • night
  • nightpreview
  • backlight: подсветка позади объекта съемки
  • spotlight: освещение прожектором
  • sports: объект в движении
  • snow: снежный пейзаж
  • beach: пляжный пейзаж
  • verylong: затяжная экспозиция
  • fixedfps: ограничение FPS до фиксированного значения
  • antishake: антитряска
  • fireworks: пейзаж с фейерверками
auto
-awb
Баланс белого
  • sun: 5000K...6500K - солнечно
  • cloud:6500K ... 12000K облачно
  • shade: в тени
  • tungsten: 2500K ... 3500K вольфрам
  • fluorescent: 2500K ... 4500K
  • incandescent: раскаленный металл
  • flash: со вспышкой
  • horizon
auto
-ifx
Разнообразные эффекты
none, negative, solarise, posterise, whiteboard, blackboard, sketch, denoise, emboss, oilpaint, hatch, gpen, pastel, watercolour, film, blur, saturation, colourswap, washedout, colourpoint, colourbalance, cartoon
none
-cfx
Баланс цветов
0...255:0...255
128:128
-mm
Замер экспозиции
  • average: среднее
  • spot: точка
  • backlit: считать изображение с подсветкой
  • matrix: матричный замер
average
-rot
Поворот
0 ... 359
0
-hf
Отражение по горизонтали
No
-vf
Отражение по вертикали
No
-roi
Область интереса сенсора
координаты от левого верхнего угла и ширина и высота области
0 … 1,0 … 1,0 … 1,0 … 1
0,0,1,1
-ss
Скорость затвора
в микросекундах
6000000
-drc
Сжатие динамического диапазона
off
-st
показывать статистику
No
Далее рассмотрим утилиты по отдельности.


raspistill - захват фото

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

Аргументы

Аргумент
Описание
Диапазон допустимых значений
Значение по умолчанию
-w
Ширина
0...макс
макс
-h
Высота
0...макс
макс
-q
Качество
0...100
75
-o
Имя файла
путь к файлу
-
-v
Вывод в терминал
Информация о процессе захвата
no
-t
Задержка перед действием
в миллисекундах
0
-tl
Таймлапс
пример: -tl 2000 -o image%04d.jpg
2000 - интервал
%04d - шаблон 4х значного числа
-
-e
Кодирование в формат
jpg, bmp, gif, and png
jpg
-x
Добавление EXIF тегов
до 32 тегов
-
-r
Сохранение массива Байера в Мeta-данных кодированного избражения
-

Примеры

Рассмотрим конкретные примеры использования raspistill:
Захват стандартного изображения через 2 секунды с сохранением в файл image.jpg (в той папке, в которой сейчас находитесь). Разрешение при этом будет стандартным (максимальным) raspistill -t 2000 -o image.jpg Тоже самое, но в разрешении 640х480 raspistill -o image.jpg -w 640 -h 480 Захват изображения с заниженным 5% качеством с сохранением в файл image.jpg (в той папке, в которой сейчас находитесь). При таком качестве размер изображения будет существенно меньше raspistill -o image.jpg -q 5 Получение изображения, кодированного в формат PNG с сохранением в файл image.png raspistill -o image.png –e png Получение стандартного изображения с двумя зашитыми EXIF-тегами: Артист - Борис, GPS-высота - 123,5 м raspistill -o image.jpg -x IFD0.Artist=Boris -x GPS.GPSAltitude=1235/10 Создание таймлапс-набора изображений, которые будут захватываться с интервалом в 10 секунда на протяжении 10 минут (600 000 мс) и называться image_num_001_today.jpg, image_num_002_today.jpg и так далее. Завершающее изображение будет иметь имя latest.jpg raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l latest.jpg Захват изображений при нажатии клавиши Enter, файлы будут сохраняться рядом и называться my_pics01.jpg my_pics02.jpg и т.д. raspistill -t 0 -k -o my_pics%02d.jpg

raspiyuv

Аргументы запуска в точности как у raspistill (см. выше), из них НЕДОСТУПНЫ только следующие:
-q - качество
-e - указание целевого формата изображения
-x - Добавление EXIF тегов
-r - Сохранение массива Байера в Meta-данных кодированного изображения
Однако имеется СОБСТВЕННЫЙ аргумент
-rgb - сохранение “сырых” raw-данных в формате RGB888 (8 бит/канал)

raspivid - захват видео

Параметры запуска

Аргумент
Описание
Диапазон допустимых значений
Значение по умолчанию
-w
Ширина
0...макс
1920
-h
Высота
0...макс
1080
-b
Битрейт видео
количество бит в секунду.
10Mbits/s задается -b 10000000
-o
Имя файла
путь к файлу
-
-v
Вывод в терминал
Информация о процессе захвата
-t
Задержка перед действием
в миллисекундах
0
-fps
Фреймрейт
Количество кадров в секунду 2...30
-k
Запуск/останов записи по нажатию Enter
процесс прерывается нажатием “X”
-sg
Сохранение отрезков видео с фиксированной продолжительностью в отдельные файлы
Задается длительность одного отрезка и маска файлов
-sg 3000 -o video%04d.h264
-wr
Ограничение максимального количества файлов при сегментации
Применяется с аргументом -sg и по сути реализует циклическую перезапись как в видеорегистраторах
Разрешение по умолчанию - 1080p (1920x1080)
Рассмотрим конкретные примеры:
Запись 5-ти секундного стандартного видео (1920x1080, 30 кадров/сек) с сохранением в файл video.h264 raspivid -t 5000 -o video.h264 Запись 5-ти секундного ролика с разрешением 1080p и специфическим битрейтом 3.5Mbits/s с сохранением в файл video.h264 raspivid -t 5000 -o video.h264 -b 3500000 Запись 5 секунд видео стандартного разрешения с частотой кадров 5fps с сохранением в файл video.h264 raspivid -t 5000 -o video.h264 -f 5 Если к Raspberry подключен монитор через HDMI, то записанное видео можно посмотреть с помощью плеера omxplayer: sudo apt-get install omxplayer #если плеер еще не установлен omxplayer video.h264 Через VNC просмотр видео недоступен

Коды ошибок

  • 0 - успешное завершение
  • 64 - передана неверная команда (ошибка в синтаксисе)
  • 70 - ошибка в утилите или при связи с камерой
  • 130 - выполнение прервано пользователем (сочетанием клавиш Ctrl + C)

Библиотека PiCamera

Это библиотека для языка программирования Python позволяющая упростить и автоматизировать работу с камерой Raspberry
Полное описание библиотеки на английском
В современных версиях дистрибутива Raspbian библиотека уже предустановлена, проверить это можно через консоль Python python3 import picamera В случае фейла необходимо покинуть консоль введя команду exit() или сочетанием клавиш Ctrl + D и установить библиотеку командой sudo apt-get install python3-picamera Работа с камерой из кода Python аналогично рассмотренным выше терминальным командам. Получить стандартное изображение с камеры можно легко прямо в консоли Питона: import picamera #импортируем библиотеку работы с камерой camera = picamera.PiCamera() #создаем объект камеры camera.capture("image.jpg") #вызываем у объекта камеры метод захвата изображения camera.close() #закрываем сессию работы с камерой Изображение сохраниться в файл image.jpg в текущей папке.

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

Обычно такие скрытые камеры имеют возможность обнаружения движения, которая запускает процесс съемки каждый раз, когда что-то появляется в поле зрения. В таких камерах обычно используют PIR для запуска съемки или записи видео.

PIR - это пироэлектрический инфракрасный датчик движения.

К сожалению, использование PIR может привести к тому, что камера не будет запущена или объект съемки исчезнет полностью до срабатывания камеры. С помощью камеры в проекте мы можем решить эту проблему, избавившись от PIR и вместо этого используя систему обнаружения. Мы также сможем фиксировать события, которые происходят до обнаружения движения (благодаря возможностям программного обеспечения), что увеличивает вероятность получения идеальных фото или видео.

Главное теперь взять с собой Raspberry Pi и порыться на кухне в поисках пластмассового контейнера для продуктов.

Если вы используете модуль No-IR Pi Camera (без инфракрасного фильтра) и некоторые ИК-светодиоды, вы можете сделать камеру с возможностью ночного видения.

Чтобы сделать проект проще мы используем с нашей Raspberry Pi библиотеку MotionEyeOS . Она предназначена для видеонаблюдения, но идеально подходит для нашей камеры, поскольку поддерживает неподвижные изображения, а также делает запись видео качества HD, плюс обладает возможностью обнаружения движения.

Шаг 2. Что нужно

Чтобы создать эту простую камеру, вам понадобятся следующие комплектующие:

  • Рекомендуется использовать Raspberry Pi 3 Model B +, но вы можете использовать любой Pi (включая Zero).
  • MicroSD Card - используйте Class 10 для лучшей производительности и большей емкости для большего времени записи.
  • Pi камера - рекомендуется модуль камеры Pi V2, но также будут работать USB веб-камеры.
  • Используйте инфракрасный фильтр для Pi камеры с инфракрасными светодиодами для ночного видения.
  • Портативный аккумулятор с USB-выходом. Выберите большую емкость аккумулятора для более длительного времени работы.
  • Пластиковый контейнер для пищевых продуктов. Используйте один с герметичной крышкой, способной обеспечить защиту от атмосферных воздействий.

Дополнительные детали , которые можно рассмотреть:

  • Дополнительная камера (камеры) - для многонаправленной записи.

    Обратите внимание, что Pi имеет только одно подключение к модулю Camera Module, любые дополнительные камеры должны быть подключены через USB.

  • Проволочная/тканевая сетка для покрытия дополнительного вентиляционного отверстия.
  • USB HDD - добавляет дополнительную емкость, но быстрее потребляет аккумулятор.

Вам потребуется небольшой набор инструментов:

  • Отвертка.
  • Горячий клей.
  • Электрическая дрель.
  • Доп. инструменты.

Программное обеспечение:

MotionEyeOS - загрузите соответствующий файл изображения для вашей модели Pi.
- используется для записи файла образа MEYEOS на карту MicroSD.
WinSCP - не требуется, но удобен для загрузки нескольких медиафайлов из Pi за один раз.

Шаг 3. Создание бокса для Raspberry камеры

Фотографии выше демонстрируют примерный процесс.

  1. Используя маркер, нарисуйте контур объектива камеры на стене контейнера (включая ИК-светодиоды, если используете).
  2. Используя сверло с конусом, сверлите из центра контуров и вырежьте отверстия, пока вы не перестанете видеть границы маркерных отметок.
  3. Используйте инструмент для обрезки и очистки отверстий, если это необходимо.
  4. Если вы устанавливаете дополнительный навес/щит для защиты от дождя, отрежьте его по размеру и закрепите на месте горячим клеем.
  5. Прикрепите кабель от камеры к модулю камеры (следуйте инструкциям, прилагаемым к вашей камере).
  6. Используйте горячий клей для надежного крепления модуля камеры - старайтесь избегать приклеивания к компонентам модуля, это упростит удаление камеры из коробки позже.
  7. Поместите все в коробку.

Совет. Просверлите дополнительное отверстие в коробке и закройте его сеткой для обеспечения вентиляции. Если вы оставите камеру на солнце в течение какого-то времени, рекомендуется сделать так, чтобы был доступ воздух в контейнер для охлаждения Raspberry и особенно аккумулятора.

Шаг 4. Настройка Raspberry Pi

Если вы уже знакомы с малиной Pi, этот шаг, вероятно, будет вам не интересен и вы можете его пропустить.

Установка операционных систем:

  • Windows
  • MacOS
  • Linux

Примечание. Мы используем изображение MotionEyeOS, поэтому вам не нужно скачивать Raspbian.

Чтобы настроить свою Raspberry Pi, выполните следующие действия:

  1. Вы можете загрузить последнюю версию файла изображения MotionEyeOS из своего GitHub .
  2. После того как вы загрузили изображение, вам нужно его извлечь, для этого используйте winRAR или другие программы.
  3. Вставьте карту MicroSD в компьютер и запишите файл изображения. Если у вас Windows используйте .
  4. После завершения записи изображений извлеките карту MicroSD из своего компьютера, вставьте в Raspberry Pi и затем включите ее.
  5. Как только Pi включится и загрузится (как правило, занимает около 30 секунд), к нему можно получить доступ через веб-браузер, вам просто нужно узнать имя хоста или IP-адрес, а затем ввести его в адресную строку браузера.

Примечание. Вы хотите подключить кабель Ethernet RJ45 от Pi к маршрутизатору для первоначальной настройки, в этом случае будет проще сделать сначала это, а затем настроить соединение Wi-Fi.

Легкий способ найти IP-адрес Pi - это консоль управления веб-маршрутизатором. Обычно это делается путем ввода его IP-адреса в адресной строке веб-браузера (например, http://192.168.0.1).

Шаг 5. Настройка MotionEyeOS

На данный момент вы создали свой бокс, подготовили SD-карту Pi, включили все и получили доступ к веб-консоли MotionEyeOS. Пришло время настроить MotionEyeOS в соответствии с вашими требованиями. Ссылки на библиотеку на GitHub мы приводили выше.

Когда вы сначала пытаетесь войти в систему MotionEyeOS, вам будет предложено ввести учетные данные, по умолчанию используется имя пользователя: admin и пароль по умолчанию: --blank--.

Веб-интерфейс достаточно интуитивно понятен, поэтому у вас не должно быть особых проблем:

  1. Рекомендуется установить пароль для двух учетных записей по умолчанию (Admin и User).
  2. Установите правильный часовой пояс, чтобы на мультимедийных файлах была установлена ​​правильная отметка времени.
  3. Включите Wi-Fi и введите свои учетные данные Wi-Fi, вам не нужно подключаться к кабелю Ethernet.
  4. Установите желаемую частоту кадров камеры и разрешение (например, 1-10 кадров в секунду и 1920x1080).
  5. Установите хранилище файлов - оставьте по умолчанию, если используете SD-карту, измените, если используете USB-накопитель.
  6. Вы можете выбрать, нужно ли записывать неподвижные изображения (фото) или видео или оба варианта одновременно.

Поскольку у нас будет скрытая камера для съемки животных, мы будем использовать функцию «Обнаружение движения». Это позволяет событию "движение" инициировать захват и запись изображений и/или видео. Обнаружение движения достигается путем обнаружения изменений в пикселях изображения камеры с учетом различных параметров, которые можно настроить.

Мы используем следующие настройки обнаружения движения - ниже, но предлагаем вам поиграть с опциями до тех пор, пока вы не найдете то, что работает для вас, поскольку каждый сценарий немного отличается:

  • Frame Change Threshold = 1.5%
  • Auto Noise Detection = Off
  • Noise Level = 12%
  • Light Swith Detection = 0% (disabled)
  • Despeckle Filter = Off
  • Motion Gap = 5 seconds
  • Captured Before = 5 frames
  • Captured After = 10 frames
  • Minimum Motion Frames = 5 frames

MotionEyeOS также предоставляет вам возможность включить маску обнаружения, что позволяет исключить области изображения из обнаружения движения.

После того, как вы закончите вносить изменения в настройки, нажмите кнопку «Применить», для обновления потребуется около 10-20 секунд. Обратите внимание, что некоторые изменения потребуют перезагрузки Pi.

Шаг 6. Размещаем камеру

Теперь, когда вы настроили саму Raspberry Pi камеру, пришло время ее разместить. Как вы это сделаете, во многом будет зависеть от того, что вы пытаетесь снять. В нашем случае мы покрыли камеру ветками. Наш "тайник" хорошо сливается с природой и не пугает животных. Но можно использовать, например, камуфляжную упаковку.

Обязательно закройте как можно большую часть коробки, но не заслоняйте объектив. Если вы используете инфракрасные светодиоды для ночного видения, вам также нужно убедиться, что вы их не закрыли.

Длительность работы камеры во многом будет зависеть от емкости используемой батареи и есть ли у вас какие-либо дополнительные элементы, потребляющие электроэнергию (то есть ИК-светодиоды, USB-накопитель и т.п.).

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

Т.к. этот компьютер обладает достаточной производительностью для того чтобы принимать, хранить, обрабатывать и передавать по wifi, на другие устройства, видео с камеры (например с usb камеры). Существуют специальные камеры для Raspberry PI которые подключаются к специальному разъёму на нём и USB камеры которые подключаются к, какому либо, порту USB на Raspberry PI. Т.к. USB камеры, как правило, гораздо дешевле чем специальные (пусть и хуже) то далее рассмотрим использование именно USB камеры с Raspberry PI. Существует некоторое количество программ для захвата видео с USB камеры или же можно написать свою но для простоты для начала рассмотрим захват и передачу видео с использованием программы motion. Для установки программы motion на Raspberry PI нужно сначала подключиться к нему через программу Putty (или любую другую программу-терминал с возможностью связи по SSH) (о том как это сделать смотрите в предыдущей статье "Raspberry PI 3 настройка и управление GPIO по WIFI "). После подключения к Raspberry PI нужно произвести обновление системы командами

Sudo apt-get update

Sudo apt-get upgrade

После успешного обновления системы нужно установить программу motion командой

Sudo apt-get install motion

При установке возможно будет задан вопрос "Do you want to continue?" после которого надо будет ввести буку "Y". После установки программы motion нужно будет внести некоторые изменения в конфигурационные файлы. Откроем файл motion.conf в редакторе nano командой

Sudo nano /etc/motion/motion.conf

После чего

Заменить на

Далее найдём другие строки для изменения, для этого нажмём сочетание клавиш CTRL+W, впишем "stream_localhost" и нажмём enter, после этого должна найтись нужная строка, если не нашлась то переменная "stream_localhost" называется как то по другому например "webcam_localhost" или что то подобное. После того как строка с данной переменной найдена нужно

Stream_localhost on

заменить на

Stream_maxrate 1

И заменить на

Stream_maxrate 100

Заменить на

После чего

Minimum_frame_time 0

Заменить на

Minimum_frame_time 1

Последнее делается для того чтобы кадры выводились раз в секунду - это не очень хорошо смотрится но зато видео не будет пропадать при резком изменении изображения. Назначение каждой переменной можно прочитать в комментариях.
Теперь сохраним изменения нажав CTRL+O и enter после чего нажмём CTRL+X и выйдем из редактора nano. Теперь давайте отредактируем другой файл, для этого введём команду

Sudo nano /etc/default/motion

И заменим строку

Start_motion_daemon=no

Start_motion_daemon=yes

После чего сохраним изменения нажав CTRL+O и enter а дальше нажмём CTRL+X и выйдем из редактора nano. Теперь запустить передачу видео (USB камера при этом должна быть подключена к одному из портов) можно командой

Sudo service motion start

Остановить командой

Sudo service motion stop

Для того чтобы увидеть видео нужно открыть браузер, и вписать в адресной строке IP адрес Raspberry PI после чего поставить двоеточие и 8081 (IP адрес Raspberry PI:8081) и нажать enter после чего в браузере должно появится видео с USB камеры. Посмотреть как это всё делается, увидеть результат и кое что ещё можно в видео:

Вот так простым способом можно получить видео с USB камеры подключённой к Raspberry PI. Если это Raspberry PI 3 со встроенным wifi и питающийся от powerbank (или какого либо другого переносного источника электроэнергии)(например такой такой или подешевле такой хотя не рекомендуется использовать дешёвый, Raspberry PI нужен нормальный источник питания для использования всех его возможностей, также очень желательно поставить радиатор на процессор и другие микосхемы которые нареваются в ходе работы Raspberry, в идеале радиатор д.б. медным и порытым специальной чёрной краской) то на основе всего этого можно сделать какую либо систему видеонаблюдения, видеокамеру или что то подобное.