Raspberry робот своими руками

Мобильный робот с камерой на Raspberry Pi

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

Наша плата выглядит так:

Данная версия платы оснащена процессором ARM11 фирмы Broadcom BCM2835[4] с тактовой частотой 700 МГц и модулем оперативной памяти на 256МБ/512МБ.

Raspberry Pi работает под управлением операционной системы Linux.
Мы, будем использовать плату версии «B» с установленной ОС Raspbian.

1. Сборка робота на базе гусеничной платформы

Raspberry Pi и камера будут установлены на гусеничную платформу. По сути это будет мобильная система видеонаблюдения.

Сама Raspberry Pi с драйвером моторов будет закреплена с помощью конструктора Lego, так как на данной плате отсутствуют необходимые крепежные элементы.

Электропитание платы и моторов раздельное. На моторы стоит 8 аккумуляторов по 1.2 вольта, на плату стоять 2 аккумулятора по 3.7 вольта. Все аккумуляторы включены последовательно. Моторы получают питание через драйвер моторов выполненный на L293D с помощью навесного монтажа.

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

Что умеет данная платформа делать:
1. Сам перемещаться по площади (квартире и тд) используя датчик Ultrasonic HC-SR04 для обьезда препядствий.
2. Снимать через определенное время фото (видео кадр) снимок и отправлять его на яндекс или гугл диск.
3. Сам подъезжать на базу для подзарядки используя ИК-локатор.
4. Возможность ручного управления, используя браузер и интернет.

Стабилизатор для питания самой платы raspberry.
На макетной плате был собран драйвер управления моторами на L293 и установлен гироскоп mpu-6050, подключенный по шине I2C.

Общаться с интернетом будет за счет вот такого WiFi адаптера Tp-Link.

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

Так же установлена камера для raspberry pi с CSI интерфейсом.

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

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

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

Была куплена в магазине вот такая макетная плата на которой все будет смонтировано. От деталей конструктора Lego для крепления Raspberry пришлось отказаться, так как не все умещается.

Прикрепив ее к шасси получаем.

Далее на штырьки так крепим саму Raspberry Pi.

Теперь на шасси.

Примерно вот так будет ездить платформа:

2. Общая схема подключения

3. Подключение моторов

Подробно разберём схему подключения моторов с помощь L293D.

Порты GPIO Raspberry Pi к драйверу моторов подключаем следующим образом:

Читайте также:  Как класть гибкую черепицу своими руками

Левый мотор:
L293 IN1 on GPIO 9
L293 IN2 on GPIO 10
L293 EN1 on GPIO 11

Правый мотор:
L293 IN3 on GPIO 23
L293 IN4 on GPIO 24
L293 EN2 on GPIO 25

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

Для того чтобы управлять данным шасси удалено, нужен белый IP адрес (постоянный), который можно сделать с помощью роутера находящегося в помещении.

Для удаленного управления и настройки нам понадобится программа PuTTY. Скачать ее можно на просторах интернета.

На Raspberry нужно включить SSH сервер, если вы этого не сделано то в консоли нужно набрать команду

В пункте SSH нажать на Enable. Далее перезагрузить плату, теперь мы можем удаленно подключится.

Устанавливаем на нашем компьютере PuTTY и настраиваем ее. Для этого в вкладке «Сеанс» вводим IP адрес Raspberry Pi. IP адрес можно посмотреть в настройках роутера. Номер порта оставляем 22, тип соединения SSH. Нажимаем «Сохранить» введя при этом название сеанса. Теперь настройки сохранены.

Далее выбираем пункт Соединение -> Данные и вводим наши имя и пароль для входа на Raspberry. Если не меняли, то имя и пароль те же: pi и raspberry. Вводим мы это для того, чтобы не вводить каждый раз имя и пароль при входе.

Теперь выбираем пункт SSH ->X11 и ставим галочку напротив «Включить переадресацию X11», а в строчке «Отображение дисплея Х» необходимо написать

Вернемся в вкладку «Сеанс» и сохраняем все настройки под тем именем, что уже записали. Всё, настройка завершена! Нажимаем «Соединить» и входим в командную строку Raspberry Pi.

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

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

и включаем поддержку камеры.

Перезагружаемся, снова запускаем PuTTY и соединяемся с raspberry. Далее устанавливаем приложения нужные для правильной работы mjpg-streamer:

Скачиваем исходники mjpg-streamer:

Потом распаковываем полученный архив:

Заходим в папку

Командой nano меняем файл start.sh

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

Выходим из редактора командой Ctrl+X, затем Enter (соглашаемся с изменением) и Y (да).

В папке mjpg-streamer-experimental запускаем наш скрипт:

Должно запуститься и в консоли будет много букв на камере загорится светодиод.
Команда Ctrl+C остановит скрипт и светодиод погаснет.

Открываем браузер, заходим по такой ссылке:

(где ip-address-raspberry – это IP нашей raspberry) и попадаем на вебсервер, нажимаем на Stream и видим:

Чтоб робот двигался необходимо установить веб-интерфейс, который будет управлять роботом. Устанавливаем. Для начала скачиваем WebIOPi

Заходим в папку

и запускаем файл установки командой

После установки, командой:

делаем автозапуск интерфейса с raspberry.

Как всегда открываем браузер, заходим по такой ссылке: ip-address-raspberry:8000 и получаем

Источник

Делаем своего первого робота на Raspberry Pi

Используем Raspberry Pi и Python для создания робота, который избегает препятствия и который использует ИК-модули для обнаружения объектов.

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

Читайте также:  Замена нижних бревен деревянного дома своими руками

Создавать роботов, избегающих препятствия, довольно распространенная практика и их довольно легко делать. После нашего урока вы сможете добавить функциональность избегания объектов вашему роботу, а также сможете просто попрактиковаться с Python и периферийными устройствами Raspberry Pi.

Комплектующие

Для создания нашего робота на плате Raspberry нам понадобится достаточное количество комплектующих:

  • Raspberry Pi B/B+ и основная периферия: S-карта, клавиатура, мышь, и т.д.
  • IR (ИК) модуль
  • Мотор-редуктор постоянного тока
  • L293D плата расширения
  • Шасси и колеса робота
  • Шасси
  • Макет
  • Двусторонний скотч
  • Перемычки
  • Батарея 9В и коннекторы
  • Кнопка
  • Резистор 220 Ом

Как работает робот?

Работа этого робота действительно проста. Вся система предотвращает столкновение с препятствиями благодаря встроенным датчикам. Этот робот использует два ИК-датчика, которые могут обнаруживать объекты в диапазоне 5–6 см. Этот датчик выдает цифровой НИЗКИЙ (0В) сигнал, когда объект находится в пределах этого диапазона, в противном случае выдает цифровой ВЫСОКИЙ (5В) сигнал.

Так как же работают эти ИК датчики? ИК означает инфракрасный, который представляет собой длину волны света, невидимого человеческому глазу. Эти модули состоят из пары ИК-светодиодов приемника и передатчика. Когда объект находится перед ИК-датчиком, поверхность объекта отражает часть ИК-света обратно в приемник. Таким образом, приемник затем выводит НИЗКИЙ сигнал, уведомляющий, что объект находится перед датчиком.

Эти датчики подключены к входным контактам GPIO Raspberry Pi. Затем «малина» с помощью скрипта python проверяет, какие выходные параметры у контактов GPIO, подключенных к ИК-датчикам. Если выход понижается, то он скрипт дает команду двигателям постоянного тока сначала двигаться в обратном направлении, а затем поворачиваться. Более того, этот робот изначально активируется, когда мы нажимаем кнопку, после чего Raspberry Pi дает команду двигателям постоянного тока двигаться вперед через плату драйвера L293D.

Подключение ИК-датчиков

Во-первых, вам нужно включить Raspberry Pi после подключения его к монитору, клавиатуре и т.п. Затем нам нужно проверить модули ИК-датчиков. Для этого подключите их к Raspberry Pi, как показано на схеме ниже.

Подайте питание на датчики, обеспечив 5В (+ контакт), GND (земля, — контакт) от Raspberry Pi. И подключите контакт B на датчиках к контактам GPIO Raspberry Pi — 3 и 16. Вы можете проверить расположение контактов GPO Raspberry Pi согласно распиновке выше. Мы используем конфигурацию GPIO.BOARD, которая означает, что контакты нумеруются в соответствии с их обычным порядком на плате (1,2,3, . ). Ознакомьтесь с конфигурацией контактов на датчиках и подключите всё соответствующе.

Далее вам нужно скопировать код и сохранить его как файл Python — irtest.py:

После сохранения, запускаем этот файл:

sudo python irtest.py

Вы заметите, что когда вы блокируете датчик рукой, на экране выводится следующие данные:

Соединение моторов с L293D

После тестирования ИК-датчиков необходимо подключить и проверить модуль L293D и двигатели. Для питания модуля L293D подключите контакты + и — на плате к 9-вольтовой батарее. Также подключите «-» платы к GND Raspberry Pi. Схема соединений ниже:

Далее вы должны предоставить входные данные для платы. Четыре выходных вывода GPIO от Raspberry Pi контролируют направление вращения двух двигателей. Две клеммы двигателей подключаются к четырем выходным клеммам платы. Двигатели питаются от 9В батареи. Логика управления двигателями Raspberry Pi ниже:

Читайте также:  Как сделать мини карниз своими руками
Вход A Вход B Состояние мотора
High (высокий) Low (низкий) Поворачивается по часовой стрелке
Low High Поворачивается против часовой стрелки
High High Происходит торможение
Low Low Происходит торможение

Таблица. L293D Raspberry Pi логика управления

Здесь HIGH означает сигнал 5 В или цифровой 1, а LOW — сигнал 0 В или цифровой 0. Например, GPIO.output (5,1) — эта команда отправляет сигнал HIGH (цифровой 1) на вывод 5 Raspberry Pi. Таким образом, направление каждого двигателя можно контролировать, записывая сигналы HIGH / LOW через два контакта GPIO от Raspberry Pi.

Финальная сборка

Затем нужно подключить кнопку к Raspberry Pi, как показано на схеме подключения выше. Эта кнопка используется для активации и деактивации робота. После настройки всех соединений робота прикрепите колеса. Используйте двустороннюю клейкую ленту, чтобы соединить детали на корпусе робота. У вас должно получиться примерно так:

Проверка двигателей

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

Убедитесь, что вы подали питание на плату драйвера (L293D) и подключили всё согласно схеме выше. После этого скопируйте приведенный выше код и сохраните его на вашем Raspberry Pi как файл Python — motor.py. Затем запустите его с помощью команды:

sudo python motor.py

Вы заметите, что оба двигателя сначала вращаются в одном направлении, затем через секунду вращаются в противоположном направлении. Этот процесс повторяется, пока вы не прервете его.

Загрузка кода для робота Raspberry Pi

Вы можете скачать или скопировать код ниже:

После завершения сборки всех комплектующих необходимо скачать или скопировать программу Python выше на Raspberry Pi. Эта программа называется robot.py. Выполняем её с помощью команды:

sudo python robot.py

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

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

Что дальше? Скопировав код на Raspberry Pi, вы можете сделать его по-настоящему беспроводным и автономным, используя батарею аккумулятора смартфона для питания и USB-адаптер Wi-Fi для связи с ним. Вы можете расширить дисплей своего ноутбука через VNC-сервер и кабель локальной сети. Или используйте SSH для удаленного подключения к вашему Pi из терминала без проводов. Посмотрите видео ниже, показывающее работу нашего робота в действии:

Источник

Оцените статью