Делаем машинку на радиоуправлении на Arduino Uno

Делаем машинку на радиоуправлении на Arduino Uno Лодки

Описание драйвера l298n:

  • OUT1 и OUT2 – разъёмы для подключения первого щёточного двигателя;
  • OUT3 и OUT4 – разъёмы для подключения второго щёточного двигателя;
  • VSS – вход для питания двигателей (максимальный уровень 35V);
  • GND – общий провод (не забываем соединить с аналогичным входом Arduino);
  • Vs – вход для питания логики 5V. Через него непосредственно запитывается сама микросхема L298N. Есть ещё второй способ питания, при котором 5V для L298N берётся от встроенного в модуль стабилизатора напряжения. В таком случае на разъём подаётся только питание для двигателей (Vss), контакт Vs остаётся не подключенным, а на плате устанавливается перемычка питания от стабилизатора, который ограничит питающее моторы напряжение до приемлемых 5V.
  • IN1, IN2 – контакты управления первым щёточным двигателем.
  • IN3, IN4 – контакты управления вторым щёточным.
  • ENA, ENB –контакты для активации / деактивации первого и второго двигателей. Подача логической единицы на эти контакты разрешает вращение двигателей, а логический ноль – запрещает.

В связи с тем, что на борту драйвера есть стабилизатор на 5 В. Записать Arduino UNO можно от драйвера.

Также нам понадобиться подключить джойстик по схеме, которую рассмотрим ниже. Провода сделал самодельные. Если у вас нет Dupont разъёмов, можно провода припаять к джойстику и Arduino.

Описание кода arduino машинки.

Если вы раньше не работали с Arduino, рекомендую прочитать статьи:

А также ознакомиться с уроками для начинающих.

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

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

#define pinX A0 // Горизонтальное положение джойстика (аналоговый пин)
#define pinY A1 // Вертикальное положение джойстика (аналоговый пин)

Затем инициализируем пины подключения драйвера L298n. Можно подключить и к другим драйверам по 4 проводам. В таком случае не нужно подключаться к выводам ENA и ENB, вернув перемычки на место. При таком подключении не будет плавного изменения скорости вращения двигателя.

int ENA = 9; // Включение 1 движка (цифровой пин ШИМ)
int in1 = 7;// Поворот 1 движка (цифровой пин)
int in2 = 8; // Поворот 1 движка (цифровой пин)
int ENB = 10; // Включение 2 движка (цифровой пин ШИМ)
int in3 = 5; // Поворот 2 движка (цифровой пин)
int in4 = 6;// Поворот 2 движка (цифровой пин)

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

int x_min;   //нижняя граница нейтрали по оси x
int x_max;   //верхняя граница нейтрали по оси x
int y_min;   //нижняя граница нейтрали по оси y
int y_max;   //верхняя граница нейтрали по оси y

В блоке setup() инициализируем пины подключения драйвера как выход.

int x_min;   //нижняя граница нейтрали по оси x
int x_max;   //верхняя граница нейтрали по оси x
int y_min;   //нижняя граница нейтрали по оси y
int y_max;   //верхняя граница нейтрали по оси y

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

  int x = analogRead(pinX);
  int y = analogRead(pinY);
  x_min = x - 30;
  x_max = x   30;
  y_min = y - 30;
  y_max = y   30;

Также необходимо создать небольшую функцию Motor(), которая позволит управлять двумя моторами постоянного тока.

void Motor(byte enb, bool n1,bool n2, bool n3, bool n4) {
  analogWrite(ENA, enb);
  digitalWrite(in1, n1);
  digitalWrite(in2, n2);
  analogWrite(ENB, enb);
  digitalWrite(in3, n3);
  digitalWrite(in4, n4);
}

В основном цикле loop() считываем положение джойстика и определяем ШИМ сигнал, приводим полученное значению к диапазону от 0 до 255. Что позволяет плавно изменить скорость двигателей.

Смотрите про коптеры:  Квадрокоптеры Syma X20 и Syma X20-S: отзыв и краткая инструкция по применению

  int x = analogRead(pinX);       // считываем положение джойстика
  int y = analogRead(pinY);
  if (y < y_min ) {
    int sh = map(y, y_min, 0, 0, 255);
    Motor(sh, HIGH, LOW, HIGH, LOW);
  }
  else if (y > y_max ) {
    int sh = map(y, y_max, 1024, 0, 255);
    Motor(sh, LOW, HIGH, LOW, HIGH);
  }

В зависимости от положения джойстика по оси Y двигателя вращаются вперёд или назад.

При изменение положения по оси X вращаем двигатели на встречу друг другу, что позволяет производить поворот машины на Arduino влево и вправо.

  else if (x < x_min ) {
    int sh = map(x, x_min, 0, 0, 255);
    Motor(sh, HIGH, LOW,  LOW, HIGH);
  }
  else if (x > x_max ) {
    int sh = map(x, x_max, 1024, 0, 255);
    Motor(sh, LOW, HIGH, HIGH, LOW);
  }

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

И последние строки кода отключают двигатели машинки при расположении джойстика в центральном положении.

 else
  {
    Motor(0, LOW, LOW, LOW, LOW);
  }

Скетч прост и его можно доработать или дополнить по вашему желанию.

10 электронных конструкторов на arduino с алиэкспресс / подборки товаров с aliexpress и не только / ixbt live

Еще один неплохой вариант подвижного робота-конструктора на Arduino с интересным внешним видом и отличным набором функций. Все детали продуманы, имеют хорошее качество. Его размер: 16,5×15,2×7,8 см, вес: 400 грамм. Сборка простая, не требуется пайки, что очень удобно. В состав набора входят датчики, которые позволяют роботу объезжать препятствия, реагировать на внешнее освещение и звук, а также различные детали, пульт управления и литиевая батарея. Одного заряда батареи хватает на 30 минут работы.

Arduino-машинка.

После резонанса в СМИ к Котову выехал российский посол, мужчину пообещали вернуть на родину — в Ярославскую область. Когда Алексея нашли, он выглядел так, будто «не видел никаких благ цивилизации» и «только работал, работал и работал».

Казах-рабовладелец Оразбеков Сержан был задержан, однако сегодня вдруг выяснилось, что Котов уже «не имеет к нему претензий» и «в ходе следствия отказался от своего заявления». Теперь казахстанские полицейские утверждают, что Алексей оказался в рабстве по доброй воле.

Делаем машинку на радиоуправлении на arduino uno

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

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

Для изготовления машинки, нам понадобится:
– игрушечная машинка;
– две карты Arduino Uno;
– две платы радио модуля NRF24;
– конденсатор на 470 мф, 25 вольт;
– плата драйвера двигателя L298N;
– двигатель;
– сервопривод;
– аналоговый джойстик;
– аккумуляторные батарейки;
– батарейка крона;
– две кнопки включения и выключения;
– корпус.

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

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

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

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

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

Далее надеваем на тот же винт уголок и снова фиксируем гайками.

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

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

Смотрите про коптеры:  Интеграция роботизированных сварочных решений - Robotec

Теперь необходимо соединить сервопривод к поворотной системе.

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

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

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

Представляем схему сборки джойстика или передатчика.

Ниже вы можете увидеть схему сборки приемника.

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

Как и обещали, ниже даем ссылки на коды, необходимые для программирования платы
Код для приемника: sketch_priemnik-01.rar

[759 b] (скачиваний: 3951)

Код для передатчика: sketch_peredatchik-01.rar

[374 b] (скачиваний: 2867)

Также представим короткую инструкцию по прошивке плат Arduino Uno. Плату нужно подключить к компьютеру через USB кабель. Далее с официального сайта (www.arduino.cc) нужно скачать бесплатную программу, установить ее, установить драйверы платы и прошить ее при помощи этой программы.

Если же вы используете китайскую плату, то ее драйвер можете скачать по этой ссылке:
drayver-dlya-kitayskoy-arduino-na-chipe-ch340t.zip

[178.97 Kb] (скачиваний: 837)

Кратко о робоплатформе.

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

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

Набор-конструктор для сборки "умной" машинки на arduino.

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

Покупать можно, хотя набор и не без недостатков.

Подробнее под катом.

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

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

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

На пластиковые площадки наклеена бумага, чтобы они не царапались при транспортировке.

В комплекте присутствовало всё, что было указано в описании лота:

— два мотора с редукторами,
— пара колес,
— ролик (типа мебельного, только маленький),
— две пластиковых площадки,
— сервопривод,
— поворотный кронштейн для крепления датчика расстояния,
— набор латунных стоек и винтиков-гаечек,
— ультразвуковой датчик расстояния,
— электронная плата управления двигателями,
— маленькая макетная плата,
— держатель для 6 батарей формата АА,
— держатель для батареи типа «Крона»,
— плата с микроконтроллером, Arduino-совместимая Funduino. Версия Duemilanove с небольшими доработками.
— интерфейсный USB-кабель для подключения к ПК,
— комплект соединительных проводков типа мама-мама.

Вот полезное содержимое посылки, нет только поломанной верхней площадки:

Делаем машинку на радиоуправлении на Arduino Uno

При сборке мне дополнительно понадобилось около десятка проводков типа папа-мама.

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

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

Качество изготовления электронных компонентов особых нареканий не вызывает, качество скажем так «хорошее китайское».

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

Смотрите про коптеры:  Игры Роботы — играть бесплатно онлайн на Бобик.нет!

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

Делаем машинку на радиоуправлении на Arduino Uno

Делаем машинку на радиоуправлении на Arduino Uno

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

Делаем машинку на радиоуправлении на Arduino Uno

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

Идущие в комплекте держатели для батареек я использовать не стал — запитал всю схему от пары литиевых аккумуляторов типа 18650. Также добавил в схему вольтметр и кнопку запуска программы.
Вот что получилось в итоге:

Делаем машинку на радиоуправлении на Arduino Uno

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

Плата управления двигателями.
УЗ-сенсор.
Сервопривод.

Алгоритм работы машинки простой:

— едем вперед, УЗ-сенсор отслеживает расстояние до препятствия,
— если препятствие близко останавливаемся и отъезжаем назад,
— вертим УЗ-сенсором по сторонам и определяем где до препятствий наибольшее расстояние,
— разворачиваемся в ту сторону и едем,
— все повторяется.

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

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

В общем игрушкой я доволен, мозг размял и вообще.

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

Ссылка на скетч (программу для контроллера) — вот.

Благодарю за внимание.

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

Всю электронику робо машины на Ардуино подключаем по следующей схеме. Красным с пунктиром, который отмечен проводник, подключает питание драйвера L298n от аккумулятора 18650. Красным проводником обозначено питание 5В.

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

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

Подведем итог.

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

  • Проводное управление ограничивает перемещение и при повороте больше чем на 360 градусов провод попадает под колеса.
  • Машинка умеет только ездить и поворачивать. На этом ее возможности заканчиваются.

Но благодаря этому есть и преимущества которые оценят новички впервые решившие сделать машинку на Arduino:

  • Недорогие комплектующие.
  • Простота сборки электроники.
  • Несложная программа.
  • Не используются сторонние библиотеки, не нужно ни чего дополнительно устанавливать. Достаточно взять код и загрузить его в Arduino.

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

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

Оцените статью
Добавить комментарий

Adblock
detector