+7-960-0655211 (Билайн)
+7-987-4207734 (МТС)

интернет-магазин
доставка по России и СНГ
работаем с 2010 года

Колёсная платформа с камерой и управлением по Веб на Raspberry Pi

01.jpg

Используемые компоненты данной телеуправляемой машины с камерой это Raspberry Pi, USB веб-камера, шасси с двумя мотор-редукторами, драйвер моторов l293d, power bank, макетная плата и соединительные провода. В третьей Raspberry уже встроен WiFi, если у Вас вторая версия, дополнительно понадобиться USB-WiFi.
С установленной сверху веб-камеры мы будем получать видео, так же по сети будет осуществляться и управление. Интерфейс управления реализован с использованием веб-страницы. Это даёт возможность управлять машиной из локальной сети или из интернета с компьютера, смартфона или планшета.
Веб-страница сделана на HTML, в ней отображается видео с камеры и есть ссылки "влево", "вправо", "вперед", "назад", щелкая по которой мы можем перемещать робота в нужном направлении. Для получения видео с веб-камеры используется Motion, а Flask для отправки команд с веб-страницы в Raspberry Pi с помощью Python.
Установка и настройка Motion рассмотрена в статье "Система видеонаблюдения с функцией распознавания движения на Raspberry Pi" (http://www.robototehnika.ru/content/article/sistema-videonablyudeniya-s-funktsiey-raspoznavaniya-dvi.... Так как видео будет передаваться по сети, в конфигурационном файле Motion (/etc/motion/motion.conf) нужно отключить потоковую передачу для localhost:

stream_localhost off

02.gif

После внесения изменений в файл настроек запустите службу Motion (если она ещё не была запущена) командой:

sudo /etc/init.d/motion start

или перезапустите командой:

sudo /etc/init.d/motion restart

если она уже была запущена.
Для проверки откройте IP-адрес вашего Raspberry Pi с портом 8081 в своем браузере (например, 192.168.1.6:8081). Узнать адрес можно командой ifconfig.

03.jpg

Если для проверки подключены по Ethernet, смотрите адрес для интерфейса eth0. Если подключены через роутер по Wi-Fi, смотрите адрес для интерфейса wlan0.
Flask - это фреймворк для создания веб-приложений на языке программирования Python, который позволяет отправлять команды с веб-страницы в Raspberry Pi для управления роботом по сети. Так же он позволяет отправлять данные из Raspberry Pi на страницу в веб-браузере и наоборот, со страницы в Raspberry Pi.
Для установки Flask нужен pip, он устанавливается командой:

sudo apt-get install python-pip

Когда pip установлен, им можно установить Flask следующей командой:

sudo pip install flask

Веб-страница создана на HTML, на ней есть поле для отображения видео и четыре ссылки (влево, вправо, вперед, назад) для управления перемещением робота из веб-браузера.

Для вызова функций программы на Python, в HTML используется скрипт jQuery. В коде Python есть пять функций для перемещения робота влево, вправо, вперед, назад и для его остановки. Эти функции будут выполняться при нажатии на ссылки управления на веб-странице, и двигатели будут двигаться в зависимости от нажимаемой ссылки. Нажали и пока удерживаете, робот будет двигаться в определенном направлении. Как только кнопка мыши будет отпущена, робот остановится.

На Raspberry Pi загрузить код можно в браузере по адресу https://github.com/Swarg64/rpi_web_cam_car или в консоли, используя Git. Если Git не установлен, его можно установить командой:

sudo apt-get install git

Для копирования репозитория в консоли выполните команду:

git clone https://github.com/Swarg64/rpi_web_cam_car.git

Будет скачано два файла - "robot.py" и в папке "templates" файл "robot.html". Открыв в текстовом редакторе файл "robot.html", найдите строчку

<img src = "http://192.168.1.6:8081" />

В ней задаётся адрес, с которого берётся видео. Измените 192.168.1.6 на адрес Вашей Raspberry Pi.

Что бы запустить код на Python, в консоли введите команду:

sudo python robot.py

Затем в браузере откройте IP-адрес Raspberry Pi с портом 5010, например http://192.168.1.6:5010 (замените 192.168.1.6 на IP-адрес Вашей Raspberry Pi). Страница будет выглядеть примерно так:

04.jpg

Схема подключения очень простая:

05.jpg
06.jpg

Для сборки понадобиться макетная плата и несколько проводов.

07.jpg

08.jpg



Автор: Saddam
Адаптация и перевод для RobotoTehnika.ru: Swarg