ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр Вертолеты
Содержание
  1. Шаг 2: что такое робот?
  2. Что такое н-мост?
  3. 1 модель
  4. 2 модель
  5. 3 модель
  6. Ardu remote: очень простая и дешёвая аппаратура управления своими руками
  7. Видео инструкция по сборке робота на ардуино
  8. Где купить платформу и запчасти
  9. Драйвер двигателей
  10. Инструкция по сборке робота-автомобиля
  11. Как и чем управлять
  12. Конструкция, шасси и двигатели робота на ардуино
  13. Контроллер ардуино
  14. Красивый корпус
  15. Многоканальное управление
  16. Передатчик
  17. Передающая часть
  18. Питание
  19. Питание робота
  20. Подключаем bluetooth к машинке
  21. Подключаем двигатели и плату
  22. Приложение
  23. Пример платформы робота-машины на ардуино
  24. Программная реализация
  25. Пуск!
  26. Реализация в железе
  27. Результат
  28. Робот на ардуино своими руками
  29. Сборка
  30. Скетч
  31. Схема подключения
  32. Схема электропитания робота автомобиля
  33. Шаг 1: нужные части и инструмент
  34. Шаг 10: входы / датчики
  35. Шаг 11: источник питания
  36. Шаг 12: установка компонентов
  37. Шаг 13: электропроводка
  38. Шаг 14: логика управления
  39. Шаг 15: софт
  40. Шаг 16: тестирование
  41. Шаг 17: планы на будущее
  42. Шаг 3: структура / шасси
  43. Шаг 4: приводы
  44. Шаг 5: подготавливаем клеммы моторчиков
  45. Шаг 6: устанавливаем мотор
  46. Шаг 7: устанавливаем крышу
  47. Шаг 8: контроллер

Шаг 2: что такое робот?

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

Робот состоит из следующих элементов:

  1. Конструкция / шасси
  2. Привод / двигатель
  3. Контроллер
  4. Входные устройства / датчики
  5. Блок электропитания.

Каждый из этих компонентов будет объяснен простыми словами ниже.

Что такое н-мост?

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

Посмотрите на прилагаемый рисунок, чтобы получить представление о том, как работает схема Н-моста. Мост состоит из четырех электронных переключателей: S1, S2, S3 и S4 (транзисторы/MOSFET/IGBT).

Пока S1 и S4 замкнуты, а два других разомкнуты, двигатель будет вращаться вперед при положительном напряжении. Кроме того, если переключатели S1 и S4 замкнуты, а S2 и S3 замкнуты, на двигатель будет подано обратное напряжение, поэтому он будет вращаться в противоположном направлении.

Примечание: Выключатели на одной руке (т.е. S1, S2 и S3/4) никогда не должны замыкаться одновременно – это приведет к короткому замыканию.

H-мосты доступны в виде интегральных схем, или вы можете построить свой собственный мост, используя 4 транзистора или МОП-транзистора. В моем случае для управления скоростью и направлением вращения двигателей используется H-мостовая ИС LM298.

Описание разъемов:

Выход 1: двигатель постоянного тока 1 ” ” или шаговый двигатель A Выход 2: двигатель постоянного тока 1 “-” или шаговый двигатель A Выход 3: двигатель постоянного тока 2 ” ” или шаговый двигатель B Выход 4: выход двигателя B12v: вход 12 В, но можно использовать от 7 до 35 ВGND: земля5v: выход 5 В, если перемычка 12 В стоит на месте, идеально подходит для питания Arduino (и т.д.). ) В скетче Arduino, EnA активирует ШИМ сигналы для двигателя A (Пожалуйста, прочитайте раздел “Соображения по скетчу Arduino”)En1: включает двигатель AIN2: включает двигатель AIN3: включает двигатель BBEnB: включает ШИМ сигналы для двигателя B (Пожалуйста, прочитайте раздел “Соображения по скетчу Arduino”)

1 модель

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

В Pepakura Designer, замечательной программе, которая создает узоры из графики, я использовала эту картинку для создания эскиза 3D-модели:

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

Также сам Arduino (самодельный) с драйвером для SI9986:

2 модель

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

3 модель

Хотя я не полностью собрал модель, я узнал, как сделать 3D модель, чтобы получить образец, а также для чего нужны сгибы.

Шаблон был создан с использованием следующей модели:

Отличной заменой потолочной плитки является ламинат.

Сравнивая облицовку с потолком, можно отметить несколько преимуществ:

  1. Размер листа: 1000 x 500 мм.
  2. Различная толщина, я купил толщину 3 и 5 мм, но в настоящее время я использую только 5 мм.
  3. Отсутствие различных профилей и моделей.
  4. Хорошая долговечность благодаря большей толщине (для 5 мм).

В остальном они очень похожи:

  1. Малый вес.
  2. Не боится воды.
  3. Низкая стоимость и доступность.

Сначала я использовал клей “Титан”, но несколько раз переходил на “Горячий расплав”, что позволило добиться более быстрой сборки.

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

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

Была разработана, подключена и собрана плата управления arduino, состоящая из Atmega328P, радиомодуля NRf24L01, драйвера полевого транзистора и регуляторов напряжения. Также было проведено тестирование платы:

Осталось проверить плату с “большим” мотором, и установить его в плату, установить сервопривод с корпусом, загерметизировать крышку лодки, и испытать её на воде.

Я также поделюсь выкройками лодок с различными размерами для тех, кто захочет построить:

Катер_v3.1_450х173х85

Катер_v3.1_590х227х112

Катер_v3.1_750х288х142

Последующее наблюдение:

Сделал короткое видео, показывающее все основные шаги по сборке лодки

Ardu remote: очень простая и дешёвая аппаратура управления своими руками

Привет всем. Некоторое время я хотел небольшой, удобный дрон/крыло устройство; джойстик для симуляторов и Open. HD; я должен построить дельту (3d принтер) и страдать Arduino. Итог сразу вытекает:

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

Размышления и гуглеж привели к выбору BetaFPV Lite radio как образца для внешнего вида. Хотелось, конечно, Taranis X-Lite, но стики были только крупные, от подаренной товарищем бесполезной ввиду древности аппаратуры. Переключатели на 60% были использованы от неё же.
Изначально делал только USB-версию. Оно отлично работало в симуляторе FPV Freerider и как управление в Open.HD линке, но мысль прилепить QCZEK и автономное питание уже овладела мной бесповоротно.

В итоге результат был следующим.

→ Гитхаб

Видео:

На githab вы найдете эскиз, схему, используемые библиотеки, а также 3D-модели и исходные тексты для твердого тела.

Он относительно прост в сборке и требует только пайки проводов и резистивного делителя, который является опциональным. Для работы с Qczek LRS я обращусь к сайту разработчика и к хорошим видеороликам на YouTube Джулиана Араго и Сани Арейоу.

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

Можно ограничиться версией usb без питания и без LRS, так как LRS используется для других проектов, получающих сигнал CPPM 8/10ch. QCZEK предлагает модули мощностью 0,1 или 1 Вт с частотами 433/868/915 МГц. Я не рекомендую 433 из-за чрезмерного шумового наводки. Кроме того, я не понимаю, зачем нужен 1Вт, при 100мВт вполне реально пульсировать на 10км. Вам стоит рассмотреть антенны на 915мгц и готовые антенны для популярных дальнобойных моделей frsky, если вы планируете их покупать. Стоимость высока, но есть гарантия, что работа будет выполнена. Хвост только что был спаян с двумя полосками медного провода D0,4 мм, длиной 8,00 см, и помещен в корпус антенны прямо в центре 3D-принтера. Во время работы я не испытал никаких повреждений или падения RSI на модели в пределах жилого дома, так что я остался доволен.

Для Open. HD (версия USB) невозможно использовать переключатели SW4 или SW5, поскольку количество каналов ограничено 8. Возможно, в будущем это ограничение будет снято. Будьте внимательны при подключении к Open. Из-за модуля зарядки наземная малина потребляет больше энергии. Имеет смысл иметь концентратор с внешним питанием.

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

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

Если значения не изменились в течение 30 секунд, раздастся короткий звуковой сигнал. Разумеется, все это можно изменить или отключить в скетче. Это можно сделать, например, просто откомментировав define.

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

Кроме того, я подключил к qczek модуль jdy-30 bluetooth и передаю через него телеметрию mavlink, которую принимает DroidPlanner 2.8 или Telemetry Viewaver на моем мобильном телефоне Android. В дополнение к mavlink-дисплею я, вероятно, добавлю консоль. Пусть это выглядит дорого, как Crossfire xD

Жду вопросов и дальнейшего развития вашей работы. Спасибо за внимание.

Видео инструкция по сборке робота на ардуино

Это видеоурок от нашего партнерского канала ArduMast Club о том, как построить автомобиль-робот на Arduino.

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

Где купить платформу и запчасти

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

Смотрите про коптеры:  скачать Uncrashed: FPV Drone Simulator (последняя версия) бесплатно торрент на ПК

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

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

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

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

Инструкция по сборке робота-автомобиля

О том, как собрать универсального робота на колесной или гусеничной платформе, мы подробно расскажем в нашей статье. Управление будет осуществляться с помощью микроконтроллера Arduino nano. Предлагаем вам посмотреть видео, подготовленное нашим партнером, каналом ArduMast Club, в конце статьи, если вы не большой любитель читать.

Как и чем управлять

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

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

Нам нужно посылать импульсы длительностью 0,9 мс с интервалом 20 мс, если мы хотим привести привод в крайнее левое положение, 2,1 мс для крайнего правого, и такой же интервал для среднего. Интересно, что регуляторы скорости ведут себя так же. Те, кто в теме, скажут вам, что это

Используя сервомашинку, я собрал для нее макетную плату – сервотестер для ATtiny13. Затем я купил сервомашинку в местном магазине и сделал на основе макетной платы сервотестер для ATtiny13. Как оказалось, у ШИМ есть несколько подводных камней.

На диаграмме выше рабочий цикл (отношение ширины импульса к длительности периода) составляет от 5% до 10% (здесь и далее я рассматриваю импульсы длительностью 1,0 мс и 2,0 мс как крайние значения) для 256-символьного ШИМ-счетчика ATtiny13, что соответствует значениям от 25 до 50.

Однако это предполагает, что для заполнения счетчика требуется 20 мс, поэтому для частоты 9,6 МГц и делителя 1024 нужно ограничиться 187 (TOR), и в этом случае мы получим частоту 50,134 Гц. В большинстве (если не во всех) сервомашин нет точного генератора частоты, что приведет к тому, что частота управляющего сигнала будет немного переменной.

Если оставить счетчик TOR на 255, частота управляющего сигнала будет 36,76 Гц. Некоторые приводы будут работать (возможно, с глюками), но не все. Таким образом, 187-разрядный счетчик имеет значение от 10 до 20 для каждого из пяти разрядов, всего 10 чисел, что немного дискретно. На случай, если вы захотите поэкспериментировать с делителем и тактовой частотой, вот таблица сравнения 8-битного ШИМ:

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр
ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

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

Конструкция, шасси и двигатели робота на ардуино

Чтобы двигаться, что-то должно быть оснащено колесами, гусеницами или манипуляторами-ногами. Варианты совершенно неограниченны, вы можете смешивать и сочетать абсолютно любые комбинации. Как правило, в качестве первоначального выбора мы выбираем готовые платформы с Aliexpress.

Двигатель шасси ардуино
Двигатель, шасси и колеса машинки на ардуино

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

Контроллер ардуино

Если мы обсуждаем проекты на этой платформе, она абсолютно необходима. Роботы обычно строятся с использованием плат Arduino Uno и Nano. Mega будет слишком большой, Pro Mini сложнее подключить к компьютеру и соединить с другими компонентами, а Leonardo требует дополнительных навыков в программировании, они дороже и их главное преимущество (тесная интеграция с компьютером в качестве периферийного устройства) в данном случае не слишком востребовано.

Платы E SP8266 и ESP32 также являются вариантами, однако проект не сможет управлять машиной через WiFi. Что касается самих плат и требуемого для них программирования, то в этой статье мы будем говорить в основном о Uno или Nano.

Красивый корпус

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

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

Многоканальное управление

В настоящее время у нас только один сервопривод, но для самолета их нужно как минимум три, а также контроллер скорости. “Прямое” решение – использовать микроконтроллер с четырьмя каналами 16-битного ШИМ, однако такой контроллер будет дорогим и, вероятно, займет много места на плате.

В качестве второго варианта можно написать программный ШИМ, но это требует ресурсов процессора. Если снова посмотреть на диаграммы сигналов, то 80% времени нет никакой информации, поэтому, возможно, более разумно для ШИМ задавать только 1-2 мс импульсы.

Если рабочий цикл изменяется в таком узком диапазоне, не проще ли формировать и считывать импульсы хотя бы на 10-90%? Действительно ли необходимо тратить 80% времени на этот неинформативный сигнал? Эти 80% могут занимать импульсы для других исполнительных механизмов, тогда этот сигнал делится на несколько разных импульсов.

По сути, за период в 20 мс может быть 10 импульсов длительностью 1-2 мс, а затем отдельные импульсы демультиплексируются в 10 различных сигналов, каждый из которых имеет длительность 20 мс. Подобная схема была нарисована в PROTEUS:

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

Этот демультиплексор использует 74HC238 в качестве входа E, на который поступают импульсы с выхода микроконтроллера. ШИМ-импульсы с частотой 500 Гц и рабочим циклом в диапазоне 50-100%. Дежурный цикл каждого импульса указывает на состояние каждого канала. Взгляд на сигнал на входе E:

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр


Для того, чтобы 74HC238 знал на какой выход подать текущий сигнал используем PORTC микроконтроллера и входы A, B, C демультиплексора. В результате на выходах получаем такие сигналы:

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

Выходные сигналы получаются при правильной частоте (50 Гц) и рабочем цикле (5-10%). В результате вам необходимо сгенерировать ШИМ частотой 500 Гц и рабочим циклом 50-100%. Вот таблица, показывающая, как установить делитель 16-битного счетчика и TOR:

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

Число возможных значений ШИМ ровно в 1000 раз меньше частоты таймера.

Передатчик

// Библиотека передатчика
#include <VirtualWire.h>

void setup() 
{ 
    // Запуск передатчика
    vw_set_ptt_inverted(true);
    vw_setup(1000); // Bits per sec 
}

void loop() 
{
    // чтение показаний с переменного резистора
    int sensorValue = analogRead(A0);

    // отправляем значение
    send(sensorValue); 
}

void send(int param) 
{ 
    // конвертируем int в массив из 2 байт
    uint8_t msg[2];
    int len = 2;
    msg[0] = highByte(param);
    msg[1] = lowByte(param);

    // отправляем непосредственно в радиоканал
    vw_send(msg, len);
    // ждем пока сообщение не уйдет целиком
    vw_wait_tx(); 

}

Передающая часть

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

К компьютеру и посылать команды через терминал. Чтобы декодер мог определить начало посылки, а затем выбрать, какие посылки предназначены для него в будущем, сначала отправьте байт-идентификатор, затем 8 байт для определения состояния канала. В дальнейшем при использовании радиомодулей, когда вы выключаете передатчик, все двигатели начинают дергаться.

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

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

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

image

Но потом мне пришла в голову одна мысль. Когда я был моложе, мне нравились все виды авиасимуляторов: “Ил-2 Штурмовик”, “Lock On”, “MSFSX”, “Ка-50 Black Shark” и другие. Что касается джойстика, то у меня был Genius F-23 и я хотел присоединить его к вышеописанному программному обеспечению с ползунками. Я погуглил, как это реализовать, и нашел следующее

И это сработало! Джойстик в самолете гораздо удобнее, чем маленький стик на пульте дистанционного управления. Вместе эти четыре компонента показаны на первом рисунке: нетбук, джойстик, преобразователь FT232 и передатчик HM-T868.

Питание

Из-за своей простоты радиомодуль MX-05V чрезвычайно восприимчив к внешним помехам. Любой электродвигатель, даже такой маленький, как в сервомашинке, может вызвать у него проблемы. Чтобы минимизировать влияние электродвигателя (это относится только к двигателям с коммутатором), питание силовой части должно быть отделено от приемника. Оба должны иметь общий “минус”. На этой схеме видно окончательное подключение приемника.

Питание робота

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

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

Питание робота
Питание робота на Ардуино

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

  • Обычные батарейки типа АА. Обратите внимание, что Arduino Uno, Nano и большинство двигателей, используемых в робототехнике Arduino, требуют напряжения в диапазоне 6-9 вольт. Поэтому необходимо последовательно соединить как минимум четыре батарейки 1,5 В, причем сами батарейки должны быть хорошего качества и обеспечивать достаточный для работы ток. Например, большинство солевых батарей не соответствуют этим критериям. Батарейки AAA почти никогда не используются для создания машин arduino из-за их низкой емкости (хотя они могут использоваться в миниатюрных моделях, где размер наиболее важен).
  • Батарея AA. Здесь существует еще большее ограничение по напряжению и току. Большинство батарей выдают 1,2 вольта, поэтому им нужно больше, чтобы “поймать” необходимые 6-9 вольт. Возможность перезарядки является несомненным преимуществом.
  • Литиевые батареи 18650. Это уже “серьезная артиллерия”, которая позволяет получить длительное время автономной работы, возможность перезарядки и приемлемые характеристики тока и напряжения. Рабочее напряжение батарей этого типа составляет 3,7 В, что позволяет собрать полную цепь питания всего из двух элементов.
  • Другие источники питания. Это могут быть как более мощные и громоздкие никель-металл-гидридные батареи, так и многочисленные “плоские” литий-ионные, используемые в дронах, смартфонах и другой портативной цифровой технике.
Смотрите про коптеры:  приемник передатчик модель самолета на АлиЭкспресс — купить онлайн по выгодной цене

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

Подключаем bluetooth к машинке

Мы собираемся использовать модуль Bluetooth через SoftwareSerial (библиотеку SoftwareSerial.h), поэтому подключаем модуль блютуз к 3 и 4 цифровым пинам ардуино. RX к D3, TX к D4

Схема ардуино робота машинки 5
Схема подключения Bluetooth к ардуино машинке

Платформа для робота готова! Осталось только загрузить прошивку Arduino и загрузить приложение для смартфона RC CAR. На нашем сайте представлен список приложений для Android, которые работают с Arduino.

Подключаем двигатели и плату

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

Установите контроллер двигателя на платформу так, чтобы охлаждающая головка находилась спереди. В противном случае необходимо переписать программу для микроконтроллера.

Ардуино робот драйвер
Драйвер двигателя для Ардуино робота

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

Питание для arduino и других электронных компонентов мы будем брать с контроллера двигателя.

Приложение

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

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

Сначала устройство должно быть включено и сопряжено со смартфоном через Bluetooth. 0000 или 1234 – это пароль модуля. Затем откройте приложение и нажмите на “Подключиться к аппарату”. Подключитесь к модулю HC-06. Светодиод на нем должен перестать мигать.

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

Кроме того, я не публиковал это приложение в Google Play, поэтому смартфон может заявить, что он безопасен. Но вы можете смело устанавливать его. В нем все работает безопасно.

Пример платформы робота-машины на ардуино

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

Робот на Ардуино
Робот на Ардуино

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

  • Контроллер Arduino (в нашем случае Arduino Nano).
  • Контроллер двигателя L298N.
  • Мотор-редукторы.
  • Корпус и шасси для установки колес и оборудования
  • Корпус для аккумуляторов 18650 с выключателем.
  • Запасные кабели.

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

  • Датчик расстояния и серводвигатель, на котором он установлен.
  • Инфракрасные линейные датчики.
  • Светодиоды для сигнализации и “благоустройства”.
  • Пьезоэлектрический громкоговоритель – звуковые сигналы.
  • Модуль Bluetooth (если машина должна управляться дистанционно).
  • Крышка датчика (облегчает замену).
  • Модуль зарядки аккумулятора.
  • Сами аккумуляторы.
Схема ардуино-робота машинки 1
Общая схема машинки на Ардуино

Программная реализация


Для ATmega8 с тактовой частотой 16МГц в AtmelStudio6 все реализуется следующим образом: вначале задефайним значения счетчика для крайних положений сервомашинок:

#define LOW 16000U
#define HIGH 32000U

Затем инициализировать генератор ШИМ в таймере/счетчике1 :

OCR1A = HIGH; //Устанавливаем ТОР
TCCR1A = 0<<COM1A1 | 0<<COM1A0 | 1<<COM1B1 | 0<<COM1B0 | 0<<FOC1A | 0<<FOC1B | 1<<WGM11 | 1<<WGM10; //Запускаем неинвертированный Fast PWM на выходе OC1B с верхним значением счетчика, которое записанно в OCR1A
TCCR1B = 0<<ICNC1 | 0<<ICES1 | 1<<WGM13 | 1<<WGM12 | 0<<CS12 | 0<<CS11 | 1<<CS10; //предделитель 1
TIMSK = 1<<OCIE1A | 1<<OCIE1B | 0<<TOIE1; //Разрешаем прерывания по совпадению

Еще предстоит выполнить прерывания:

Пуск!

Теперь, когда у вас есть самолет и радиоуправление, давайте взлетим! Результатом первого полета над асфальтом стали перегоревший двигатель и сломанный фюзеляж. Второй полет был совершен над более мягкой поверхностью:

Следующие 10 полетов также не оправдали ожиданий. Сказалась сильная дискретность джойстика – для крена он выдавал всего 16 значений (вместо возможных 256), да и для тангажа было не лучше. Однако во время испытаний самолет был существенно поврежден и не подлежит ремонту:

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

Реализация в железе

Разобравшись с теорией, пришло время ее реализовать. Вкратце, микропроцессор ATmega8A – это мозг системы, тактируемый 16Mhz кристаллом (не потому, что я хотел 16000 положений сервоприводов, а потому, что они у меня валялись). UART будет подавать управляющие сигналы на МК. В результате получилась вот такая схема:

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

В конце концов, появился такой платок:

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

Два трехконтактных разъема я не паял, потому что они мне не нужны, и не подряд они припаяны, потому что у меня нет отверстий для металлизации, а в нижней дорожке разъема с обеих сторон можно было бы заменить провод, но программа без проблем выводит сигнал на любой разъем. Также отсутствует 78L05, потому что в моем моторном стабилизаторе есть встроенный стабилизатор (VES).


Для получения данных к плате подключается

HM-R868:

ARDU Remote: очень простая и дешёвая аппаратура управления своими руками / Хабр

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


Плата обошлась примерно в 20грн = $2.50, приемник — 30грн = $3,75.

Результат

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

Робот на ардуино своими руками

Процесс создания автомобиля-робота (Arduino Car) требует более глубокого понимания сразу нескольких важных компонентов, поэтому не стоит переходить к созданию автомобилей без предварительного знакомства с платформой Arduino.

Робот машина на Ардуино
Робот машина на Ардуино

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

Сборка

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

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

Инструменты, которые могут понадобиться:

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

Он дешевый и сернистый. Самое главное, что она работает.

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

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

В идеале доски должны быть прикручены более короткими 3-мм болтами. Таких у меня тоже не было. Поэтому пришлось просверлить в оргстекле отверстия 2 мм и прикрутить доски саморезами. Держится довольно хорошо.

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

Как и модуль Bluetooth, батарея также крепится снизу.

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

Скетч

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

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

Через контакты VIN и GND питание на плату поступает от “Кроны”. Для питания драйвера двигателя также предусмотрены порт 12 В и GND.

Arduino подает 3,3 вольта на модуль HC-06 Blutooth. Он также отлично работает, если подключить его к 5 вольтам. Выход RX этого модуля подключается к TX на Arduino, а TX Arduino к RX, т.е. наоборот.

Смотрите про коптеры:  Инструкция и руководство пользования для Квадрокоптер Syma X25Pro дополнительная батарея в комплекте белый - скачать, читать в интернет магазине DNS.

С драйвера двигателя необходимо снять две боковые перемычки – Enable. Они позволят нам управлять скоростью вращения двигателей через указанные ниже контакты. Кроме того, эти контакты подключены к Arduino через его порты ШИМ (отмечены знаком ~). На схеме это порты 3 и 5.

Питание на драйвер Arduino подается с портов 2, 4, 6 и 7, двигатели питаются от входа. Сами двигатели подключены к выходам драйвера A и B.

Необходимо поменять провода на двигателе в Выходе, если после сборки и прошивки машина движется вперед, но оба колеса вращаются в противоположные стороны.

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

Если при повороте налево автомобиль поворачивает направо, поменяйте местами А и В.

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

Схема электропитания робота автомобиля

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

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

Схема ардуино робота машинки 2
Схема питания и подключения двигателей в ардуино автомобиле

В Интернете можно найти множество подобных примеров, поэтому все кажется вполне стандартным. Однако у этой схемы есть серьезный недостаток: в случае полной разрядки аккумулятора он перестанет функционировать.

Машинка на Ардуино
Машинка на Ардуино

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

Схема ардуино робота машинки 3
Схема питания с контролем разряда аккумулятора

Теперь батареи защищены, но их невозможно перезарядить.

Питание ардуино
Питание робота Ардуино

Когда вы захотите зарядиться, вы можете использовать модуль повышения напряжения для увеличения напряжения до нужного уровня, который определяется количеством использованных серий батарей. Мы рекомендуем установить дополнительный разъем для последующей зарядки пятивольтовым блоком питания, поскольку он имеет порт micro-USB, который может сломаться при регулярном использовании. Для зарядки двух литий-ионных аккумуляторов выходное напряжение должно быть установлено на 8,4 вольта.

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

Шаг 1: нужные части и инструмент

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

Запчасти:

  1. Комплект шасси 4WD робота (GearBest)
  2. Arduino Nano (GearBest)
  3. Модуль LM298 H-bro (GearBest)
  4. Модуль HC-06 Bluetooth (Amazon)
  5. Литий-ионные батареи 2 x 18650 (GearBest)
  6. Отсек для батарей 2x 18650 (GearBest)
  7. Небольшая макетная плата (GearBest)
  8. Кабели 0. 5 мм2
  9. Провода с перемычкой между витками (Amazon)
  10. Провода с перемычкой между витками (Amazon)
  11. Малярная лента, изолента или аналогичные материалы (Amazon)

Робот, избегающий препятствий:

Ультразвуковой модуль измерения расстояний (GearBest) H C-SR04

Необходимый инструмент:

  1. Паяльник (Amazon)
  2. Кусачки (Amazon)
  3. Стриппер для провод (GearBest)
  4. Клеевой пистолет (GearBest)

Шаг 10: входы / датчики

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

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

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

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

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

  1. АА щелочные батареи (неперезаряжаемые)
  2. АА никель-металлгидридные или никель-кадмиевые батареи (перезаряжаемые)
  3. Литий-ионные батареи
  4. Литий-полимерные батареи.

Выбор аккумуляторов, подходящих для ваших нужд, имеет решающее значение. Всегда рекомендуется приобретать аккумуляторы достаточной емкости. Мое устройство питалось от пары литий-ионных аккумуляторов 18650 емкостью 2600 мАч. Чтобы увеличить время автономной работы, используйте большой аккумуляторный блок, например, Turnigy 5A.

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

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

  1. PowerEx AA Charger-Analyzer (Amazon)
  2. XTAR LiIon Battery Charger (Amazon)
  3. Turnigy LiPo Battery Charger (Amazon)

Шаг 12: установка компонентов

Цельный контур устанавливается на крыше. Батарейный отсек, контроллер двигателя LM 298 и небольшая печатная плата крепятся с помощью горячего клея, но могут быть также прикручены. Модуль Bluetooth крепится с помощью скотча. Вставьте Arduino nano в печатную плату.

Шаг 13: электропроводка

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

O TORA отвечает за два двигателя правой стороны; MOTORB отвечает за два двигателя левой стороны. Компоненты должны быть подключены в соответствии с инструкциями:

Подключение к двигателю :

Out1 -> красный провод левого двигателя ( ) Out2 -> черный провод левого двигателя ( – ) Out3 -> красный провод правого двигателя ( – ) LM298 – > ArduinoIN1 -> ArduinoIN1

D5IN2-> D6IN2 ->D9IN2-> D10Модуль Bluetooth -> ArduinoRx-> TxTx ->RxGND -> GNDVcc -> 3.3VПитание12V — > красный провод батарейGND -> черный провод батарей и пин GND на Arduino5V -> соедините с пином 5V Arduino

Шаг 14: логика управления

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

Шаг 15: софт

Для компонента картинки не нужны ни библиотеки, ни другие компоненты. Как только вы поймете логическую таблицу из последнего шага, вы можете написать свой собственный код. Я просто скопировал чужой код и не потратил много времени на написание своего. Робот-машина управляется с помощью смартфона, подключенного к Bluetooth-модулю (HC-06).

Шаг 16: тестирование

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

Если двигатели вращаются в противоположном направлении, поменяйте местами провода.

Шаг 17: планы на будущее

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

  1. Добавление ультразвукового датчика для обхода препятствий
  2. Использование модуля WiFi, такого как ESP8266 или Node MCU, вместо Bluetooth для увеличения расстояния управления.
  3. Добавление солнечной батареи для зарядки аккумуляторов.

Шаг 3: структура / шасси

Структура состоит из физических компонентов. Роботы оснащены физическими компонентами, которые двигаются определенным образом для выполнения задачи. Структура робота состоит из шасси и колес.

Шаг 4: приводы

Под приводом можно понимать устройство, которое преобразует энергию (в робототехнике энергия – это электричество) в физическое движение. Большинство приводов производят вращательное или линейное движение.

В нашем случае приводом является двигатель постоянного тока со скоростью 3000 об/мин и крутящим моментом 0,002 Нм. Новая скорость уменьшается в 48 раз (3000/44 = 68 об/мин), а крутящий момент увеличивается в 48 раз (0,002 x 48 = 0,096 Н-м).

Шаг 5: подготавливаем клеммы моторчиков

Отрежьте 4 красных и черных провода длиной около 12-15 см. Я использовал провод сечением 0,5 мм2. Зачистите концы проводов. Припаяйте провода к клеммам двигателя.

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

Шаг 6: устанавливаем мотор

Акриловые распорки должны крепиться с помощью двух длинных болтов и двух гаек. Для наглядности можно посмотреть видео.

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

Шаг 7: устанавливаем крышу

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

Шаг 8: контроллер

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

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

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

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

Микроконтроллер может вращать двигатель в одном направлении, но если вы хотите, чтобы он вращался и вперед, и назад, вам понадобится схема H-моста. Вот что это такое. Далее я объясню это.

Оцените статью
Радиокоптер.ру
Добавить комментарий

Adblock
detector