- Установка и настройка «Движение» для получения видеопотока:
- Настройка Flask в Raspberry Pi для управления роботом через веб-страницу:
- HTML-код для веб-страницы:
- Робот-наблюдатель
- Принципиальная схема и установка:
- Как работать:
На этом занятии своими руками мы создаем роботизированный автомобиль для видеонаблюдения с веб-управлением, используя Raspberry Pi и веб-камеру. Это может быть полезным и недорогим инструментом безопасности и шпионажа, который имеет множество настраиваемых параметров и может быть создан за несколько часов. В этом проекте IoT мы в основном используем Raspberry Pi, USB-веб-камеру и два двигателя постоянного тока с шасси робота для создания этой роботизированной машины.
Над ним установлена веб-камера, через которую мы будем получать прямую видеотрансляцию, и самое интересное здесь то, что мы можем управлять этим роботом и перемещать его из веб-браузера через Интернет. Поскольку им можно управлять с помощью веб-страницы, это означает, что им также можно управлять с помощью веб-страницы в Mobile. Мы создали веб-страницу в HTML, которая имеет ссылки влево, вправо, вперед и назад, щелкая по которым мы можем перемещать робота в любом направлении. Здесь мы использовали «Motion» для получения видеопотока в реальном времени с USB-камеры и использовали «Flask» для отправки команд с веб-страницы на Raspberry Pi с использованием python.для перемещения робота, что подробно объясняется в следующей части этого руководства. На нашей плате Raspberry Pi установлена ОС Raspbian Jessie. Вы можете проверить эту статью, чтобы установить ОС Raspbian и начать работу с Raspberry Pi.
Установка и настройка «Движение» для получения видеопотока:
Motion (Программное обеспечение для видеонаблюдения) - это бесплатное программное обеспечение для видеонаблюдения с открытым исходным кодом, разработанное для Linux. Он обнаруживает движение и начинает записывать его на видео. Установив на Raspberry Pi «Motion», вы можете волшебным образом превратить Raspberry Pi в камеру безопасности. Он используется для получения видеотрансляции в реальном времени, создания видеороликов с интервальной съемкой и создания снимков с регулярными интервалами. Он записывает и сохраняет видео всякий раз, когда обнаруживает движение или какие-либо помехи в области просмотра. Канал Live Video можно просматривать в веб-браузере, введя IP-адрес Pi вместе с портом.
Мы создали подробное руководство по использованию движения с Raspberry Pi и USB-камерой, здесь мы кратко объясняем его установку на Raspberry pi, чтобы наш робот мог отправлять потоковое видео в реальном времени на веб-страницу.
Здесь вам нужно выполнить всего несколько команд, чтобы начать получать первый видеопоток по сети. Перед этим убедитесь, что ваш Raspberry Pi подключен к Интернету, используя локальную сеть или Wi-Fi, а затем выполните следующие действия:
Шаг 1. Сначала выполните следующую команду, чтобы обновить ОС Raspbian на Raspberry Pi:
sudo apt-get update
Шаг 2: Затем установите библиотеку Motion, используя следующую команду:
sudo apt-get install motion
Шаг 3: Теперь установите для Motion daemon значение yes, отредактировав файл: / etc / default / motion, чтобы он всегда работал. Отредактируйте этот файл, используя редактор nano с sudo, как показано ниже:
судо нано / и т.д. / по умолчанию / движение
Затем сохраните файл, нажав CTRL + X, затем Y и Enter.
Шаг 4: Теперь нам нужно установить разрешение для Целевого каталога (/ var / lib / motion /), в котором Motion сохраняет все видеозаписи и файлы изображений. Нам нужно установить «Движение» в качестве владельца этого каталога, выполнив следующую команду:
sudo chown движение: движение / var / lib / движение /
Это разрешение необходимо, иначе вы получите ошибку при проверке статуса службы движения.
Вы можете проверить статус службы с помощью этой команды: sudo service motion status
Шаг 5: Теперь мы почти закончили, нам нужно только изменить один параметр конфигурации в файле конфигурации движения (/etc/motion/motion.conf ), который отключен от stream_localhost. Мы должны отключить эту потоковую передачу с локального хоста, иначе мы не сможем получить доступ к видео-каналу в нашей сети, и он будет доступен только с самого Raspberry Pi. Для этого отредактируйте файл конфигурации движения с помощью редактора nano и выключите его, как показано ниже:
sudo nano /etc/motion/motion.conf
Теперь все готово для получения прямой трансляции с веб-камеры USB, подключенной к Pi. Просто запустите (или перезапустите) службу движения, используя команду ниже, и откройте IP-адрес Raspberry Pi с портом 8081 в своем браузере (например, 192.168.43.199:8081). В этом проекте мы встроили этот IP в наш HTML-код в теге img src .
sudo /etc/init.d/motion перезапуск
И вы увидите прямую трансляцию с вашей веб-камеры. Здесь мы использовали недорогую веб-камеру USB, которая без проблем работала с нашим Raspberry Pi, но вы также можете использовать камеру хорошего качества для лучшего разрешения. Как будет показано в браузере, вы можете использовать любое устройство для просмотра ленты, которая поддерживает веб-браузер, например мобильный телефон, планшет и т. Д.
При необходимости попробуйте перезагрузить Raspberry Pi для устранения неполадок:
перезагрузка sudo
Это все об использовании движения для нашего робота-наблюдателя, кроме этого, у него есть несколько параметров конфигурации, которые мы уже обсуждали в нашем предыдущем руководстве.
Примечание: если у вас модель Raspberry Pi ниже версии 3, вам может потребоваться ключ Wi-Fi для беспроводного подключения Raspberry Pi к маршрутизатору.
Настройка Flask в Raspberry Pi для управления роботом через веб-страницу:
Здесь мы создали веб-сервер с использованием Flask, который обеспечивает способ отправки команд с веб-страницы на Raspberry Pi для управления роботом по сети. Flask позволяет нам запускать наши скрипты Python через веб-страницу, и мы можем отправлять и получать данные от Raspberry Pi в веб-браузер и наоборот. Flask - это микрофреймворк для Python. Этот инструмент основан на Unicode, имеет встроенный сервер разработки и отладчик, интегрированную поддержку модульного тестирования, поддержку безопасных файлов cookie и простоту использования, что делает его полезным для любителей.
Установите пакет поддержки фляги в Raspberry Pi с помощью данной команды:
$ pip install Flask
Затем мы можем использовать Flask, просто импортировав его в нашу программу, как если бы мы импортировали следующие пакеты flask для этого проекта:
from flask import Flask from flask import Flask, render_template, request
Вы можете узнать больше о программировании с использованием Flask здесь, а также проверить наши предыдущие проекты, в которых мы использовали Flask для отправки сообщения с веб-страницы на Raspberry Pi и отправки значения веса в Raspberry Pi в смарт-контейнере.
HTML-код для веб-страницы:
Мы создали веб-страницу с использованием языка HTML для отображения управляющих ссылок (влево, вправо, вперед, назад) для перемещения робота из веб-браузера. Мы использовали скрипт jQuery для вызова функций в нашей программе Python. В коде Python есть пять функций для перемещения робота влево, вправо, вперед, назад и для его остановки. Полный код Python приведен в конце. Эти функции будут выполняться при нажатии на ссылку управления на веб-странице, и двигатели будут перемещаться в зависимости от нажатия ссылки. Здесь мы написали код таким образом, что робот будет двигаться в определенном направлении, щелкая и удерживая ссылку, и как только мы отпустим кнопку мыши, робот остановится. Ниже приведен HTML-код для веб-страницы, включая jQuery:
Здесь вы можете увидеть, что мы встроили IP-адрес, по которому транслируется видео, на веб-страницу с помощью тега img src . Измените IP-адрес в соответствии с вашим Raspberry Pi, но оставьте порт прежним.
Пользователь должен скопировать и вставить приведенный выше HTML-код в текстовый редактор (блокнот) и сохранить файл с расширением.HTML (robot.html). Затем поместите этот HTML-файл в папку / templates в соответствии с расположением вашего скрипта python. Это означает, что вам нужно создать папку с именем templates, в которую вы поместили файл кода Python для этого робота наблюдения Raspberry, а затем поместить файл robot.html в эту папку шаблонов. Этот шаг важен, иначе наш проект не будет работать. Вы можете напрямую открыть файл robot.html, дважды щелкнув по нему, чтобы увидеть, как будут выглядеть ваши ссылки управления. Далее проверьте весь процесс в демонстрационном видео. в конце. После того, как мы закончили программирование и все такое, мы можем просто запустить код Python в Raspberry Pi и открыть IP_address_of_your_Pi: 5010 в веб-браузере (например,
Вы можете проверить IP-адрес своего Raspberry Pi с помощью команды ifconfig :
ifconfig
Принципиальная схема и установка:
После тестирования потока видео в реальном времени и кода HTML нам нужно построить робота, используя самодельные или готовые шасси робота, колеса и гайки. Затем поместите на него блок питания для питания Raspberry pi, а затем поместите Raspberry Pi и веб-камеру над блоком питания и закрепите настройку с помощью ленты для виолончели или резиновых полос, подключите USB-камеру к Raspberry Pi.
В этом проекте IoT нам не нужно выполнять много подключений, нам нужно только подключить несколько проводов для микросхемы драйвера двигателя L293D и двигателей постоянного тока. Подключения показаны на принципиальной схеме ниже. Здесь мы использовали печатную плату общего назначения для установки микросхемы L293D, чтобы уменьшить пространство, но вы также можете использовать небольшую макетную плату для подключения двигателей постоянного тока к L293D.
Как работать:
Эксплуатация и работа с этим роботом-наблюдателем очень проста. Создайте файл python (с расширением.py) и скопируйте в него приведенный ниже код, затем сохраните его на своем Raspberry Pi. Затем поместите HTML-файл в папку шаблонов, как описано выше. Не забудьте изменить IP-адрес в файле HTML.
Затем запустите код Python, введя следующую команду:
python name_of_file.py
Затем откройте свой IP-адрес Raspberry Pi с портом 5010, например http://192.168.43.199:5010 (снова замените IP-адрес своим адресом). Теперь вы увидите веб-страницу с четырьмя ссылками на управление роботом и видео в реальном времени. Пользователь может управлять роботом, нажимая и удерживая ссылки. Если пользователь щелкнет и удержит ссылку, робот будет двигаться в соответствии с нажатой ссылкой, а когда пользователь отпустит ссылку, робот автоматически остановится.
Полный код Python приведен ниже, где мы написали различные функции для управления роботом при нажатии ссылок на веб-странице. Вы можете легко их понять, или, если вы новичок, ознакомьтесь с нашими предыдущими учебниками по Raspberry Pi. Также посетите наш раздел робототехники, чтобы узнать о более интересных и простых в сборке роботах.