Arduino машинку собрать своими руками достаточно просто и в интернете есть много примеров с исходными материалами и с инструкций по сборке. Я также собирал машинку с радио управлением на Arduino. Подробнее читайте тут.
Сегодня речь пойдет про Arduino машину, которую просто собрать при относительно небольшой стоимости комплектующих. Для управления будем использовать ни bluetooth и ни Wi-Fi, а обычную проводную связь. В качестве пульта будет выступать джойстик. Давайте рассмотрим подробнее этапы сборки и программирования машинки на Arduino.
Собираем Arduino машину.
Машинку можно собрать на базе «робоплатформы на ардуино», которую можно купить тут. Или самостоятельно напечатать на 3D принтере раму. Исходные материалы вы можете скачать внизу статьи в разделе «Файлы для скачивания».
Для проекта робот машина на Arduino понадобиться:
- Робоплатформа с мотор-редукторами и колёсами.Так же можно распечатать платформу и купить 2 мотор-редуктора. Файлы для печати будут внизу статьи в разделе «файлы для скачивания »;
- 2 бокса под аккумулятор 18650;
- 2 аккумулятора формата 18650;
- Драйвер – L298n;
- Соединительные провода;
- Переключатель;
- KY-023 Джойстик;
Кратко о робоплатформе.
Машинка на пульте управления, испытание радиоуправляемой машинки | алиэкспресс обзор
В связи с тем, что робоплатформу использовал уже в предыдущем проекте. А часть схемы оставили без изменения. Поэтому останавливаться на описании не буду. Вы можете купить готовую робоплатформу, чтобы не думать о том, как её сделать или собрать. В данном разделе статьи рассмотрим схему питания и драйвер l298n.
Драйвер L298N используется для управления двигателями постоянного тока. Схема модуля, состоящая из двух H-мостов, позволяет подключать к нему два щёточных двигателя постоянного тока. При этом есть возможность изменять скорость и направление вращения моторов.
Описание драйвера 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.
Схема подключения электроники робота машину на Ардуино.
Всю электронику робо машины на Ардуино подключаем по следующей схеме. Красным с пунктиром, который отмечен проводник, подключает питание драйвера L298n от аккумулятора 18650. Красным проводником обозначено питание 5В.
У драйвера убираем перемычки, что позволяет плавно регулировать скорость вращения и подключаем 6 проводов управления драйвером L298n к Arduino. Но в связи с тем, что ход перемещения джойстика не большой, плавное регулирование скорости практически не заметно. Поэтому подключить можно и по 4 провода и использовать другие драйвера, например L9110S.
Для управления подключаем джойстик по 4 проводам. Пятый контакт на джойстике нужен для получения сигнала нажатия на джойстик. Данную функцию использовать не будем. Поэтому достаточно 4 провода для подключения.
Описание кода Arduino машинки.
Если вы раньше не работали с Arduino, рекомендую прочитать статьи:
- Что такое Arduino?
- Программа Arduino IDE бесплатно для Windows, Mac OS, linux. Прошиваем Arduino
- Подключаем к Arduino джойстик. Управление servo сервоприводом.
В связи с тем, что машинка делалась по принципу как можно проще. Код также получился небольшой и простой. При желании его можно изменить или дополнить. Например, убрать изменение скорости вращения двигателя. Оставить просто включение или выключение вращение двигателя в нужном направлении.
Первым делом в скетче управления машинкой на 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)
В основном цикле loop() считываем положение джойстика и определяем ШИМ сигнал, приводим полученное значению к диапазону от 0 до 255. Что позволяет плавно изменить скорость двигателей.
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 )
В зависимости от положения джойстика по оси 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 )
Внимание! Если у вас машина поворачивает не в том направлении, переверните провода подключения одного из моторов. Если стало работать, но в зеркальном отражении переверните у обоих двигателей провода.
И последние строки кода отключают двигатели машинки при расположении джойстика в центральном положении.
else
Скетч прост и его можно доработать или дополнить по вашему желанию.
Подведем итог.
В связи с тем, что машинка планировалась как бюджетная модель с минимальными возможностями и простотой схемой подключении, которую можно легко повторить. Это привело к ряду минусов:
- Проводное управление ограничивает перемещение и при повороте больше чем на 360 градусов провод попадает под колеса.
- Машинка умеет только ездить и поворачивать. На этом ее возможности заканчиваются.
Но благодаря этому есть и преимущества которые оценят новички впервые решившие сделать машинку на Arduino:
- Недорогие комплектующие.
- Простота сборки электроники.
- Несложная программа.
- Не используются сторонние библиотеки, не нужно ни чего дополнительно устанавливать. Достаточно взять код и загрузить его в Arduino.
Если вас интересуют более сложные реализации машин на радиоуправлении или беспроводном управлении, смотрите предыдущие проекты:
- Собираем Arduino машинку на Motor Shield L293D и ИК пульте
- Машинка на радиоуправлении. Arduino + nrf24l01 + пульт.
- Самодельная Wifi машинка на NodeMCU. Машина делает дрифт
- Wi-Fi машинка с камерой на ESP32-CAM.
Понравился проект Arduino машинка своими руками. Управление с помощью джойстика? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Файлы для скачивания
Скачивая материал, я соглашаюсь с Правилами скачивания и использования материалов .
Вы можете скачать файл.
Вы можете скачать файл.
Гость: Марат (9 августа, 2021 в 19:22)
Вот бы мне в детстве такую машину. Эх не было ни чего подобного. как все развивается. сейчас каждый может собрать себе дома мини робота.
Потенциометр 1 К, 2 К, 5 К, 10 К, 50 К, 100 К, 500 К
Джойстик модуль KY-023
Создание проектов с сенсорным экраном без кода!
Поддержите равитие конструктора интерфйсов DWIN Box
KY-009 — Модуль RGB светодиода (SMD). Подключение к Arduino.
Урок ESP8266. DS3231 RTC вывод температуры.
Wi-Fi машинка с камерой на ESP32-CAM.
Наши проекты:
Портал ПК — Уроки и Проекты на Arduino, ESP32, ESP8266
Ардуино технологии — Новые уроки и проекты на Arduino, ESP32, ESP8266
ЧПУ технологии — Самодельные ЧПУ станки, обзоры, статьи
Полезные ссылки:
На нашем сайте используются cookie для сбора статистической информации.
Источник: arduino-tex.ru
Подключаем RC машинку к Arduino и рулю
Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей . Также проект можно попробовать собрать из компонентов моего набора GyverKIT .
- Машинка мини https://ali.ski/BlpO1
- Машинка DICKTATOR https://ali.ski/NrkHtK
- Arduino Nano купить в РФ, Aliexpress, Aliexpress, искать
- Радио 433 МГц https://ali.ski/QP32g
- Макетная плата https://ali.ski/F_Oz_
- Сервопривод Aliexpress, Aliexpress, искать
- Драйвер слабый https://ali.ski/_dR-t
- Драйвер TA6586 https://ali.ski/05sNE
- Повышайка 5V https://ali.ski/gKUwO
- FPV приёмник https://ali.ski/qGvDE_
- Камера tx01 https://fas.st/oqHaon
- Камера tx02 https://fas.st/hzxgQQ
- FPV шлем https://ali.ski/Qmwe_
СХЕМЫ
Общая схема
Приёмник + DCDC
Драйвер TA6586
ПРОШИВКА
ВНИМАНИЕ! Максимально подробный гайд по началу работы с платой и загрузке прошивки для проекта находится ЗДЕСЬ . Изучи его внимательно, прежде чем писать на форум или в группу ВК!
#define RADIO_PIN 2 // пин радио #define THROT_PIN A0 // газ #define BRAKE_PIN A1 // тормоз #define STEER_PIN A2 // руль // пределы сигналов с датчиков #define STEER_MIN 1023 // руль #define STEER_MAX 0 #define THROT_MIN 330 // газ #define THROT_MAX 0 #define BRAKE_MIN 190 // тормоз #define BRAKE_MAX 1023 // пределы поворота серво #define SERVO_MIN (90-40) #define SERVO_MAX (90+40) // пределы газа и тормоза #define MOTOR_MAX 250 #define MOTOR_MIN 100 // #define G433_SPEED 3000 #define G433_FAST #include Gyver433_TX tx; // указали пин // формат пакета для отправки struct Data < int16_t speed; // -255.. 255 uint8_t steer; // 0..180 >; void setup() < Serial.begin(9600); >void loop() < // читаем сигналы с управления int steer = analogRead(STEER_PIN); int throt = analogRead(THROT_PIN); int brake = analogRead(BRAKE_PIN); // для отладки Serial.print(steer); Serial.print(‘,’); Serial.print(throt); Serial.print(‘,’); Serial.println(brake); // приводим steer = map(steer, STEER_MIN, STEER_MAX, SERVO_MIN, SERVO_MAX); throt = map(throt, THROT_MIN, THROT_MAX, 0, MOTOR_MAX); brake = map(brake, BRAKE_MIN, BRAKE_MAX, 0, MOTOR_MIN); // ограничиваем steer = constrain(steer, SERVO_MIN, SERVO_MAX); throt = constrain(throt, 0, MOTOR_MAX); brake = constrain(brake, 0, MOTOR_MIN); // готовим к отправке Data data; data.steer = steer; // газ минус тормоз // Допускает одновременное нажатие data.speed = throt — brake; // отправляем tx.sendData(data); // 100 раз в секунду delay(10); >
#define RADIO_PIN 2 // пин радио #define SERVO_PIN 5 // пин серво #define MOTOR_A 3 // пин мотора #define MOTOR_B 11 // пин мотора // мин. скорость мотора (0-255) // для большей резкости управления #define MIN_DUTY 45 // #define G433_SPEED 3000 #include Gyver433_RX rx; // размер буфера 3 байта #include Servo servo; // формат пакета для приёма struct Data < int16_t speed; // -255.. 255 uint8_t steer; // 0..180 >; // мини «библиотека» мотора class Motor < public: Motor(const uint8_t pinA, const uint8_t pinB, const uint8_t minD = 0) : _pinA(pinA), _pinB(pinB), _minD(minD) < pinMode(_pinA, OUTPUT); pinMode(_pinB, OUTPUT); >void run(int speed) < speed = constrain(speed, -255, 255); speed = (long)speed * (255 — _minD) / 255; if (speed >0) < digitalWrite(_pinA, 1); analogWrite(_pinB, 255 — (speed + _minD)); >else if (speed < 0) < digitalWrite(_pinB, 1); analogWrite(_pinA, 255 — (-speed + _minD)); >else < digitalWrite(_pinA, 0); digitalWrite(_pinB, 0); >> private: const uint8_t _pinA, _pinB, _minD; >; Motor motor(MOTOR_A, MOTOR_B, MIN_DUTY); void setup() < Serial.begin(9600); // подрубаем серво servo.attach(SERVO_PIN); servo.write(90); // разгоняем ШИМ чтобы не гудело // Пины D3 и D11 — 8 кГц TCCR2B = 0b00000010; // x8 TCCR2A = 0b00000011; // fast pwm >void loop() < // таймаут приёма данных static uint32_t tmr; // если сигнала с радио нет 200 мс // выключаем мотор if (millis() — tmr >200) < motor.run(0); tmr = millis(); >// приём по радио if (rx.tick()) < Data data; // если чтение без ошибок if (rx.readData(data)) < tmr = millis(); // сброс таймаута servo.write(data.steer); motor.run(data.speed); /* // для отладки Serial.print(data.steer); Serial.print(‘,’); Serial.println(data.speed); */ >> >
Для работы прошивки нужны следующие библиотеки:
Источник: alexgyver.ru
Из чего состоит радиоуправляемая автомодель
Любой моделист должен представлять, как устроена его модель. Это просто необходимо, так как её периодически потребуется обслуживать, настраивать и ремонтировать. В этой статье мы рассмотрим, из каких частей она состоит. Составные части автомодели:
- Шасси
- Подвеска
- Силовая установка
- Источник энергии
- Трансмиссия
- Сервоприводы
- Колёса
- Кузов
- Аппаратура радиоуправления
Шасси
Шасси — основа любой радиоуправляемой автомодели. Как правило, это металлическая или пластиковая пластина, к которой крепятся все остальные элементы. Шасси в виде металлической пластины используется на моделях багги и трагги, пластиковые и карбоновые — на шоссейных моделях. Модели монстров и краулеров обычно обладают самым сложным шасси в виде одной или нескольких деталей замысловатой формы. Часто под словом «шасси» также понимают шасси модели в сборе с подвеской и трансмиссией.
Стальная пластина шасси багги
Шасси монстра Revo
Пластиковое шасси типа «ванна»
Карбоновое шасси
Подвеска
Подвеска модели обеспечивает плавный ход автомобиля при прохождении неровностей, постоянный контакт колёс с дорогой для улучшения управляемости, а для внедорожных моделей также принимает на себя удар при приземлении после прыжков. В подвеске большинства моделей используются маслонаполненные амортизаторы, установленные вертикально по одному на каждое колесо. В простых моделях могут использоваться фрикционные амортизаторы. У некоторых монстров устанавливается по два амортизатора на каждое колесо.
Амортизаторы радиоуправляемой автомодели
Составные части амортизаторов
Подвеска багги — классическая схема
Нестандартная оригинальная подвеска моделей Traxxas
Силовая установка
Роль силовой установки модели модели может выполнять электромотор или двигатель внутреннего сгорания (ДВС). Силовая установка электрической модели состоит из мотора и регулятора скорости. Если с назначением мотора обычно вопросов не возникает, то функция регулятора скорости не всегда сразу понятна.
Если быть кратким, то регулятор является промежуточным звеном между аккумулятором и мотором, обеспечивая нужное напряжение на контактах мотора, чтобы он вращался с необходимой скоростью. Электромоторы можно разделить на два вида: коллекторные и бесколлекторные.
Коллекторный двигатель в автомоделизме можно считать несколько устаревшим, но силовые установки на его основе значительно дешевле и используются достаточно часто. Недостатком такого вида моторов является наличие щеток, которые довольно быстро изнашиваются и двигатели требуют постоянного обслуживания (или замены) при интенсивной эксплуатации. Бесколлекторные (brushless) моторы более дорогие, мощные и практически не нуждаются в обслуживании. Главным внешним отличием бесколлекторного мотора от коллекторного является наличие у него трёх проводов вместо двух.
Коллекторная система
Бесколлекторная система
Двигатели внутреннего сгорания, применяемые на автомоделях, можно разделить на калильные и бензиновые. На большинство моделей устанавливаются именно калильные ДВС, работают они на специальном топливе. Не на бензине!. Рабочий объем калильного двигателя обычно варьируется в пределах от 2 до 6 кубических сантиметров. Часто объем указывают в кубических дюймах, например: двигатель объемом 0.21 кубического дюйма (его еще могут называть «двадцать первый», называя только сотые доли объема в дюймах) = 3.44 см 3 .
Бензиновые двигатели используются на моделях больших масштабов, это связано с тем, что минимальный объем бензинового двигателя составляет порядка 20 см 3 , он довольно большой и тяжелый. Обычно используются двигатели объемом 20-30 см 3 .
Бензиновые двигатели развивают значительно меньшую мощность на один кубический сантиметр своего объема, но имеют больший крутящий момент и значительно экономичнее.
Большинство автомодельных двигателей — одноцилиндровые.
Калильный двигатель 0.21 in 3
Бензиновый двигатель 23 см 3
Источник энергии
Электрические автомодели работают от аккумуляторов (не от батареек, как игрушки). Наиболее часто используемые типы аккумуляторов — NiMH и LiPo. Напряжение, от которого работает автомодель бывает обычно от 7.4 до 22.2 вольт. При выборе аккумулятора следует учитывать характеристики регулятора скорости, установленного на модели, от него будет зависеть тип аккумулятора и его напряжение.
NiMh аккумулятор
LiPo аккумулятор
Аккумуляторы практически никогда не идут в комплекте с автомоделью и их нужно покупать отдельно. Одними из лучших по соотношению цена-качество являются недорогие китайские аккумуляторы Turnigy. Подробнее: Аккумуляторы для радиоуправляемых моделей.
Специальное топливо для калильных двигателей состоит из метилового спирта, нитрометана и масла. При обращении с этим топливом следует соблюдать крайнюю осторожность — метиловый спирт чрезвычайно ядовит! Стоимость такого топлива достаточно высока, порядка 200-500 рублей за литр. Стандартный бак модели, объемом 120-150 см 3 расходуется примерно за 10 минут (зависит от объема двигателя, бывают настоящие обжоры).
Так же, как и калильные, модельные бензиновые двигатели двухтактные, значит заправлять их надо смесью бензина и специального масла для двухтактных двигателей. Путь за ним лежит в любой магазин бензотехники.
Трансмиссия
Трансмиссия передает крутящий момент от двигателя к колесам. Для передачи крутящего момента используются зубчатые колёса, карданы и ремни. Большинство моделей имеют полный привод на четыре колеса (4WD), хотя немалое распространение имеют также заднеприводные модели (2WD). Между колесами на одной оси устанавливаются дифференциалы, а часто также межосевой дифференциал.
Шасси с карданным приводом и центральным дифференциалом
Шасси с ременным приводом
Сервоприводы
Для поворота колёс при рулении, а также для управления газом и тормозом на моделях с ДВС используются сервоприводы (в простонародье — «сервы», по-английски «servo»). Сервы — это небольшие коробочки с электромотором и редуктором, которые могут поворачивать свой выходной вал на заданный угол и удерживать его в этом положении.
Один из популярных сервоприводов
Внутренности «сервы»
Колёса
В отличие от колёс настоящего автомобиля, колёса автомоделей не накачиваются воздухом, его роль выполняют мягкие внутренние вставки. При выборе колёс для спортивной автомодели нужно руководствоваться только их характеристиками, а никак не внешним видом. Красивые колёса со хромированными спицами и мощным протектором могут себе позволить только монстры и модели для дрифта. Модели же, предназначенные для гонок, довольствуются сплошными дисками без спиц и шинами со специальным мелким протектором.
Колёса монстра Traxxas Summit
Спортивные колёса
Кузов
Кузов подавляющего большинства автомоделей изготавливается из лексана — тонкого, прочного и гибкого листа прозрачного пластика. Такой кузов очень лёгкий и отлично защищает модель при столкновениях и переворотах. Покраска кузова из лексана производится специальными красками изнутри. Устанавливается лексановый кузов на специальные стойки и закрепляется клипсами.
В отличие от настоящего автомобиля, такой кузов не является неотъемлемой частью модели и может быть легко заменён на другой. Поэтому практически бессмысленно выбирать модель только по кузову или говорить «я купил модель Порше 911». При интенсивной эксплуатации модель за свою жизнь может сменить несколько кузовов, постепенно приходящих в негодность.
Некрашенный лексановый кузов
Клипсы на капоте автомодели
Аппаратура радиоуправления
И, наконец, модель становится радиоуправляемой только тогда, когда на ней установлена аппаратура радиоуправления или просто «аппаратура». Аппаратура состоит из двух частей — передатчика и приёмника. Для управления автомоделями, как правило, используется передатчик пистолетного типа, курок которого управляет ускорением и тормозом, а рулевое колесо — поворотом модели. На рынке присутствует огромный выбор самой различной аппаратуры стоимостью от пары десятков до нескольких сотен долларов. Последнее время практически вся новая аппаратура работает на частоте 2.4 ГГц, при этом одновременно в одном месте может запускаться много моделей, не создавая друг другу помех.
Аппаратура с телеметрией Traxxas TQi 2.4Ghz
Одна из самых простых и дешёвых, аппаратура Hobby King GT-2 2.4Ghz вполне подойдёт начинающим. Подробнее: Аппаратура управления автомоделью.
Заключение
Если вы покупаете готовую к запуску модель (RTR, Ready to Run, Ready to Race), то вам нужно будет приобрести только аккумуляторы или топливо. А профессиональные модели часто поставляются в виде набора для самостоятельной сборки (Kit), к ней, как минимум, потребуется также аппаратура и силовая установка.
Похожие статьи
- ДВС для радиоуправляемых моделей
- Аккумуляторы для радиоуправляемых моделей
- Словарь терминов и сокращений RC тематики
- Автомодели, вода и грязь, герметизация
- Основы вождения автомодели
- Аппаратура управления автомоделью
- ДВС и электро
- FAQ по радиоуправляемым автомоделям
- Масштабы радиоуправляемых моделей
- Отличия радиоуправляемой игрушки от модели
Источник: rctotal.ru