Мобильная версия Форум Arduino Документация Гарантийные условия 0 0
UA RU
График работы магазина:
Пн-Пт: 8.00 - 19.00
Сб: 10.00 - 17.00
Вс: выходной
Каталог
Напиши статью и получи скидку!

Машинка на дистанционном управлении с Raspberry Pi

2021-04-12

Все статьи →

Машинка на дистанционном управлении с Raspberry Pi

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

Мозгом этих машин является Raspberry Pi, легкодоступная для освоения архитектура для экспериментов с практической робототехникой и программированием. Это обучение пошагово рассматривает построение подобной машинки. Она будет оснащена модулем камеры для дистанционного управления, GPS и компасом, таким образом машинка будет знать свое местоположение и курс (это, опять-таки, очень полезно в алгоритмах групповой робототехники - особенно для навигации). Следовательно, при большом количестве, машинки потенциально смогут коммуницировать друг с другом для выполнения групповых алгоритмов.

Этот проект очень весело выполнять! Есть много мелких деталей (что может привести к некоторым отклонениям), но разве это не весело? Мне по-настоящему нравится этот проект, потому что он охватывает широкое разнообразие концептов как в программном обеспечении (программирование на Python), так и в компьютерном оборудовании через Raspberry Pi, и, безусловно, связывает их.

Этот проект также довольно универсален. Вы можете использовать эти машинки для других задач, кроме групповой робототехники (хотя они настроены, чтобы работать хорошо и в таких проектах тоже). Он точно имеет немалый порог вхождения, что многому вас научит! Кроме того, эти навыки также будут полезными для подобных проектов.

Материалы:

Для машинки:

  • 1 мини-компьютер Raspberry Pi
    • Я рекомендую использовать Raspberry Pi с 8Гб, потому что это даст вам возможность для использования библиотеки OpenCV для распознавания объектов, что предоставит вашей машинке больше автономных возможностей в будущем (а также это сделает направление, в котором вы будете развивать проект в дальнейшем, более универсальным)
    • Вы можете также пользоваться Raspberry Pi Zero W
    • Убедитесь, что плата имеет встроенный беспроводной адаптер, что важно для дистанционного управления
  • 1 или 2 драйвера двигателей L298N
    • Каждый драйвер контролирует 2 двигателя
    • Так что если у вас будет 1 драйвер, вы будете управлять 2 двигателями (что позволит вращаться и двум другим колесам). Но, когда машина будет поворачивать, она будет вращаться вокруг внутреннего заднего колеса, что может сделать будущие расчеты более сложными
    • Если у вас будут 2 драйвера, у вас будет возможность управлять всеми 4 двигателями, так что машинка будет вращаться вокруг своего центра, так что это сделает всё проще.

Остальное:

Примечание: я рекомендую купить стартовый набор Raspberry Pi, потому что он обычно включает в себя радиатор, разъём GPIO, плату Raspberry Pi, карту microSD, адаптеры, много соединительных проводков и множество других мелких частей.

Шаг 1: Установить OS Images

Материалы: компьютер (Mac, Ubuntu 18.04 или Windows), карта microSD, SD адаптер

В основном, Raspberry Pi использует Raspbian OS, поэтому нам нужно установить образ ОС на карту microSD. Чтобы это сделать, вам понадобится SD адаптер, чтобы можно было вставить microSD в обычный SD порт компьютера/ноутбука (через который будет установлен образ). Затем microSD вставляется в Raspberry Pi.

Следуйте этой инструкции:

https://www.raspberrypi.org/documentation/insta...

Шаг 2: Настройка Raspberry Pi

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

Обратите внимание на рисунок, чтобы ознакомиться с рабочим столом Raspberry Pi. Вы увидите значок папки Manila, что эквивалентно Finder (Mac) или Windows Explorer. По сути, это визуальное представление ваших файлов, загрузок, каталогов и т. д. Для наших целей важно то, как вы будете управлять вашим кодом. Также вы увидите иконку черного экрана, что является окном терминала. Именно здесь вы будете писать код.

Откройте окно терминала (иконка должна быть в верхнем левом углу экрана).

  • Выполните команду "sudo raspi-config", чтобы увидеть меню, как показано выше
  • Включите P6 serial port
  • Включите P5 I2C
  • Если вам нужно больше подсказок:

https://www.raspberrypi.org/documentation/configuration/raspi-config.md

Здесь у вас есть два варианта:

1. Продолжить пользоваться монитором

  • Каждый раз, когда вы захотите работать на Raspberry Pi, просто сделайте всё вышеописанное
  • Подключите периферийные устройства и работайте непосредственно на Raspberry Pi

2. Пользоваться Pi без графического интерфейса (используя SSH)

  • По сути, вы можете подключиться к Raspberry Pi дистанционно с другой машины, чтобы не подключать каждый раз периферийные устройства
  • Чтобы сделать это, вы ДОЛЖНЫ включить SSH, следуя инструкции по ссылке выше

Создайте репозиторий для проекта. Затем, в окне терминала, создайте новый каталог для проекта на Pi. Вы можете редактировать свои файлы в окне терминала (vi), если так удобнее, или используя графический интерфейс.

Или воспользуйтесь Google.

Шаг 3: Предварительная подготовка

Если вы хотите узнать больше о том, как всё это работает (рекомендую), нужно немного почитать (в интернете есть много источников и видео!). Но, вот краткий обзор того, что вам нужно знать, если вы только собираетесь начать.

  • Raspberry Pi-одноплатный компьютер. Нужно знать, где находятся эти вещи (изображение выше):
    • Слот для MicroSD
    • Порт Mini HDMI 
    • Порт Micro USB 
    • Порт питания и светодиод, указывающий на то, что Raspberry Pi обеспечивается энергией
    • Разъём камеры
    • Процессор (и радиатор, если есть)
    • 40-пин кабель и GPIO пины
    • Знать SDA / SCL пины, MOSI / MISO пины и TX / RX пины
  • Коммуникационные протоколы:
    • UART: универсальный асинхронный прием и передача
    • I2C: схема внутренней связи
    • SPI: последовательный периферийный интерфейс


Шаг 4: Сборка шасси

У вас должно быть шасси. Это базовая рама автомобиля. Соберите шасси так, как указано в инструкции к нему.

Если вы купили тот, на который я оставлял ссылку:

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

Затем, используя гайки и болты, что входили в комплект, а также отвертку, соберите детали, двигатели и колеса таким образом, чтобы они соответствовали изображению выше (это касается нижней части автомобиля, верхняя должна быть пустой):

Примечание: убедитесь, что ориентация двигателей правильная!

Теперь, возьмите и спаяйте соединительные проводки

Как только вы закончите сборку, основа машинки будет готова.

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

Шаг 5: Контроллеры двигателей

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

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

Вот информация, чтобы понять, как работают эти модули:

Я бы порекомендовал ознакомиться с техническими характеристиками.

Воспользуйтесь предусмотренными соединительными кабелями, чтобы контроллеры двигателей работали. Опять же, использование макетной платы для тренировки может помочь. Здесь у вас есть выбор: я рекомендую использовать 12В источник питания для драйверов и 5В источник для Raspberry Pi. Но вы можете использовать Raspberry Pi для питания драйверов моторов тоже. Существует перемычка, что переключает 12В и 5В - вы должны прочитать характеристики модуля перед тем, как делать подключение.

Шаг 6: Модуль камеры


Если вы используете плату Pi с ограниченной оперативной памятью, она будет поддерживать только стандартный модуль камеры Raspberry Pi. Если вы приобрели Raspberry Pi 4 с большей RAM (где-то 8 Гб), вы можете попробовать имплементировать OpenCV камеру. В интернете есть информация на этот счет.

Сейчас вы можете работать с модулем камеры, этого будет достаточно.

Информация:

Насчёт кода, можете выполнить следующую команду:

git clone https://github.com/miguelgrinberg/flask-video-streaming.git

Шаг 7: GPS и компас


Воспользуйтесь следующими ресурсами чтобы наладить GPS и компас. Распиновка также на диаграмме выше.

Модуль GPS, на который я оставлял ссылку, имеет также встроенный компас.

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

https://github.com/ozzmaker/BerryIMU.git

Другой пример формата NMEA (синтаксический анализ для данных координат):

http://navspark.mybigcommerce.com/content/NMEA_Format_v0.1.pdf

Шаг 8: Отображение данных в веб-интерфейсе с помощью Flask

Это позволит вам транслировать данные GPS и компаса, а также видео, на веб-сервер.

Мы будем пользоваться Flask, веб-платформой, которая поможет вам построить веб-приложение


Шаг 9: демонстрация и дальнейшие шаги

Поздравляю! Вы построили машинку, которая может стать основой для множества проектов.

Выше есть видео полностью рабочего прототипа. Там я запрограммировал машинку ездить по квадрату (я начинаю исследовать групповой аспект проекта несколько больше). Вы можете также видеть, как машинка начинает поворачивать на 90 градусов. Мне пришлось отредактировать некоторые части, потому что выполнение заняло время (~5 минут). Я предполагаю, что это из-за того, что моторчики не очень точны, и пока направление движения машинки не будет точно в диапазоне градусов, она будет продолжать поворачивать, прежде чем двигаться вперед. Так или иначе, на машинке очень весело кататься, особенно с видео!

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

https://www.hindawi.com/journals/isrn/2013/608164/ (особенно части, объясняющие концепт и цель)

Эти инструкции были довольно высокоуровневыми,  потому что большая часть веселья в построении, пробах и ошибках, и конечном успехе! Надеюсь, вам понравился процесс сборки. Чтобы управлять автомобилем, вы можете использовать клавиши со стрелками. Откройте новую вкладку и перейдите на IP-адрес, чтобы увидеть данные GPS и компаса, а также кадры с камеры.

Для любой информации или предложений, обращайтесь ко мне
riajain3878@gmail.com

Ваша оценка статьи:

Отлично
Хорошо
Удовлетворительно
Плохо
Очень плохо

Общая оценка:

Оценка "Машинка на дистанционном управлении с Raspberry Pi"
5 из 5
сделана на основе 1 оценки 1 клиентских отзыва.

Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Андрій
15.04.2021 12:52:45
Цікаво, але детальний код прошивки не завадив би
оплата картами Visa и MasterCard