Колесный робот на ардуино

Машины бывают разные…

Решив приобщить сына к высоким технологиям, подарил ему набор для сборки робота на основе контроллера ARDUINO. Про ARDUINO информации полно в интернете…

Я хочу рассказать про робота и те «особенности», которые мы встретили при его постройке.
Выбор пал на четырехколесный робот. Заказывал на Алиэкспресс в «максимальной» комплектации, с бесплатной доставкой – вышло около 3000 руб.
ru.aliexpress.com/item/Fr…1112132&shopNumber=110055
Судя по описанию из этого набора частей, должно получиться «чудо» способное слушать команды от пульта дистанционного управления, от телефона по блютуз, уметь ездить по полосе и само определять препятствия – с помощью сонара.

Ждал не долго – около 20 дней, но вот пришло не все…

В посылке не хватало двух моторов-редукторов, вместо них был колесо от «тумбочки». Написали поставщику – недостающие детали обещали дослать.
Но это не основание ждать! Руки чешутся!
И так в наличии:
1. Arduino UNO R3.
2. Плата («драйвер») для управления 2-мя DC моторами — L298N Dual H-Bridge Stepper Motor Driver Controller (WB291111).
3. Плата расширения для подключения датчиков и «потребителей» — Arduino sensor shield v5.
4. Ультразвуковой измеритель расстояния HC-SR04 Ultrasonic Module Distance Measuring Sensor.
5. Модуль слежения за полосой с датчикам — 4 x Line inductive module.
6. ИК датчик с пультом — HX1838 Infrared Remote Control Module.
7. Модуль Блютуз — HC-06 wireless Bluetooth.
8. Моторы постоянного тока (DC) с редукторами с вращением в обе стороны –2 шт.
9. Колеса – 2 шт.
10. Сервопривод SG-90 TOWER.
11. Кронштейн для камеры с функцией поворота / наклона платформы.
12. Заготовки для четырехколесной платформы — 4 Wheel Drive Mobile Robot Platform – 2 шт.
13. Пластиковый бокс держатель для 4 батареек типа АА.
14. Пластиковый бокс держатель для батареек типа «Крона».
15. Макетная плата.
16. Тумблер – выключатель питания.
17. Провода для соединения модулей.
18. Крепеж.

Что бы было веселее – в коробке была инструкция по сборке трех колесного шасси – два колеса ведущих и одно подруливающее от «тумбочки». А вот инструкции по установке плат и датчиков, схемы соединения и «скетчей» не было.
Не беда, подумал я. В наш век — Google мне в помощь! А вот тут оказалось все еще «веселее» – несмотря на то, что наборы «выпускаются» не первый год, готового решения нет! С трудом через англоязычный сайт нашел в объявлении о продаже подобного набора со ссылкой на инструкцию – вольный перевод с китайского.
www.dx.com/ru/p/arduino-c…-kits-146418#.VldPetLhCt8
Нашлись и неплохие описания с российских просторов:
tim4dev.com/arduino-instruction-project-robocar4w/
Но полных и «универсальных» ответов, типа «вставь А в Б», «подключи В к Г», «загрузи Д в Е» нет.
Тем более интересней разобраться самому.
Те, кто со мной согласен, дальше не читайте! У вас свой путь «открытий» 🙂
Для всех остальных – начнем с шасси…

Читайте также:  Клещи переставные гаечный ключ 250 мм knipex

Сборка шасси.
Для сборки нам понадобится:
Из набора.
1. Arduino UNO R3.
2. «Драйвер» для управления моторами.
3. Моторы постоянного тока (DC) с редукторами –2 шт.
4. Колеса – 2 шт.
5. Платформа из оргстекла.
6. Пластиковый бокс держатель для 4 батареек типа АА.
7. Пластиковый бокс держатель для батареек типа «Крона».
8. Провода для соединения модулей.
9. Крепеж.
Дополнительно.
1. Выключатель двух полюсной.
2. Изолента и/или термоусадка (для изоляции проводов).
3. Скотч двухсторонний.
4. Винты и гайки 3 мм (в наборе их мало и они короткие).
Инструмент.
1. Дрель.
2. Набор сверл (3 мм, 5 мм).
3. Пассатижи.
4. Отвертка.
5. Ножницы.
6. Паяльник.
7. Олово, канифоль, паяльная кислота.

Изначально шасси должно было быть четырехколесным и полноприводным. Шасси должно состоять из двух пластин из оргстекла, между которыми размещены 4 мотора редуктора и плата «драйвера» управления двигателями.
В моем случае пришлось делать трех колесное шасси – два колеса ведущих и одно подруливающее в «хвосте». Использовал одну пластину шасси.
Учитывая, что отверстия на пластинах шасси для крепления платы ARDUINO и других блоков не предусмотрены — компоновка размещения свободная, поэтому:
1. Размещаем блок ARDUINO так, что к нему мог быть доступ. Особенно важно, чтобы доступ был к разъему USB. Крепление сделал с помощью винтов диаметром 3 мм прикрученных к пластине шасси.

2. Размещаем «драйвер» моторов – его в принципе можно разместить и снизу пластины шасси – как я сделал первоначально (Вариант 1), но из-за особенности работы подруливающего колеса (об этом позже), решил поставить «драйвер» вверху. Крепление так же с помощью винтов прикрученных к пластине шасси.
3. Размещаем элементы/блоки питания. Все зависит от выбранной схемы питания, об этом я напишу ниже. У меня в процессе «эволюции» размещение элементов питании менялось несколько раз (Вариант 1, 2, 3). Для крепления блоков я использовал двухсторонний скотч. За время испытаний такое «крепление» не подвело.
4. Размещаем выключатель питания. Он должен быть в легкодоступном месте. Я поставил сверху – что бы не переворачивать постоянно «роботягу». Если вы как я и будете строить раздельное электропитание — для ARDUINO и электродвигателей, то стандартный выключатель вам не подходит – нужен двухполюсной – что бы одним движением обесточивать обе схемы. Хотя можно и однополюсным – отключать «минус» от обоих схем.

Читайте также:  Как сделать эмаль для значков

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

Отдельный вопрос – размещение третьего колеса. Не смотря на простоту конструкции и очевидность решения, не все так просто! Собрав Вариант 1 и начав испытания, я не мог заставить робота ехать прямо!

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

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

Каждое колесо приводится в движение редуктором с мотором.

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

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

Используемые датчики: ультразвуковые, инфракрасные.

Для индикации текущего режима работы используется полноцветный LED. В режиме радиоуправления светодиод мигает, при самостоятельном режиме — светится постоянно, синий цвет — откат по памяти.

Крепление деталей к платформе робота осуществляется нейлоновыми болтами, гайками, стойками.

Состав пульта: Ардуино Нано, джойстик, передатчик 433МГц, клавиатура на 5 кнопок.

Видео испытаний инфракрасных датчиков: https://youtu.be/F4poZUIt5Mc

Видео испытаний ультразвуковых датчиков: https://youtu.be/s-vzDc4BbiA

По части программирования Arduino:

KemaUS — класс для работы с ультразвуковыми датчиками. При расстоянии до препятствия более 30см робот движется вперед, сигнал на LED индикаторе зеленый. При расстоянии 15 — 30 см — он останавливается, LED индикатор желтый. При приближении препятствия менее чем на 15 см — робот едет назад, LED индикатор красный.

KemaIR — класс для работы с инфракрасными датчиками. Данные датчики срабатывают на определенном расстоянии, в данном случае чуть ниже плоскости, на которой стоят колеса робота. Если хотя бы один срабатывает, то робот останавливается.

Читайте также:  Клинкерная плитка или керамогранит что лучше

KemaState — класс для сохранения состояния робота. В него записываются показания датчиков, скорость и поворот, если есть. В скетче для Ардуино Меги используются две переменные этого класса: текущее и предыдущее состояния. Также используется в классе KemaMem.

KemaDrive — класс для управления моторами. Скорость отрицательная — назад, положительная — вперед. Отрицательный поворот — влево, положительный — вправо.

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

зеленый — робот едет вперед (нет препятствий);

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

Каждое колесо приводится в движение редуктором с мотором.

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

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

Используемые датчики: ультразвуковые, инфракрасные.

Для индикации текущего режима работы используется полноцветный LED. В режиме радиоуправления светодиод мигает, при самостоятельном режиме — светится постоянно, синий цвет — откат по памяти.

Крепление деталей к платформе робота осуществляется нейлоновыми болтами, гайками, стойками.

Состав пульта: Ардуино Нано, джойстик, передатчик 433МГц, клавиатура на 5 кнопок.

Видео испытаний инфракрасных датчиков: https://youtu.be/F4poZUIt5Mc

Видео испытаний ультразвуковых датчиков: https://youtu.be/s-vzDc4BbiA

По части программирования Arduino:

KemaUS — класс для работы с ультразвуковыми датчиками. При расстоянии до препятствия более 30см робот движется вперед, сигнал на LED индикаторе зеленый. При расстоянии 15 — 30 см — он останавливается, LED индикатор желтый. При приближении препятствия менее чем на 15 см — робот едет назад, LED индикатор красный.

KemaIR — класс для работы с инфракрасными датчиками. Данные датчики срабатывают на определенном расстоянии, в данном случае чуть ниже плоскости, на которой стоят колеса робота. Если хотя бы один срабатывает, то робот останавливается.

KemaState — класс для сохранения состояния робота. В него записываются показания датчиков, скорость и поворот, если есть. В скетче для Ардуино Меги используются две переменные этого класса: текущее и предыдущее состояния. Также используется в классе KemaMem.

KemaDrive — класс для управления моторами. Скорость отрицательная — назад, положительная — вперед. Отрицательный поворот — влево, положительный — вправо.

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

зеленый — робот едет вперед (нет препятствий);

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

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

Adblock detector