Машинка на радиоуправлении на ардуино: Машинка на Arduino, управляемая Android-устройством по Bluetooth, — полный цикл (часть 1) / Хабр

Содержание

Экскаватор на радиоуправлении на ардуино

На основе Ардуино можно сделать много интересных вещей, пользуясь возможностю подключения к Ардуино радиомодуля многие делают радиоуправляемые игрушки (и не только игрушки) например машинки (например такие - машинка 1, машинка 2, машинка управляемая со смартфона, радиоуправляемый аэромобиль). Для обычной машинки достаточно сделать дистанционное управление одним двигателем и одним сервомотором но Ардуино предоставляет гораздо большие возможности т.е. на основе Ардуино можно сделать гораздо более сложные и интересные устройства. Например можно сделать экскаватор. Можно например "руку" экскаватора сделать на 4х сервомоторах а для перемещения его в пространстве использовать 2 моторредуктора. Сделать систему радиоуправления на Ардуино не сложно. О том как это сделать есть статья http://electe.blogspot.ru/2017/12/blog-post.html используя скетчи от туда, по аналогии можно сделать радиоуправление для экскаватора.  Для управления сервомоторами можно использовать свободные цифровые пины Ардуино или же аналоговые (их также можно использовать как цифровые). Для аналоговых нужно просто указывать номер в порядке который начинается с числа которое на 1 больше самого большого числа цифрового пина. Для управления двигателями также можно использовать 4 свободных цифровых и/или аналоговых пина. Электрическая схема экскаватора м.б. например такой:

Рисунок 1 - Электрическая схема экскаватора

Отдельные питания для ардуины, радиомодуля и силовой части нужны для нормальной ардуины в связи с радиомодулем. Для радиомодуля требуется меньшее напряжения питания если ардуино работает на частоте 16МГц т.к. на такой частоте напряжение не д.б. слишком низким а радиомодулю нужно напряжение около 3 с лишним вольт но т.к. его пины толерантны к более высокому напряжению чем его напряжение питания то такое соединение ардуины и радиомодуля можно совершить. Ещё этот радиомодуль в пике потребляет большой ток и при использовании общего с ардуиной стабилизатора в момент пика будет просадка напряжения и сбой в работе, также в момент пуска двигателей и сервомоторов просадка напряжения вполне возможна. Ардуино и радиомодуль можно питать от линейных стабилизаторов стабилизирующих напряжение путём изменения своего активного сопротивления а для питания силовой части это крайне не желательно т.к. при этом будет много энергии расходоваться впустую и лучше для этого использовать импульсный DC-DC преобразователь. 

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

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

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

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

>>>ПЕРЕЙТИ НА ОФИЦИАЛЬНЫЙ САЙТ >>>

Что такое как зарядить аккумулятор машинки на радиоуправлении?

Машинка в техническом исполнении действительно полный фарш, ездит по потолку и стенам! в темноте шикарно смотрится.

Эффект от применения как зарядить аккумулятор машинки на радиоуправлении

Мы с мужем купили такую машинку сыну на День рождения. Сыну очень понравился подарок. Машинка хоть и небольшая, всего 13,5 см в длину, но очень интересные выделывает трюки — по стенам ездит, и даже по потолку, ярко светит фарами, быстро разгонятся и разворачивается. Аккумулятор держит заряд достаточно долго, быстро заряжается, в машинке даже есть режим экономии заряда — можно играть как с обычной машинкой.

Мнение специалиста

Антигравитационная установка и гибкий подвес позволяют игрушке удерживаться на весу. Она буквально «прилипает» к любой ровной поверхности и не теряет своих управленческих качеств. Устройство развивает скорость до 7км/ч и легко разворачивается вокруг своей оси. Вертикальная езда по стенам и потолку вызывает восторг у детей, а перезаряжаемый аккумулятор не прерывает игру надолго.

Как заказать

Для того чтобы оформить заказ как зарядить аккумулятор машинки на радиоуправлении необходимо оставить свои контактные данные на сайте. В течение 15 минут оператор свяжется с вами. Уточнит у вас все детали и мы отправим ваш заказ. Через 3-10 дней вы получите посылку и оплатите её при получении.

Отзывы покупателей:

Алена

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

Катюша

Сын увидел эту антигравитационную машинку Wall Racer у друга. Естественно, нам тоже она срочно понадобилась, но я не жалею, что купили. Это действительно увлекательная и очень необычная игрушка. Ездит по любым вертикальным поверхностям, сделана из качественных и прочных материалов, не царапает мебель. Быстро научились управлять пультом, нравится, что фары зажигаются по направлению движения.

Наша машина практически не убиваемая. Причём играет не только сын, а практически все приятели по подъезду. Да и нам прикольно, особенно в темноте, когда машина светит фарами и выписывает зигзаги и трюки по потолку и стенам. Сын доволен и просто счастлив, значит вырастет и будет что вспомнить из детства. По цене нормально. Где купить как зарядить аккумулятор машинки на радиоуправлении? Антигравитационная установка и гибкий подвес позволяют игрушке удерживаться на весу. Она буквально «прилипает» к любой ровной поверхности и не теряет своих управленческих качеств. Устройство развивает скорость до 7км/ч и легко разворачивается вокруг своей оси. Вертикальная езда по стенам и потолку вызывает восторг у детей, а перезаряжаемый аккумулятор не прерывает игру надолго.

В данной статье мы описали основные правила зарядки радиоуправляемых машин. . Перед тем как заряжать машинку на пульте управления, неплохо было бы разобраться в том, какой аккумулятор в Вашей модели стоит и как с ним обращаться. Просто потому что неправильная эксплуатация – как. Сколько заряжать аккумулятор радиоуправляемой машинки? 20.12.2018. Автомобили и другие модели на радиоуправлении оснащаются аккумуляторами различных типов, размеров и массы, в мягком и жестом корпусе. Простейшие устройства для зарядки моделей на радиоуправлении (от обычных игрушек до сложных в техническом . Сколько времени заряжать аккумулятор. Для расчета времени зарядки разделите значение емкости аккумулятора (мАч/ mAh) на силу тока используемого ЗУ. Например, акум емкостью 2000. Нашел радиоуправляемую машинку а как зарядить не знаю помогите пж. . Если нет специального зарядного, можно разделить элементы батареи и зарядить зарядным для пальчиковых или мизинчиковых аккумуляторов. Здравствуйте!!! Имею вот такую машину на ридиоуправлении: В ней установлен съемный аккумулятор с вот такими параметрами: После . Зарядные устройства и аккумуляторы. Проблема С Аккумулятором Машины На Радиоуправлении. Войдите, чтобы подписаться. Подписчики 0. Проблема С. Как правильно заряжать машину на радиоуправлении? В комплект большинства машинок на радиоуправлении входят аккумулятор и зарядное устройство. В некоторых моделях зарядку нужно покупать отдельно. Суть поста вкратце: заряжаемые аккумуляторы вместо батареек. . Трех батареек АА нам обычно хватает на 2-3 дня. Спустя 1-2 часа прилично падает мощность и весь драйв машинки пропадает. Для переделки радиоуправляемой машинки нужны аккумуляторы 18650 и плата контроллера заряда. Эта плата не только контролирует процедуру заряда, но и следит разрядом элементов. В общем, обеспечивает нормальную работу даже незащищенных Li-ion аккумуляторов. Цена контроллера заряда. Реализация зарядки машинки получилась такая же, как и в прошлом варианте. Для зарядки сдвигаем дверь и подключаем, ничего разбирать не нужно: Теперь . Вот на этом блоке питания и ограничиваете ток заряда (как в паспорте на аккумуляторы). Я для зарядки использую вот этот преобразователь. Купили детям машинки на радиоуправлении. В комплекте аккумулятор с зарядкой. Подсоединяются друг к другу клеммой. Как узнать сколько часов он заряжается? По картинке-инструкции ничего не поняли. Всем известны детские радиоуправляемые машинки, и играть в них весьма весело, как детям, так и взрослым. . Для реализации задуманного понадобятся следующие компоненты: - Аккумуляторы – покупались в местном вейп-шопе, обычные, формата 18650. Заказывать аккумуляторы из Китая я бы не. Простейшие устройства для зарядки моделей на радиоуправлении (от обычных игрушек до сложных в техническом плане . Аккумулятор на нем заряжен заводской зарядкой процентов на 20-30. Если вы приобрели машинку зимой, а кататься на ней ребенок будет только весной, то с аккумулятором ничего.
http://lubimovka.sevsky.net/userfiles/luchshaia_mashinka_na_radioupravlenii_s_aliekspress599.xml
http://graczeonline.pl/userfiles/trix_trux_kak_sobrat_video685.xml
http://www.marcinblaszkowski.leszno.eu/userfiles/mashinka_perevertysh_twist_climbing549.xml
https://psseraciborz.pis.gov.pl/plikijednostki/wssekatowice/psseraciborz/userfiles/benzo_mashinki_na_pulte_upravleniia_kupit458.xml
http://www.erloeserkirche-rodenkirchen.de/userfiles/kakaia_samaia_bystraia_mashinka_na_pulte_upravleniia509.xml
Мы с мужем купили такую машинку сыну на День рождения. Сыну очень понравился подарок. Машинка хоть и небольшая, всего 13,5 см в длину, но очень интересные выделывает трюки — по стенам ездит, и даже по потолку, ярко светит фарами, быстро разгонятся и разворачивается. Аккумулятор держит заряд достаточно долго, быстро заряжается, в машинке даже есть режим экономии заряда — можно играть как с обычной машинкой.
как зарядить аккумулятор машинки на радиоуправлении
Машинка в техническом исполнении действительно полный фарш, ездит по потолку и стенам! в темноте шикарно смотрится.
В этом материале предлагаем узнать, как можно сделать радиоуправляемую машинку в домашних условиях. Начать процесс изготовления советуем с просмотра авторского видеоматериала Для изготовления. Схема подключения пульта управления на Arduino + NRF24L01 + гироскоп GY-521 MPU-6050. Машинка на радиоуправлении. Для того, чтобы сделать модель машины на радиоуправлении (RC-машина) с использованием Ардуино и с возможностью контроля через смартфон, нам. Arduino-машинка. Для сборки машинки на Ардуино нужны . Короче смотри. Чтобы ардуина не грелась делаешь так: к ардуино подключаешь питание(акумы, батарейки , но с юсб кабелем не пройдет такое), серву подключаешь питанием. Автор рассказывает как из готовых модулей сделать машинку на . Машинка на Ардуино: как сделать радиоуправление своими руками. Робот – машинка на Ардуино становятся одним из самым популярных инженерных проектов в школьной робототехнике. Именно с таких устройств, автономных или управляемых со смартфона и bluetooth, начинается путь в. Машинка получилась очень резвая и быстрая. . ARDUINO Машинка на nrf24l01. Автор темы MrDjeb. Дата начала 31.07.2018. Собрал вот такого монстрика на радиоуправлении, р/у собрано на ардуино и модулях nrf24l01. Схема и скетч: yadi.sk/d/hsO-yK_i33cEG6 Моделька построена на базе китайского конструктора. В видео старался подробней. имеется arduino uno + Motor Shield (2 канала, 2 А) внутренности от Радиоуправляемая модель "Гоночная машина Func MC-09" ссылка на неё. Есть радиоуправляемая машинка (на вроде этой но в кузове Toyota Land Cruiser), требуется сделать управление этой игрушкой с планшета или с телефона на Android. Заинтересовала меня тема с Arduino. Откопал дома сломанную машинку на радиоуправлении. . Ардуина - это только мозги, причем довольно хилые. Вопрос совместимости моторчика с ардуиной особого смысла не несет.

Машинка на arduino и Bluetooth Android

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

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

Итак, давайте разберем на живом примере как сделать своими руками дистанционно управляемую по bluetooth c android планшета или смартфона машинку. Статья, как ни странно, рассчитана на начальный уровень знаний. Здесь нет руководства по редактированию кода в Arduino IDE, да и мы использовать его будем только для заливки нашего кода. А составлять алгоритм управления будем в программе под названием FLProg. Программа управления со смартфона — HmiKaskada_free. Но сначала о железе, которое нам понадобится.

Машинка на arduino и Bluetooth — аппаратная часть.

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

Для управления электродвигателями нашего будущего творения понадобится Н-мост на микросхеме L298N Ссылка на Али, я брал у именно этот. Картинка кликабельна.

Н-мост для arduino

Может управлять двумя двигателями в диапазоне напряжений 5 — 35 вольт. Поддерживает ШИМ, то есть можно регулировать обороты двигателей. На плате есть вывод стабилизированного напряжения 5 вольт для питания ардуино.

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

Схема подключения L298N а arduino

Следующей неотъемлемой частью электронной начинки нашего проекта является bluetooth модуль HC-06. Самый обычный модуль для ардуино, настолько популярен что в дополнительном описании не нуждается.

HC-06 bluetooth for arduino

Основным элементом и мозгом в моем случае выступает arduino nano, тут даже фото выкладывать не буду ибо все о ней знают и умеют с ней работать. Кстати подойдет любая плата ардуино, лишь бы в корпус поместилась  😀

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

Машинка на arduino и Bluetooth — составление скетча.

Повторюсь — никакого копания в коде тут не будет. Мы будем использовать популярную программу FLProg. Скачать ее последнюю версию можно на официальном сайте. Интерфейс проги прост и незатейлив, но имеется огромный функционал и поддержка практически всех популярных модулей. Как ей пользоваться писать не буду так как это потянет на пару статей. Скажу только что я не встречал более удобной и доступной программы для составления скетчей для arduino и ее клонов. Скрин интерфейса:

Интерфейс FLProg

На сайте полно текстовых и видео мануалов, думаю разберетесь.

Мой проект для дистанционно-управляемой машины можно скачать с яндекс-диска.

Интерфейс управления на планшете android.

По многочисленным просьбам написал подробную инструкцию по разработке интерфейса управления на базе HmiKaskada android в статье Arduino танк с bluetooth управлением. Ссылка кликабельна.

Для устройств под управлением android существует программа HmiKaskada (ссылка на ЯндексДиск). Изначально она разрабатывалась как альтернатива дорогим промышленным HMI панелям. Но пытливые умы быстро смекнули что управлять она может чем угодно. В нашем случае машинкой. Поддерживает беспроводные интерфейсы Wi-Fi и Bluetooth, кроме того можно девайс подключить напрямую через USB.

Есть платная и бесплатная версии программы. У меня есть обе но я принципиально сделал проект в бесплатной версии что бы показать вам и в очередной раз убедиться в абсолютной работоспособности free версии. Основное отличие free от PRO версий это работа только по блютуз.

На форуме FLProg есть гигантская ветка по вопросу совместимости с КаСкадой, да и разработчик активен и общителен. Скрин панели управления выкладывать не вижу смысла — он есть в видеоролике.

Можете скачать мой проект управления машинкой для КаСкады

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

Автономный робот на основе Arduino с возможностью дистанционного управления

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

Шаг 1: Список компонентов и стоимость проекта

1. Игрушечная Машинка с радиоуправлением (radio controlled).

Стоит эта штука около 20 баксов, если у вас есть возможность потратить больше, то можете использовать и получше.

2. Arduino Uno микроконтроллер — 25 долларов

3. Motor shield для контроля электромоторов — 20 долларов

4. GPS для навигации. Adafruit Ultimate GPS Shield — 50 долларов

5. Магнитометр в качестве компаса для навигации. Adafruit HMC5883 Magnetometer — 10 долларов

6. Ультразвуковой датчик расстояния, чтобы избегать препятствия. HC-SR04 — 6 долларов

7. ЖК-дисплей для отображения состояния транспортного средства и информации. LCD Display Blue 1602 IIC, I2C TWI — 6 долларов (можете использовать другой)

8. Инфракрасный датчик и пульт.

9. Arduino sketch (программа C++).

10. Тонкая древесная плита в качестве монтажной платформы.

11. Макетные платы. Одна длинная и узкая, а другая маленькая, чтобы отдельно установить на ней магнитометр подальше от других элементов.

12. Перемычки.

13. Набор для монтажа ультразвукового датчика — 12 долларов 

14. Паяльник и припой.

15. Дрель.

Итак, в общем на всё ушло около 150 долларов, это при условии, если закупать все эти компоненты, поскольку возможно у вас уже что то имеется из этого.

Шаг 2: Шасси и монтаж платформы

Радиоуправление изъяли из ненужной игрушки, которая стоила 15 баксов.

Машинка здесь с двумя двигателями. С помощью одного движка пультом контролируется скорость движения робота, а с помощью другого контролируется рулевое управления.

Использовалась тонкая доска в качестве монтажной поверхности, на которой были прикреплены макетные платы, Arduino, ЖК и т.д. Батарейки размещены под доской и провода пропущены через просверленные отверстия.

Шаг 3: Программа

Arduino управляется через программу С ++.

Исходный код

RC_Car_Test_2014_07_20_001.ino

Шаг 4: ЖК-дисплей

Во время работы экран отображает следующую информацию:
Ряд 1:

1. TH — Задача, курс к текущей маршрутной точки

2. CH — Текущее направление робота

Ряд 2:

3. Err — Направление по компасу, показывает в каком направлении движется робот (влево или вправо)

4. Dist — Фокусное расстояние (в метрах) до текущей маршрутной точки

Ряд 3:

5. SNR — Sonar расстояние, то есть расстояние до любых объектов в передней части робота

6. Spd — Скорость робота

Ряд 4:

7. Mem — Память (в байтах). В памяти Arduino имеется 2 КБ

8. WPT n OF x — Показывает, где робот находится в списке маршрутных точек

Шаг 5: Избежать столкновения с объектами

Чтобы робот избегал препятствий, здесь использовался ультразвуковой датчик » Ping». Было решено совместить его с библиотекой Arduino NewPing, поскольку она лучше, чем простая PIng библиотека.

Библиотека была взята отсюда: https://github.com/fmbfla/Arduino/tree/master/NewPing

Датчик был установлен на бампере робота.

Если объект обнаружен:
  1. Робот замедляется
  2. Если робот движется прямо (то есть не сворачивает), то помогите роботу, поверните его по направлению к вашей точке маршрута (бывают сбои иногда).
  3. Если робот столкнулся с объектом, то сдайте назад, чтобы потом робот снова продолжил движение.
  4. Если робот сбился с маршрутной точки, то не страшно, точки сохраняются и можно снова повторить процесс.
    Шаг 6: Управление маршрутными точками

    Для навигации курса, нам нужно управление различными точками.  Был создан простой WaypointClass, который содержит значения долготы и широты. Затем создали WaypointClass для хранения маршрутных точек, и переменную currentWaypoint, чтобы отслеживать текущие маршрутные точки.

    waypointClass.h

    Шаг 7: GPS-навигация

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

    Для GPS использовалась Adafruit Ultimate GPS Shield.

    Использовалась библиотека: https://github.com/adafruit/Adafruit-GPS-Library

    Образец кода: https://github.com/adafruit/Adafruit-GPS-Library/tree/master/examples/parsing

    Для расчёта расстояния до точки: https://github.com/mikalhart/TinyGPS

    Шаг 8: Компас навигации

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

    Использовался цифровой магнитометр (который предоставлен коде как «компас»). «Компас» выполняет быстрое считывание с текущего направления транспорта. С помощью GPS вычисляется курс и куда поворачивать (влево или вправо).

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

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

    Шаг 9: Мотор и управление скоростью

    Скорость автомобиля контролируется с помощью пульсовой волны модуляции (ШИМ), предоставленной Adafruit Motor Shield.

    Программа устанавливает частоту в зависимости от следующего:
    • Если робот едет прямо (не поворачивая) и объекты не обнаружены, движение быстрое.
    • Если робот едет прямо и обнаруживает объект, движение замедляется.

    В приведенном выше фото, вы можете увидеть: (1) на задних колёсах приводной двигатель и (2) на передних колёсах рулевой двигатель.

    Шаг 10: Инфракрасный датчик и пульт управления

    Был добавлен инфракрасный датчик (с соответствующим дистанционным пультом), чтобы обеспечить удобную функциональность.

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

    Шаг 11: Возможные улучшения проекта
    Cписок потенциальных усовершенствований
    • Лучше использовать игрушку джип, поскольку у него больше колёса по размеру и более мощные моторы, он гораздо легче едет по траве и грязи.
    • Можно добавить сервопривод.
    • Добавить более лучший переключатель.
    • Добавить камеру для фотоснимков или видео.
    • Добавить радиопередатчик.
    Шаг 12: Заключительное слово

    Получилась очень интересная штука. Надеемся данный проект поможет вам познать больше о робототехнике. Удачи вам в ваших проектах.

    До свидания.

Автомобиль с видеокамерой. Управление через WiFi

Это небольшой рассказ о том, как построить робота в виде игрушечного автомобильчика с видео камерой, которым можно управлять с помощью компьютера или смартфона на ОС Android через WiFi. Устройство не имеет никакой автономности в смысле своего поведения (типа распознавания чего-либо), управление - только от человека, поэтому «робот» - это не совсем подходящее слово в названии.
Началось все с того, что идея управления игрушечными устройствами от первого лица (т.н. FPV) мне показалась чрезвычайно интересной с точки зрения собственно процесса. Ведь мы можем таким образом реализовать свое присутствие, не в виртуальном мире, а в реальном.
Проще и быстрее всего применить эту идею на игрушечных или модельных автомобилях. Текущие технологии должны давать такую возможность промышленности и предложить массу подобных вещей. Однако это предложение оказалось достаточно дорогим по сравнению тем что можно сделать самому. 
Так как это мой первый проект, я ни программировать, ни даже паять нормально не умел, и я решил сначала поискать в интернете единомышленников и их варианты решения данной задачи. 
Начав изучение вариантов, как можно осуществить эту идею, я нашел очень подробное описание подобного проекта здесь. A его автор с радостью помог мне разобраться в проблемах, возникших при создании робота.
Так я впервые и узнал что такое …duino. Так как это был уже готовый вариант микроконтроллера, где не нужно было паять обвязку к нему, я выбрал именно его. Также очень понравилось присутствие бутлоадера, позволяющего прошивать микроконтроллер без программаторов.

Для реализации данного проекта понадобится:

  • Микроконтроллер Arduino (любой: nano, uno, mega)
  • Аккумулятор 9,6вольт
  • Китайская машинка на радиоуправлении
  • Роутер dir320 (или любой другой поддерживающий OPEN-WRT прошивку)
  • Вебкамера Logitech c310 или любая другая с UVC потоком


Крупноблочная схема реализации проекта на базе WiFi роутера 

Программ пять: на PC, на Android, на роутере (сервер управления и видеопоток), и в микропроцессоре.
Схема работы: соединяем настольный компьютер (ноутбук, далее - PC) с роутером по WiFi. На роутере при его включении автоматически загружаются 2е программы:
1) сервер. Эта программа открывает сокет (соединение) на определенном порту и ждет, когда по этому порту с ней соединится клиент (любая программа, которая обратится в этот порт и также, особым образом скажет серверу, что она готова работать через открытый сокет). Далее, после установки соединения, все что придет от клиента, будет перенаправлено по определенному пути, для нас это COM-порт, на этом порту подключен микропроцессор. И наоборот, все что придет со стороны COM-порта, будет переслано клиенту.
2) программа обработки видео, захватывает его с usb камеры и шлет на определенный порт. Для его просмотра нужно всего лишь иметь соединение с роутером на этом порту.
После того, как между компьютером и роутером установлено WiFi-соединение, запускаем на PC программу для управления роботом (тот самый клиент), эта программа соединяется с программой-сервером на роутере. Эта же или другая программа транслирует видео с WiFi роутера.
Далее, пользователь может управлять автомобильчиком и нажимает, например, кнопку «вперед». Программа на PC, отсылает команду «вперед» прямо на роутер, на его IP, но на определенный порт. На роутере, эта команда поступает в программу-сервер, т.к. выслана она на его порт, и в рамках открытого для этого сокета. Программа-сервер, ничего не делая с этой командой, просто отправляет её в COM-порт. Таким образом, команда «вперед» оказывается в микропроцессоре, который в ответ на нее, дает сигнал «вперед» на один из своих выводов. К таким выводам процессора подсоединена схема управления двигателями, т.к. сам микропроцессор управлять ими не может в силу своей маломощности.
Управлять исполнительным устройством через роутер, без микропроцессора не получится, т.к. микропроцессор может формировать сигналы «1» (напряжение >2,5v) или «0» (меньше обозначенного) на любом из десятка-другого своих выводов. У роутера же выводов нет, есть только порты ввода/вывода, типа USB или COM (serial), в которых по 2-3 провода.
Теперь часть практическая. Заранее скажу, что несмотря на кажущиеся сложности, все на самом деле просто, если речь идет о простом копировании этого проекта – ведь все уже сделано и работает. Нужно просто выполнить в точности эту инструкцию.
Изначально микроконтроллером был freeduino maxserial у которого был com port, который был одним из немногих(как я тогда считал) для подключения к uart роутеру, для этого нужно было паять переходник с uarta на com чтобы соединить его с роутером. Его брать я не очень хотел, так как оригиналом есть все-таки Arduino, да и Freeduino в Украине нет.

Как я выяснил потом, все было это просто излишнее нагромождение схемы. Обойтись можно всего 1 проводком который будет идти от TX роутера(на рисунке) к RX (0 пин) микроконтроллера.
Непонятно почему но на фридуине оказалось для нормального подключения нужно tx на tx. Скорее всего просто неверно нанесено обозначение. (тут 0 пин tx) По этому лучше брать оригинальный Arduino.
Машинку я купил хорошую, хоть и китайскую 

Машинка оказалась очень мощная, 5 кг на ровной поверхности тянула очень уверено. Также у нее в комплекте шел аккумулятор на 6 вольт. Что касается электроники, то в машинке уже есть готовый драйвер двигателей, на который можно подать управляющие слаботочные выходы с микроконтроллера (если бы с машинкой не повезло - драйвер моторов можно было взять тоже от arduino )
Роутер требует прошивку openwrt и список пакетов указанных на рисунке. 

Роутер можно настроить как точку доступа, которой могут подключится любые устройства, имеющие WiFi. И, даже если не будет программного обеспечения для управлении машинкой – использовать ее как беспроводную камеру видеонаблюдения.
Камера с310 просто подключается к порту usb на роутер и не требует пайки, требует небольших настроек в роутере. Проект имеет 2 цепи питания, 1 цепь питается от 9,6 вольт - роутер и микроконтроллер, 2 цепь питается от 6 вольт - привод и рулевое машинки. Можно обойтись всего 1 источником питания в 9,6 вольт, но более емкостным. Роутер потребляет 2А, микроконтроллер потребляет почти незаметно, машинка 4А.
Программа микроконтроллера обрабатывает сообщения, которые приходят с последовательного порта роутера, обработка происходит побайтово через portb arduino, например если пришло в роутер 2, то, переведя в двоичную систему получаем 00000010 – что соответствует 2 пину на portb. Такое решение позволяет управлять одновременно несколькими пинами. Вот что получилось в итоге: 

Приложение для андроид: 

Приложение для пк: 

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

Собирайте arduino своими руками - полный каталог плат

Arduino-машинка. | Пикабу

Пикабу, привет!

Хочу рассказать вам о том, как я делал и сделал самоуправляему машинку)

Я мог бы рассказать сразу, как делать, сухо прикрепив схемы и bash команды, но так будет скучно. Предлагаю вам интересную (я надеюсь) историю о том, как лично я прошел этот путь, и куда пришел.

Те места, где было что фоткать, с фотками. Там, где про софт — скорее всего без фото)

Это будет действительно история в формате повествования, как я рассказывал бы вам за чашкой кофе) Это не про bash команды, python скрипты, и вот это вот всё)

Начнём с фотки и видео того, что получилось, и дальше вся история под катом

История пройдет по такому сценарию

Почему я этого захотел

Как устроена самоуправляемая машина (взгляд сверху)

Эпоха 1 — Gelendwagen из детского мира Raspberry Pi Zero W камера

Эпоха 2 — ГАЗ66 NVIDIA Jetson Nano Камера для RaspberryPi

Эпоха 3 — Remo Hobby SMAX

Эпоха 4 — Соединение SMAX и ГАЗ66

Эпоха 5 — Монтирование компонентов на монстр траке

Эпоха 6 — Установка Donkey Car и окружения

Эпоха 7 — Сборка трассы, поездки

Эпоха 8 — Поездки с джойстика

Эпоха 9 — Обучение нейронки

Эпоха 9 — Всё работает, наконец-то!

Что дальше?

Вызов на батл

Сообщество

Образ sd карты моей машинки

Наливайте кофе, мы выезжаем!

Почему я этого захотел

Всё началось с того, что я фрустрировал с того, что в одной большой IT компании России делают очень классные беспилотники, это невероятно круто, а я не у дел)

Не, ну правда, это же так круто — самоуправляемые тачки) Отличный сплав из механики и алгоритмов)

Фрустрация продолжалась до тех пора, пока я не соединил у себя в голове разные факты о себе, а именно:

— я умею писать на питоне

— я (примерно) понимаю как работает машинное обучение

— я знаю, как работать с линуксом в консольке

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

— у меня есть целая коробка с diy компонентами (raspberry pi, arduino, сенсоры, и т.д.)

Когда всё в голове сложилось, я решил — self drirving car (sdc) быть!

Для начала, решил я, стоит вообще разобраться, как устроена sdc, и об этом будет следующий раздел.

Как устроена самоуправляемая машина (взгляд сверху)

Для того, чтобы машина поехала сама, ей нужно четыре компонента — тележка, сенсоры, компьютер, алгоритм.

Давайте разберемся:

Тележка

То, что собственно, будет ездить. Колеса, моторы, батарея, которая это все питает.

Здесь есть две условных когорты машинок, которые я назвал для себя так — машинки из детского мира, и машинки для хобби.

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

Машинки из мира хобби — то, что вам нужно. У них мощные двигатели, хорошие батареи, сервоприводы на передних колесах для поворотов. Считайте, что это порог входа. Самое дешевое и нормальное, что мне удалось найти — Remo Hobby SMAX.

Сенсоры

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

Базово, джентельменский набор для SDC такой:

— Камера. Основа основ SDC. Смотрит на кусок пространства перед собой, передает изображение компьютеру, который распознает происходящее, и решает, что делать. Кажется, что я не встречал реализаций SDC без камеры.

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

— Лидар. Одновременно и простая и сложная штука, которая стреляет лазером вокруг себя, измеряет время возвращения луча, и понимает расстояние до границы пространства. Лидары бывают дорогими, как в настоящих SDC, и довольно дешевыми, как в вашем роботе пылесосе. Для сравнения, лидар из пылесоса стоит 75$, тогда как лидар для большой SDC от Velodyne нагуглился мне за 4K$. Такая разница в цене объясняется тем, что дорогие лидары строят 3D картинку, тогда как пылесосный лидар находит просто границы комнаты в 2D.

— GPS. Не используется в маленьких машинках, так как слишком большая погрешность измерения на маленьких расстояниях, но о нем стоит сказать, так как в больших SDC активно используется.

— Камера глубины. Работает примерно как смесь лидара и камеры — получает картинку с точками, и расстоянием до них. Позволяет строить 3D карту видимой области.

Компьютер

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

В мире компьютеров для встраиваемой электроники правят бал энергоэффективные ARM процессоры (как в вашем телефоне), и одноплатные компьютеры на их основе.

На сегодня есть два самых популярных варианта одноплатников — RaspberryPi и NVIDIA Jetson.

RaspberryPi отличается меньшей ценой, бОльшим количеством разнообразных проектов, бОльшим сообществом.

NVIDIA отличается бОльшей ценой, меньшим количество проектов, но при этом бОльшей производительностью в задачах машинного обучению. Имеет на борту 128 CUDA ядер (как в вашей большей NVIDIA видеокарте), которые используются для ускорения алгоритмов машинного обучения.

В моей коллекции есть три штуки Raspberry Pi (ZeroW, 3, 4) и NVIDIA Jetson Nano. Машинку я решил собирать, конечно же, на Jetson.

Алгоритм

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

Если вы хотите освежить, как работает нейросеть, то предлагаю вам посмотреть вот такое видео — www.radiocopter.ru/watch?v=RJCIYBAAiEI

Здесь я описал самый простой вариант, где есть только камера и езда по разметке. Но есть варианты с бОльшим количеством сенсоров и другой логикой работы — об этом здесь будет отдельный пост.

Если очень высокоуровнено, то это всё.

Остается только:

— собрать тележку

— повесить сенсоры

— подключить компьютер

— нарисовать разметку

— поездить по ней

— обучить нейросеть

— поехать

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

Эпоха 1 — Gelendwagen из детского мира Raspberry Pi Zero W камера

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

Окей, подумал я, гелик есть, теперь нужен компьютер и сенсор. Подумано — сделано. Заказал RPi Zero W и камеру для неё. Пока ждал компьютер и камеру, зашел, купил для этого дела пауэрбанк.

Итак, всё на месте, пора собирать. Нашел вот такой проект, решил идти по нему — https://becominghuman.ai/building-self-driving-rc-car-series…
Разобрал гелик, вытащил его родные мозги, перекинул их на контроллер двигателя, его, в свою очередь, перекинул на RPi, к ней подключил камеру, запитал всё это дело пауэрбанком, остался доволен.

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

Тут-то меня и ждала пара провалов.

Первый — Raspberry Pi Zero W очень слабая в плане производительности.

Второй — Проходимость гелика из детского мира почти никакая, его останавливало почти любое минимальное препятствие.

Уже сейчас стало понятно, что проект мертворожденный, но ради интереса я попробовал собрать для Raspberry Pi Zero компьютерное зрение (OpenCV) прямо на ней же. Это заняло, без шуток, больше суток, и стало последним гвоздем в крышку гроба этой реализации SDC.

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

Получилось довольно смешно

Эпоха 2 — ГАЗ66 NVIDIA Jetson Nano Камера для RaspberryPi

Итак, на этом моменте стало понятно, что нужно какая-то более проходимая машина, и желательно, грузовик, чтобы положить в кузов все компоненты. После штудирования одного сервиса по подбору товаров, стало понятно, что мне подходит модель нашего родного ГАЗ66, он же шишига в народе. Окей, заказал, жду, пора думать про компьютер. К этому моменту NVIDIA как раз готовила старт продаж своих Jetson Nano, и я оформил заказ в первый день продаж.

Приехал грузовик, я продолжал ждать Jetson, в нетерпении катался на шишиге по дому, катал котят, которых родила кошка, упомянутая выше. Не сказать, что котятам нравилось — пришлось перестать.

Тем временем, Jetson еще ехал, а я заказал из Китая пылесосный лидар — пока не знал, как конкретно буду его применять, но понимал, что хочу.

В какой-то день в подъезде офиса возник деловитый курьер, вручил мне довольно большую коробку с одноплатником от NVIDIA, я расписался в накладной, и ощутил себя разработчиком энтузиастом — ничего себе, ко мне приехал девайс, купленный на старте продаж.

Пора собирать! Но сначала, надо разобрать, лол. Разобрал шишигу, выкинул ее родные мозги, смазал механизмы, начал собирать уже на базе компьютера.

Подключил камеру, контроллер двигателя, поворотный двигатель, двигатель газ/тормоз, завел питоновские скрипты для теста — снова облом!

В этот раз история такая — у шишиги для поворота используется обычный двигатель, не сервопривод. А значит, у него нет обратной связи. А значит, я не могу им упрвлять точно, а значит, он не подходит для SDC.

Штош, снова нужно как-то это решать, что-то делать. Переходим к следующей эпохе.

Эпоха 3 — Remo Hobby SMAX

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

Не мудрствуя лукаво, я приехал в один такой магазин, и не таясь рассказал, что делаю, и какая мне нужна машинка. Продавец, будь ласка, рассказал мне, какая машинка подходит под мои минимальные требования, и это был Remo Hobby SMAX. Купил.

Приехал домой, достал шишигу, скинул всё с неё, сел подключать к SMAX. И что, как вы думаете? Правильно — снова неудача!

Базово, RC машинки устроены так, что двигатель подключается к контроллеру двигателя, а тот, в свою очередь, подключается к радио модулю, который общается с пультом. И вот именно SMAX устроен так, что там контроллер двигателя и радио модуль были объединены — у меня буквально не было возможности подключиться к контроллеру двигателя вместо радио модуля.

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

Заказываю, привозят, собираю всё заново — работает, но только повороты. А газ и реверс нет! Да что, блин, такое, думая я, но продолжаю ковыряться.

В этот раз не работало то, что, оказывается, для того, чтобы двигатель SMAX проснулся, пульт должен прислать ему определенное значение (360) через радиомодуль. Но я об этом не знал, и вводил значения непосредственно для газа тормоза. А двигатель не реагировал, исходя из логики, что никто его не просил просыпаться.

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

Сначала я перебирал по 100 — мимо. Потом по 50 — мимо. И вот когда дошел до перебора по 10, на 360 услышал какой-то приветственный писк — ура! Работает!

Потестил из консоли газ/реверс/лево/право, все работает. Вот это огонь, вот это я программист =)

Кажется, пора собирать, но есть проблема — положить компоненты совершенно некуда. RC машинки устроены так, что их верх — весьма условная вещь. Во первых, верх состоит из очень тонкогоо пластика, во вторых, он изображает из себя джип, и типа просто некуда всё положить.

В этот момент я решил поискать, а как, собственно, это делают другие.

Нашел проект donkey car, в котором есть всё под ключ, чтобы собрать свою SDC — и Hardware примеры, и Software фреймворк. Казалось бы, круто, бери и пользуйся, но, есть нюансы:

— они печатают верх машины на 3D принтере, и машину оно потом напоминает очень отдаленно. некрасиво, короче, не эстетично

— их 3D модели совместимы с такими машинами, которые у нас не продаются

Окей, запомним Donkey Car, возьмем потом их Software фреймворк, но пока надоо думать про hardware.

В какой-то день, крутя в своей кваритре головой, я посмотрел на разобранную шишигу, на SMAX без верхней части, и подумал — хммм, а они, кажется, одного масштаба (1/16). Взял шишигу, взял SMAX, просто на глазок приложил одно к другому — и правда, подходит! И выглядит круто! Штош, надо делать! Переходим к следующей эпохе.

Эпоха 4 — Соединение SMAX и ГАЗ66

Итак, на старте этой эпохи у меня есть внутренний таргет — соединить верх от одной машины с низом от другой. Так как мы с коллегами скинулись на 3D принтер, и я являюсь его совладельцем (серьезный инвестор), то было решено нарисовать соединение в CAD программе, распечатать, и таким образом их соединить.

С этой идеей я ходил около 2 месяцев, думая, что вот-вот сяду разбираться в CAD системах. Лол, нет. Признавшись себе в том, что я не хочу разбираться в CAD системах, я стал думать, какие еще есть варианты.

Зашел снова в десткий мир, решил посмотреть конструкторы, вдруг они мне как-то помогут. Купил классический металлический конструктор, который был у меня, когда я учился в школе (аш олдскулы свело).

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

Начал делать. Провел не один день с детским гаечным ключом, гайками, и пространственным мышлением.

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

Спустя примерно три переделки и три дня я увидел перед собой этот монстр трак — ГАЗ66 SMAX Edition by Beslan.

Итак, кажется, hardware база готова, переходим к следующей эпохе.

Эпоха 5 — Монтирование компонентов на монстр траке

Наконец-то:

— у меня есть тележка с хорошими компонентами

— у меня эстетичный и вместительный верх

— на этой тележке нормально работают газ/тормоз/повороты

— верх и низ даже соединены вместе =)

Пора монтировать на этой красоте компоненты.

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

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

Помимо Jetson, в кузове поселились:

— пауэрбанк для питания компьютера (пожертвовал свой основной, классный, с usb power delivery, чтобы jetson не проваливался по питанию)

— PCA9685 (ШИМ контроллер) для управления двигателями

— батарея для питания двигателя машины

Так как проект уже на этот момент считался долгостроем, с лидаром решил пока не связываться, и сделать MVP хотябы на камере и софте от Donkey Car.

По приколу подключил родные фары от ГАЗ66, чтобы было красивее и увереннее в темноте.

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

Эпоха 6 — Установка Donkey Car и окружения

Благо, на прошлых этапах я нашел проект Donkey Car, и он очень упростил мне жизнь, избавим меня от написания всего самостоятельно. Говоря по простому, DonkeyCar, это фреймворк, в котором уже есть все, что нужно для SDC. И у них даже есть гайды по тому, как ставить софт. Но, как это обычно бывает с OpenSource — гайды устарели, и моментами противоречят друг другу.

Штош, придется разбираться. Для нормальной работы фреймворка нужны следующие библиотеки:

— OpenCV

— tensorflow-gpu (gpu именно для jetson, ибо есть cuda ядра. для rpi там tensorflow-lite)

— tensorrt (библиотека для ускорения инференса нейронок)

— и все то, что ставится автоматически исходя из списка окружения

Начнем с OpenCV.

В гайде DonkeyCar сказано, что его нужно собрать самом из исходников, ибо для ARM нет OpenCV в pip-е. Я это даже проделал, скомпилял OpenСV, но перед установкой решил проверить, вдруг в системе есть старая версия OpenCV, и ее надо снести. Позвал питон, заимпортил cv2, спросил версию, а она бац, и актуально. Быстренько поискал, и узнал, что оказывается, в последние версии linux4tegra (который в jetson) ребята из NVIDIA стали класть OpenCV. Круто, мне меньше дел. Молодец, что смог сам скомпилять)

Дальше, tensorflow-gpu.

В гайде DonkeyCar указана, во первых, устаревшая ветка версий (1.xx), во вторых, даже не последняя версия из устаревших. Я решил их не слушать, и поставить последнюю актуальную версию (2.0).

Следующий шаг — tensorrt

Гайд по установке tensrort на jetson написан отдельной вики страницей, и по ней понятно, что автор не читал основной гайд =) Ибо в гайде по tensorrt переназначаются переменные окружения, и перестает работать OpenCV. Я покрутил это и так и этак, откатил всё назад, и решил забить на окружения и переменные окружения — вкатил прямо в основное окружение.

Довольный собой открыл питон, по очереди позвал cv2, tensorflow, tensorrt, и потом спросил у питона их версии — они все заимпортились, все показали актуальные версии. Круто!

Процесс установки самого donkey car довольно простой, не буду описывать, предлагаю почитать их гайд. Единственное, что отмечу сейчас — в конфиге donkey car можно повысить разрешение картинки с 86х86 для RPi до 224х224 для Jetson (ибо больше производительности и так будет выше точность).

Итак, все готово, время запускать и тестировать!

Моя машинка действительно включается, на ней стартует веб сервер на том IP, которой машинке выдал роутер. И туда реально можно зайти, и из браузера поездить джойстиком, смотря на картинку с камеры.

Еще пришлось откалибровал значения, подаваемые на ШИМ (PCA9685), чтобы найти полный ход вперед, полный назад, максимальные повороты в стороны.

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

Круто, пора переходить к подготовке трассы!

Эпоха 7 — Сборка трассы, поездки

Алгоритм Donkey Car так устроен, что там нейронка, обучаемая учителем. А это значит, что трекается картинка с камеры, и рядоом с каждой картинкой появляется json файл, в которой пишется имя картинки, ускорение, поворот, timestamp. И для того, чтобы обучить нейронку, таких пар «картинка json» нужно минимум 5К.

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

Окей, решил собирать в одной комнате. Купил 4 рулона малярного скотча, и наклеил им по полу трассу.

Поставил машинку, запустил, поехал, и снова провал — оказывается, одна комната слишком маленькая, и моя машинка банально не входит в поворорты. Точнее входит, но на такой скорости, что будет стыдно потом =)

Штош, надо делать вторую итерацию, и нужно большое помещение. Выбор пал на офис — места много, полы однотонные, открыто 24Х7. Проблема только в том, что ночью работают уборщики, и трассу нужно будет убрать. То есть, надо сделать все в один заход — поездить руками, чтобы быть учителем, обучить модель, закинуть обратно в машинку, и поехать уже без управления руками.

Окей, день Х, после ивента про А/Б эксперименты решено остаться в офисе, и делать трассу.

Место выбрано, скотч готов, команда строителей трассы в игре. Буквально час, и в коридоре офиса появляется отличная трасса.

Ставлю машинку, включаю, пробую ездить — ура, в повороты входит, и скорость пришлось ограничить всего до 80%.

Эпоха 8 — Поездки с джойстика

Итак, у меня есть трасса, есть машина, и мне нужно 5К пар картника json.

Опытным путем я выяснил, что один круг моей трассы, это 250 пар фотка json, а это значит, что мне нужно отъездить минимум 20 кругов.

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

Начал пытаться ездить по 20 кругов без перерыва, и это, должен сказать, не самая простая задача.

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

Штош, значит надо сделать так, чтобы коннект был с того устройства, с которым я сам хожу за машинкой, когда езжу. А это значит, что надо ездить из браузера телефона.

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

Хм, значит нужно как-то объединить телефон и джойстик. Окей, у меня есть читалка, она достаточно большая, на ней поместится и телефон и джойстик — подойдет. Взял скотч, и примотал скотчем к читалке телефон, а чуть ниже джойстик. Смотрел на это чудо, и думал — что ты такое, вообще)

Но, сработало) С этой штукой мне удалось отъездить 20 кругов. А на саомм деле, даже 25, ибо я вошел во вкус где-то к 15 кругу))

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

Эпоха 9 — Обучение нейронки

В этот момент у меня есть машинка, трасса, датасет — да я в одном шаге от результата!

Дома крутился PC на холостом ходу, с NVIDIA RTX 2070, на котором я и планировал обучаться. Благо, для умного дома у меня есть внешний IP, и нужно было всего лишь прокинуть 22 порт из интернета на PC. Хорошо, что нашлись помощники, которые сделали это для меня, пока я был в офисе.

Итак, захожу по ssh на комп с убунтой, монитирую домашную папку по sshfs, закидываю файлы. Казалось бы, всего 40 мегабайт, но это длилось около 30 минут. Так вышло, я так понимаю, потому, что их было очень много.

Файлы на компе, tensorflow-gpu установлен, софт от DonkeyCar установлен, пора обучать.

Зову скрипт от DonkeyCar для обучения нейронки, указываю ему на папки с датасетом — побежало.

Пока нейронка бегает, nvtop (монитор загрузки видеокарты) показывает 1406% утилизации, обычный htop показывает 100% загрузки cpu по всем 16 ядрам, дело идет)

Спустя каких-то 20 минут у меня есть обученная модель для управления тачкой. Казалось бы, бери, пользуйся. Но нет)

Помните, я выше писал про tensorrt, который оптимизирует инференс нейронок и запускает их на cuda ядрах? Конечно-же, я хочу выполняться через него.

А это значит, что мне нужно:

— зафризить модель (упаковать всё нужно для модели в один файл)

— сконвертировать результат фриза в пригодный для tensorrt формат

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

Родилась гипотеза, что это потому, что я взял не тот tensorflow, что был у DonkeyCar. Окей, сношу tensorflow 2.0, ставлю 1.15, пробую еще раз — успех, ура!

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

Зову скрипт из того места, и правда отзывается. Но, говорит, никаких тебе третьих питонов, давай второй.

Окей, зову второй питон. Он мне говорит — у меня нет tensorflow. Хорошо, прошу его поставить tensorflow-gpu 1.15, а он мне говорит, что такой версии нет, есть только 1.14. Ладно, соглашаюсь я, давай рискнем, и поставим разные версии в разные питон окружения. Поставил tensorflow во второй питон, позвал конвертацию — ура, сработало!

Штош, у меня есть модели для tensorrt и для обычного tensorflow-gpu, закидываю в машинку.

Запускаю машинку с моделью для tensorrt, огромный трейсбек ошибки, время давит — окей, попробую обычную модель.

Запускаю обычную, снова ошибка, но на этот раз довольно четкая — ваш размер картинки 224X224, тогда как ожидается 86X86. Помните, где-то сильно выше я писал о том, что правил конфиг, менял разрешение картинки с камеры?

Так вот, на машинке я поправил, а на хост компьютере нет.

Почти год я всё это делал, и вот)

Что дальше?

На дальнейшее развитие есть ряд планов, пойду от простого к сложному

— Добавить в модель IMU сенсор, чтобы, возможно, повысить точность. Например, что при движении в горку нужно больше усилия двигателю.

— Перевести логику на поездки не по трассе, а просто ездить, объезжая препятствия

— Добавить лидар и учитывать показания с него

Вызов на батл

Если вы сам, или с компанией друзей, чувствуете, что хотите гонок, то пишите мне, давайте устроим соревнования =)

Сообщество

Еще я собрал чатик по интересам, и готовлю канал. Я не уверен, что по правилам пикабу так можно, так что пришлю в личку по запросу

Образ sd карты моей машинки

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

Машинка 4×4 на Arduino с управлением по WiFi с Android « схемопедия


RC машинка может быть WiFi машинкой …?

RC машинка это хорошо, но дешевые RC машинки имеют ограниченный диапазон и управляются только определённым пультом поставляемым в комплекте.

Я купил RC джип 4х4 с гибкой подвеской и внедорожными шинами примерно за 30 долларов.  Поигравшись с машинкой я решил, что её можно улучшить при помощи Wi-Fi и Android. Потратив немного времени, я полностью удалил плату из машинки.  Я замерял напряжения на этой плате и разработал систему управления двигателем при помощи Arduino. Оригинальная система управления не использует ШИМ для контроля скорости. Машинка рассчитана на переезд через препятствия на очень низкой передаче, и как следствие очень медленно. В моей же схеме используется ШИМ.

Я использую Arduino уже несколько месяцев. Я также приобрел asynclabs WiFi Sheild для Duemilanoe Arduino, чтобы экспериментировать с WiFI. Он поставляется с библиотекой, устанавливаемой в Arduino IDE. Я смог сделать программу, которая позволяет управлять двигателями и направлением  движения при помощи WiFi.

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

Инструменты и элементы

Это общий список инструментов и элементов, которые использовались в этом проекте.  В документации Eagle указаны точные технические характеристики используемых компонентов.

Мультиметр

Паяльник

Припой

Отвертки

Раствор для травления плат

Фольгированы стеклотекстолит

Плоскогубцы

Arduino

AsyncLabs WiFi Sheild

Разъёмы RJ45

Драйвер двигателя с H-мостом

Конденсаторы

Драйвер двигателей

Используя Eagle, я разработал эту схему и сделал печатную плату для неё. Она функционирует как драйвер двигателей и регулятор их мощности для Arduino.

Это позволяет использовать стандартный 7.2В аккумулятор для питания основных и рулевых двигателей и Arduino.

В этой схеме используется двойной интегральный драйвер с Н-мостом SN754410 для управления двигателями. Выводы управления драйвера подсоединены к кабелю RJ45, который подключается к AsyncLabs WiFi Sheild.

Arduino Shield

Используя библиотеку SparkFun в Eagle я разработал Arduino Shield, через который будут проходить контакты с WiFi Shield и подключаться к драйверу двигателя через разъем RJ45 и 2 винтовые клеммы.

Цоколевка контактов RJ45 очень важна. Ошибка в подключении может привести к непредсказуемым результатам и придётся переделывать плату.

Травление печатных плат

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

Я использую ЛУТ, и он меня устраивает, а с опытом дает прекрасные результаты.

Размещение электроники

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

Я забыл сфотографировать соединение платы драйвера двигателя с остальными платами, однако он хорошо стал и не занял много места в корпусе.

Программа

Мой код может быть не достаточно эффективен, но он работает.

Машинка

Мне удалось собрать CarServer на основе примера SocketServer, который я получил вместе с Wifi Sheild AsynLabs.

Вам необходимо будет ввести информацию о своей беспроводной сети  в код Arduino. Когда машина включилась, дайте ей 15-45 секунд, чтобы установить соединение с маршрутизатором. Красный светодиод на WiFi Shield означает, что соединение установлено.

Программа в Windows

Я сделал эту программу при помощи C # и MS Visual Studio 2008. Я сделал хорошее окно, и автомобилем можно управлять стрелочками.

Android

Почему бы не управлять машинкой с телефона?

Такая мысль появилась у меня примерно через неделю после покупки DroidX. Я начал экспериментировать и  в конечном итоге использовал Android SDK. Я нашел аналогичные приложения, где для управления используется акселерометр. Смотря на эти приложения написал свое.

Вставить IP и порт, указанные в коде Arduino. Держите телефон горизонтально. Затем наклоните его от себя, чтобы ехать вперед и на себя, чтобы ехать назад. Используйте телефон как руль.

Это мое первое крупное приложение для Android. В нем до сих пор есть некоторые ошибки, но в основном оно работает нормально.

Рулите во дворе машинкой 4×4 с WiFi!

Я отлично провел время, создавая этот проект. Я получил много знаний и новых навыков, и теперь у меня есть машинка 4х4, которой можно управлять с телефона.

Мне нужна камера для установки за лобовым стеклом, чтобы смотреть куда ехать. Она должна быть с низким энергопотреблением, а также передавать видео сама по себе. (Я думаю, что Arduino справится с этим).

Скачать файлы проекта

Оригинал статьи на английском языке (перевод: Александр Касьянов для сайта cxem.net)

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

‘Rain1’ с Arduino

О чем это вообще?

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

Радиоуправляемая машина «Rain1» -1

Шаг 1: Необходимые детали и инструменты

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

  • Arduino UNO
  • 4WD изготовленное на заказ шасси
  • HC05 Модуль приемопередатчика Bluetooth с TTL-выходами с индивидуальным шасси Switch5WD для робота
  • (4x) DC 3V-6V двухосный редукторный двигатель
  • L293D Adafruit Motor / Stepper / Servo Shield для Arduino
  • (2X) 3.Литий-ионный аккумулятор 18650 (3000 мАч и 2600 мАч) 7 В )
  • Провод
  • Перемычка между мужчинами и женщинами

Шаг 2: Подключение

Я установил моторный щит на плату Arduino и подключил модуль Bluetooth к Audino или непосредственно к экрану, припаяв его для подключения RX к TX, TX к RX, земля к земле, VCC к VCC, как показано на рисунке, а также подключите двигатели к M1 (слева) и M2 (справа)

Шаг 3: Motor Shield

Был выбран L293D Adafruit Motor Shield, потому что есть 2 соединения для сервоприводов 5V «хобби», подключенных к выделенному таймеру Arduino с высоким разрешением.4 H-моста: набор микросхем L293D обеспечивает 0,6 А на мост (1,2 А пик) с защитой от теплового отключения, внутренними диодами защиты от отдачи. Может работать с двигателями от 4,5 до 25 В постоянного тока. До 4-х двунаправленных двигателей постоянного тока с индивидуальным 8-битным выбором скорости (так что разрешение около 0,5%). До 2 шаговых двигателей (однополярных или биполярных) с одиночной катушкой, двойной катушкой или чередующимся шаговым режимом. Понижающие резисторы отключают двигатели при включении питания. Большие клеммные колодки для удобного подключения проводов (18-26AWG) и питания.Кнопка сброса Arduino поднялась вверх. 2-контактная клеммная колодка и перемычка для подключения внешнего источника питания, для отдельных источников питания логики / двигателя

Шаг 4: Шасси

Эта часть была очень простой. Я только что нашел это в своем местном магазине. Я подумал, что это будет очень просто.

Шаг 5: Источник питания

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

Шаг 6: Код

Я загружу код позже в репозиторий git. Этот проект сейчас находится в исходном состоянии. Я должен сделать его более эффективным.

Шаг 7: Управление автомобилем с помощью Bluetooth

Из магазина игр я загрузил apk «Arduino Bluetooth RC Car» и установил его. Включите автомобиль и подключите модуль, используя пароль 1234. Затем я нажал на шестеренку, показанную в приложении, теперь «выберите подключение к автомобилю». Красная кнопка, мигающая в приложении, станет зеленой. Теперь я подключаюсь к машине и играю с ней.Перед загрузкой кода я удалил контакты 5v или RX и TX из Arduino, которые подключены к модулю Bluetooth, потому что в противном случае были бы проблемы с загрузкой кода.

Шаг 8: Видео на Youtube

Часть 1

Часть 2

Мои каналы в социальных сетях

Facebook: https://www.facebook.com/auvee12

Инструкции: https: // www .instructables.com / member / rafath.auvee /? cb = 1561557854

Twitter: https: // twitter.com / RafathAuvee

Instagram: https://www.instagram.com/rafath_auvee

Linkedin: https://www.linkedin.com/in/auvee/

Опубликовано Rafath

Меня зовут Рафат Бин Зафар Овее. Энтузиазм, самоучка, целеустремленный программист Я изучаю степень бакалавра наук и инженерии в области компьютерных наук и инженерии в Университете науки и технологий армии Бангладеш. Для меня компьютерное программирование - это любовь, страсть, исследования и многое другое. В основном я делаю много самодельных проектов Arduino и решаю задачи в онлайн-судье.В этом блоге я напишу о проделанной мной работе. Просмотреть все сообщения Рафата.

Демонстрация радиоуправляемой машины



На этой панели есть 4 кнопки для управления радиоуправляемым автомобилем.

Arduino Uno, Bluetooth HC-06 и 4-позиционное реле использовались для управления двигателем и соленоидом старого радиоуправляемого автомобиля.

Об этой демонстрации


В этой демонстрации используется модуль Bluetooth HC-05 или HC-06 с Arduino для общаться с устройством Android с помощью Bluetooth.Keuwlsoft's Приложение Bluetooth Electronics используется с 4 кнопками для управления вперед, реверс, влево и вправо на радиоуправляемой машине с помощью реле.

Эта демонстрация не о проектировании машины, поэтому мы обманули и подобрали нефункционирующую один и вырвал старую схему управления, которая больше не работала.

Осталось два соединения для двигателя и два соединения с соленоидом. управляемое рулевое управление. Двигатели и соленоид потребляют слишком большой ток для работы непосредственно с выходного контакта Arduino, поэтому мы использовали готовый релейный модуль для подключения мощность двигателя / соленоида.Вместо того, чтобы использовать тот же источник питания, что и Arduino, мы использовали 6 батареек AA в имеющемся отсеке под автомобилем. Изоляция силовой стороны цепи к Arduino часто бывает хорошей идеей при использовании реле, если используются разные напряжения или используются компоненты, такие как двигатели / соленоиды, которые могут создавать неприятную обратную ЭДС при внезапном выключении.

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

Используемые компоненты


  • Arduino Uno
  • HC-06 Модуль Bluetooth
  • 4-контактный релейный модуль
  • Резисторы 10 кОм и 20 кОм
  • Prototype Shield для Arduino Uno
  • Старый радиоуправляемый автомобиль

Принципиальная схема



Мы используем Arduino Uno для этой демонстрации, хотя вы можете использовать альтернативный, если хотите.

Модули Bluetooth имеют 4 соединения: GND, 5V, RX и TX. Контакт TX на Bluetooth модуль подключается к контакту RX на Arduino и наоборот. Для последовательной связи соединение передачи (TX) должно быть получено соединением (RX).

Обратите внимание, что модуль Bluetooth работает при напряжении 3,3 В. Подача 5 В на вывод Bluetooth RX может повредить его, поэтому для подачи сигнала 3,3 В на вывод RX следует использовать делитель напряжения. В этой демонстрации это достигается с помощью резисторов 20 кОм и 10 кОм.Контакт TX модуля Bluetooth не требует модификации и может подключаться напрямую к контакту Arduino RX. Это связано с тем, что ВЫСОКОЕ на логической схеме 3,3 В будет по-прежнему распознаваться как ВЫСОКОЕ на логической схеме 5 В на Arduino.


Код Ардуино

// Демонстрация последовательной связи Bluetooth на радиоуправлении автомобиля
// Автор keuwlsoft:  www.keuwl.com  23 августа 2015 г.

char BluetoothData; // полученные данные Bluetooth

void setup () {

  Серийный .begin (9600);
 
 // Установите цифровые выводы с 4 по 7 как выход
 pinMode (4, ВЫХОД);
 pinMode (5, ВЫХОД);
 pinMode (6, ВЫХОД);
 pinMode (7, ВЫХОД);
 
 // Устанавливаем состояние всех выводов на НИЗКОЕ (0)
 digitalWrite (4,0);
 digitalWrite (5,0);
 digitalWrite (6,0);
 digitalWrite (7,0);

}

void loop () {

 if ( Serial  .available ()) {
 
 BluetoothData =  Serial  .read (); // Получить следующий символ по bluetooth
 
 if (BluetoothData == 'R') {// Нажата красная кнопка
 digitalWrite (4,1); // Превратите цифровой выход 4 в высокий
 digitalWrite (5,0); // Перевести цифровой выход с 5 на низкий
 }
 if (BluetoothData == 'Y') {// Нажата желтая кнопка
 digitalWrite (5,1);
 digitalWrite (4,0);
 }
 if (BluetoothData == 'r' || BluetoothData == 'y') {// Красная или желтая кнопка отпущена
 digitalWrite (4,0);
 digitalWrite (5,0);
 }
 if (BluetoothData == 'G') {// Зеленая кнопка нажата
 digitalWrite (6,1);
 digitalWrite (7,0);
 }
 if (BluetoothData == 'B') {// Нажата синяя кнопка
 digitalWrite (7,1);
 digitalWrite (6,0);
 }
 if (BluetoothData == 'g' || BluetoothData == 'b') {// Зеленая или синяя кнопка отпущена
 digitalWrite (7,0);
 digitalWrite (6,0);
 }
 
 }
 
 delay (10); // ждем 10 мс

}

 

Приложение Bluetooth Electronics


1) Запустите приложение Bluetooth Electronics, нажмите «Изменить», найдите пустую панель и выберите кнопки.

2) Добавьте 4 кнопки, одну синюю, одну зеленую, одну красную и одну желтую.Коды отправки по умолчанию для этих кнопок: заглавная «B», «G», «R» или «Y» для нажатия и «b», «g», «r» и «y» для отпускания. Т.е. первая буква названия цвета. Поскольку они соответствуют приведенному выше коду Arduino, нам не нужно ничего редактировать, если эти кнопки используются. В качестве альтернативы выберите библиотеку, перейдите к демонстрации радиоуправляемого автомобиля и скопируйте его на панель.

3) Нам нужно подключить устройство Bluetooth. Включите питание вашей цепи, чтобы светодиод на модуле Bluetooth начал мигать.Нажмите «Подключиться» на главном экране приложения. Если сопряжение еще не выполнено, нажмите «Обнаружить» и подождите, пока устройство не появится в списке ниже. Выберите устройство (например, HC-06) и нажмите на пару. При запросе вам нужно будет ввести пин-код, который для этих устройств обычно 1234. После сопряжения устройство появится справа. Выберите его и нажмите «Подключиться». Надеюсь, это удалось, вернитесь на главный экран.

4) Теперь, когда мы подключились к устройству Bluetooth, должна быть активирована кнопка запуска.Нажмите «Выполнить» и, чтобы проверить это.

(PDF) Радиоуправляемая машина на базе Arduino

I

In

nt

te

er

rn

na

at

ti

io

al

l

J

Jo

ou

ur

rn

na

al

l

o

из

f

C

000 Co

000

о.

om

мм

mu

un

ni

ic

ca ​​

at

ti

io

on

n

9000 3 (

(I

IS

SS

SN

N:

:

0

09

97

73

3-

-7

91

1)

)

V

Vo

ol

lu

um

me

e

1

11

1

ss

su

ue

e

1

1

p

pp

p.

.

7

7-

-1

13

3

S

Se

ep

pt

t

2

20

19

0004

-

M

Ma

ar

rc

ch

h

2

20

02

20

0

000 w

w

w

w

w

.c

cs

sj

jo

ou

ur

rn

na

al

ls

s.

.c

co

om

m

Страница | 7

A

Ar

rd

du

ui

in

no

o

b

ba

as

se

d

Bl

lu

ue

et

от

до

oo

ot

th

h

c

co

on

nt ll

le

ed

d

R

RC

C

C

Ca

ar

r

Souvik Paul1, Saumedhik Biswas4hussa 9, Soumedhik Biswas4hika 9, Soumedhik Biswas4hika, Atareya , Департамент BCA, Академия наследия, Калькутта, Индия

2,3,4,5 Студент, факультет BCA, Академия наследия, Калькутта, Индия

saumedhik18 @ gmail.com, [email protected]om, [email protected]

Аннотация: Целью проекта является разработка интерфейса Android, бота Arduino и запись программы на микропроцессор Arduino

. Автомобиль Arduino содержит микроконтроллер Arduino с основными функциями мобильности. Программы Arduino содержат

инструкций, служащих посредником между контроллером Android и автомобилем Arduino. Мобильный контроллер Android использует различные мобильные датчики

для контроля движения. Необходимо создать соответствующую программу в микропроцессоре Arduino для взаимодействия с контроллером android

.Программа была успешно применена через IDE Arduino к микропроцессору Arduino

& amp; загружается в него после надлежащей проверки логики, чтобы уменьшить любую потерю / повреждение оборудования. У нас есть

для создания приложения для Android, которое предоставит пользователю интерфейс для взаимодействия с автомобилем, работающим на Arduino. Интерфейс

прост в использовании и обеспечивает обратную связь от микропроцессора arduino через Bluetooth после передачи инструкции

на arduino для различных действий через интерфейс через модуль Bluetooth.Приложение Android предназначено для создания

с помощью студии Android, которая предоставляет нам больше возможностей & amp; стабильность. После всего этого мы тщательно тестируем

этого проекта и находим максимальное число. ошибки & amp; неправильная логика в программе микропроцессора. После того, как

сделали это, только мы можем сказать, что мы смогли создать в соответствии с нашей описанной целью.

Ключевые слова: Arduino Uno, модуль Bluetooth HC-05, модуль драйвера двигателя L298N, Micromors и Grippy Wheels,

перемычки

, автомобиль с контроллером Bluetooth.

Введение

Это радиоуправляемая машина на базе Arduino и Bluetooth. Управляется приложением для смартфона.

Управляемый по Bluetooth автомобиль управляется с помощью мобильного телефона Android вместо любого другого метода, такого как кнопки

,

, жесты и т. Д. Здесь нужно всего лишь нажать кнопку на телефоне Android, чтобы управлять автомобилем вперед,

назад, влево и вправо. Таким образом, здесь в качестве передающего устройства используется телефон на базе Android, а в качестве приемника - модуль Bluetooth

, установленный в автомобиле.Телефон Android будет передавать команду с помощью встроенного Bluetooth

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

и остановиться.

Рисунок 1. Arduino Robot Car Wireless Control

Arduino Uno

Arduino Uno - это плата микроконтроллера с открытым исходным кодом, основанная на микроконтроллере Microchip

ATmega328P и разработанная Arduino.cc Плата оснащена наборами цифровых и

Аналоговые входы / выходы (I / O), которые могут быть подключены к различным платам расширения (экранам) и другим схемам

.[1] Плата имеет 14 контактов цифрового ввода-вывода (шесть с возможностью вывода ШИМ), 6 контактов аналогового ввода-вывода и

программируется с помощью Arduino IDE (интегрированная среда разработки) через USB-кабель типа B. Его

может питаться от USB-кабеля или от внешней 9-вольтовой батареи, хотя он принимает напряжения от 7

до 20 вольт. Плата Uno - первая в серии плат Arduino на базе USB; он и версия 1.0

Arduino IDE были эталонными версиями Arduino, которые теперь эволюционировали до более новых выпусков.

ATmega328 на плате поставляется с предварительно запрограммированным загрузчиком, который позволяет загружать в него новый код

без использования внешнего аппаратного программатора. На рынке представлено множество версий плат Arduino

, таких как Arduino Uno, Arduino Due, Arduino Leonardo, Arduino Mega, однако наиболее распространенными версиями

являются Arduino Uno и Arduino Mega.

RC Drift Car от Arduino UNO

Создание дистанционно управляемой Drift Car

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

В этой демонстрации мы предлагаем новый способ создания собственной радиоуправляемой машины ..

Что нового ??

Новый способ управления направлением переворота вместо модуля H-моста двигателя, мы использовали два реле для работы в качестве H-моста с помощью Arduino UNO ... тем самым мы предлагаем высокий ток, проходящий через разделенную мощность вместо того, чтобы покупать сильноточный Н-мост ...

Aws Alkarmi, Два реле в качестве Н-моста

Aws Alkarmi, Arduino UNO RC автомобиль

Aws Alkarmi, Удаленное редактирование трансмиссии

Новый способ подключения 2.Система беспроводной передачи 4 ГГц. При обновлении Amplifying диапазон передачи увеличился до 140 метров вместо 30 метров ... Использование старой системы радиоуправляемой автомобильной трансмиссии, повышающей напряжение до верхнего предела напряжения в IC-трансмиссии внутри пульта дистанционного управления, увеличит дальность передачи ... Не забудьте увидеть Полные характеристики IC. чтобы не сжечь ИС ... Используя антенну Wi-Fi, мы можем расширить диапазон передачи .... Не забудьте взять 2,4 ГГц, а не 5 ГГц ....

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

Игра долгое время за счет увеличения емкости установленных нами литий-ионных аккумуляторов ....

Aws Alkarmi, антенна Wi-Fi для расширения диапазона 2,4 ГГц

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

Aws Alkarmi, Assessment Gears to the Wheals

Aws Alkarmi, Дрифт-кар на радиоуправлении

Надеюсь, вы сделаете мир лучше

HaiqiangXu / Arduino-RC-Car: Завершите проект Arduino по созданию автомобиля с дистанционным управлением вместе с дистанционным контроллером, связанным с Bluetooth.

GitHub - HaiqiangXu / Arduino-RC-Car: Полный проект Arduino для сборки автомобиля с дистанционным управлением вместе с дистанционным контроллером, подключенным по Bluetooth

Файлы

Постоянная ссылка Не удалось загрузить последнюю информацию о фиксации.

Тип

Имя

Последнее сообщение фиксации

Время фиксации

Программное обеспечение для дистанционного управления автомобилем на базе Arduino Uno вместе с дистанционным управлением на базе Arduino Nano и взаимодействием через модули Bluetooth.

Аппаратные компоненты, используемые для автомобиля с дистанционным управлением

  • Arduino Uno или совместимый
  • Аккумулятор или внешний аккумулятор [5 В, +1450 мАч] для питания Arduino и его компонентов (модуля Bluetooth и динамика)
  • Аккумулятор или внешний аккумулятор [12 В, +4000 мАч] для включения двигателей
  • Ведомый модуль Bluetooth HC-06
  • L298N Привод для управления двигателями
  • Зуммер / пьезо-динамик
  • 4 двигателя постоянного тока + колеса
  • Дополнительный двухрядный переключатель для включения / выключения автомобиля
  • Конструкция автомобиля, ваше воображение 🙂

Аппаратные компоненты, используемые для пульта дистанционного управления

  • Arduino Nano или совместимый
  • Аккумулятор или внешний аккумулятор [5 В, +1450 мАч]
  • Bluetooth HC-05 ведущий / ведомый модуль
  • Джойстик аналоговый 2-х осевой с кнопкой
  • Три кнопки переключения
  • Дополнительный двухпозиционный переключатель для включения / выключения контроллера
  • Структура контроллера, в зависимости от вашего воображения

Структура программного обеспечения

Программное обеспечение разделено на уровни абстракции, поэтому ответственность каждого уровня очень ограничена и облегчит рост и сопровождение проекта с архитектурной точки зрения.Использование объектно-ориентированного языка, такого как C ++, принятого в Arduino, приближает реализацию к этому подходу.

Зависимости : необходим доступ к Generic-Libraries / lib в том же репозитории

  Автомобиль с дистанционным управлением
| --lib
| | --RCC_Able
| | | - CAble.cpp
| | | - CAble.h
| | --RCC_Controller
| | | - CController.cpp
| | | - CController.h
| --src
| | - main.cpp
| | - main.h
| - platformio.ini
Универсальные библиотеки
| --lib
| | --Bluetooth_Lib
| | --Common_Lib
| | --Joystick_Lib
| | --Melodies_Lib
| | --Motors_Lib
| --external-libs
| | --Низкая мощность
  

TODO : электрические схемы

Конечная сборка контроллера

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

Около

Завершите проект Arduino для создания автомобиля с дистанционным управлением вместе с дистанционным контроллером, подключенным по Bluetooth.

Темы

Ресурсы

Лицензия

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

Управление радиоуправляемой машиной с помощью Arduino

Управлять радиоуправляемым автомобилем - это весело. Но я думаю, что гораздо интереснее разбирать вещи и смотреть, что еще можно с этим сделать. Я решил купить дешевую машину с дистанционным управлением, чтобы управлять ею с помощью клавиатуры и Arduino.Если у вас есть опыт программирования, но вы раньше не касались электроники, вы все равно можете следовать ему. Это совсем не сложно.

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

Вещи, которые вам понадобятся:

  • Дешевая радиоуправляемая машина (очевидно)
  • Плата Arduino (я использую Arduino Uno)
  • Паяльное оборудование
  • Мультиметр
  • Некоторые электронные компоненты
    • 4 октопары
    • 4 резистора 220 кОм
    • макет
    • перемычки

Какой автомобиль мне нужен?

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

Откройте контроллер RC

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

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

Провода для пайки

Проведя несколько тестов с мультиметром, вы должны иметь довольно хорошее представление о схеме. Следующим шагом будет припайка некоторых проводов к схеме. Я использовал 5 проводов, по 4 для каждого переключателя и 1 для заземления. Если вы подключите один из четырех проводов к заземлению, соответствующий переключатель должен быть замкнут, и вы должны увидеть ответ от автомобиля. Позже я смогу подключить припаянные провода к макетной плате и соединить их оптопарами.

Вот результат после того, как я закончил пайку.

Нижний правый провод заземлен, а остальные четыре подключены к переключателям. На этой картинке вы можете увидеть микросхему на печатной плате. Это микросхема RX2 / TX2, которую можно найти в большинстве дешевых радиоуправляемых машин. Он использует 2 канала для управления автомобилем, но, очевидно, у него есть третий неиспользуемый канал. Если вы готовы к этому, вы можете добавить в свой автомобиль дополнительные функции.

Строительная схема

Когда пайка закончена, следующим шагом будет подсоединение проводов к макетной плате и добавление туда некоторых других электронных компонентов.У меня нет образования в области электротехники. Поэтому я не могу нарисовать вам схему с правильными электрическими обозначениями. Но я могу сфотографировать конечный результат.

Контакты 2, 3, 4 и 5 Arduino подключены к оптопарам через резистор 220 кОм. На рисунке контакты 2 и 3 управляют переключателем вперед и назад соответственно. Пин №4 и 5 отвечают за поворот налево или направо. Так, например, когда контакт 2 выдает 5 вольт, оптопара замыкает свой переключатель, который, в свою очередь, замыкает переключатель в цепи дистанционного управления автомобилем, и автомобиль должен начать движение назад.

Вводим в код

Мой ноутбук будет связываться с Arduino через последовательное соединение через USB-кабель. Цель состоит в том, чтобы отправить как можно меньше данных. Следовательно, команда отправляется только при нажатии или отпускании клавиши. Автомобиль может двигаться в четырех различных направлениях и в двух возможных состояниях (нажатое и отпущенное), то есть всего восемь уникальных команд.

На моем ноутбуке я запускаю скрипт Python, который начинает обнаруживать нажатия клавиш и отправляет команды через последовательное соединение на Arduino.Команды принимаются и обрабатываются Arduino. Он запоминает, нажата ли в данный момент клавиша или отпущена, и на основе этого устанавливает соответствующие контакты в высокий или низкий уровень.

Чтобы увидеть исходный код, перейдите в этот репозиторий Github.

Взломайте собственную радиоуправляемую машину!

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

Arduino Bluetooth RC Car Project

Создание Arduino Bluetooth RC Car - идеальный проект, который поможет новичку понять всю концепцию работы с платой Arduino. И, учитывая последний факт, этот проект очень веселый и поможет вам почувствовать себя намного увереннее, если вы все сделаете правильно.

Я рекомендую вам проверить этот проект Arduino, в котором мы используем ту же концепцию и почти те же компоненты для создания 100% автономного робота.

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

Сборка радиоуправляемой машины Arduino Bluetooth

Вот список необходимых нам деталей:

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

Нам не нужно подключать порт RX модуля Bluetooth к Arduino, потому что мы будем передавать данные только с модуля Bluetooth на Arduino, а не наоборот.

Красные кабели - это +5 В, а синие кабели - GND (Земля) на схеме. Двигатели подключаются к винтовым клеммам на приводе двигателя.

Программа

Программа использует последовательный порт для получения данных от модуля Bluetooth, а затем на основе письма, отправляемого через Bluetooth на Arduino, выбирает, что делать. Если письмо не отправлено, моторы останавливаются.

Для его питания я использовал аккумулятор на 11,1 В, и, как вы можете видеть, он работает очень быстро, хотя и не полностью заряжен.

Дальность связи Bluetooth составляет около 30 метров, но этого достаточно для такой небольшой машины, как эта.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *