Arduino радиоуправляемая машина: контролируем со смартфона

Arduino радиоуправляемая машина: контролируем со смартфона Самолеты
Содержание
  1. Введение
  2. Основа конструкции
  3. Шаг 2: что такое робот?
  4. Ardu remote: очень простая и дешёвая аппаратура управления своими руками
  5. Задача
  6. Как сделать радиоуправление на ардуино (модуль ccu r0) ардуино джойстик
  7. Немного об уровне, авторе и предостережения
  8. Определение угла поворота
  9. Передатчик
  10. Питание
  11. Подключение bluetooth
  12. Подключение угла и код
  13. Понадобится
  14. Распараллеливание ходовых колес
  15. Результат
  16. Система отправки команд
  17. Установка arduino
  18. Шаг 1. комплектующие
  19. Шаг 1: нужные части и инструмент
  20. Шаг 10: входы / датчики
  21. Шаг 11: источник питания
  22. Шаг 12: установка компонентов
  23. Шаг 14: логика управления
  24. Шаг 15: софт
  25. Шаг 16: тестирование
  26. Шаг 17: планы на будущее
  27. Шаг 2. шасси
  28. Шаг 3. моторы (приводы)
  29. Шаг 3: структура / шасси
  30. Шаг 4. установка двигателей
  31. Шаг 4: приводы
  32. Шаг 5. ардуино контроллер
  33. Шаг 6. h-мост (модуль lm 298)
  34. Шаг 6: устанавливаем мотор
  35. Шаг 7. источник питания
  36. Шаг 7: устанавливаем крышу
  37. Шаг 8. электрические соединения
  38. Шаг 8: контроллер
  39. Шаг 9. логика управления
  40. Заключение первой части

Введение

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

Основа конструкции

В качестве основы для автомобиля был использован Lego Outdoor Challenger (который в реальности выглядит гораздо менее жалким). Не осталось ничего, кроме шасси (все украшения были удалены) и трех двигателей.

image


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

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

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

Робот состоит из следующих деталей:

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

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

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

Привет всем. Моя бывшая хотелка – небольшой аппаратный гаджет для дрона/крыла; usb джойстик для симов и опена. Нужно дать обоснование построенной дельты (3d принтер) и помучиться с Arduino. Ниже фото нижней части:

Arduino радиоуправляемая машина: контролируем со смартфона

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

В конце концов, вот как это случилось.

→ Гитхаб

Видео:

Эскиз, схемы, использованные библиотеки и многие другие полезные материалы, включая 3D-модели и исходники для SolidWorks, находятся на Гитхабе.

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

Arduino радиоуправляемая машина: контролируем со смартфона

Что касается lrs, вы можете использовать другие проекты на входе, если принимаете сигнал CPPM 8/10ch. Что касается модулей QCZEK, у вас есть выбор между модулями 0.1 или 1w и частотами 433/868/915 MHz. Не рекомендуется покупать 433, шумоподавление нереальное. Кроме того, я не вижу смысла в 1Вт. На 100мВт вполне реально пульсировать на 10км. Если интересуют антенны, то можно найти 915мгц модели и готовые антенны для популярных дальнобойных фрских приемников. Доступно по цене и гарантирует, что VSWR находится в приемлемых пределах. Используя ipex, я припаял две полоски медного провода к хвосту корпуса антенны и засунул все это в корпус антенны прямо посередине печати корпуса антенны. В жилом доме я протестировал оборудование и испытал модель и убедился, что она не сломалась и не упала rssi.

В случае Open.HD (usb-версия) переключатели sw4 и sw5 на данный момент не имеют смысла, так как количество каналов ограничено 8. Возможно, в будущем это ограничение будет снято. Обратите внимание, что подключение к Open.HD с помощью нагрузочного модуля создает дополнительную нагрузку на usb-порт raspberry ground для питания. Имеет смысл использовать концентратор с внешним источником питания.

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

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

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

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

Мой qczek также оснащен модулем jdy-30 bluetooth, и я передаю через него телеметрию Mavlink, которую можно просматривать с помощью DroidPlanner 2.8 или Telemetry Viewaver на моем телефоне android. Mavlink-дисплей, вероятно, тоже будет добавлен. XD Пусть это выглядит красиво, как в игре Crossfire.

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

Задача


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

Как сделать радиоуправление на ардуино (модуль ccu r0) ардуино джойстик

Комментариев нет. Ваш будет первым!

Немного об уровне, авторе и предостережения

Как автор, 16-17-летний подросток из подмосковной деревни, чья специальность – написание приложений для андроида (а там сложнее что-то спалить), я беру на себя ответственность за поиск оптимального подхода к решению проблемы.

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

Определение угла поворота


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

Смотрите про коптеры:  РадиоКот :: "Поехали кататься!" или машинка на радиоуправлении

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

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

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

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

Передатчик

// Библиотека передатчика
#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(); 

}

Питание

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

Подключение bluetooth

Я использовал модель HC-05, которая разыграла меня. Все блютузы подключаются одинаково: один кабель к 3.3V (иногда он включается только при 5V), второй к минусу, два других к порту 0 и 1 (чтение и отправка соответственно). Подписанный кабель RXD to bluetooth подключается к TXD на arduino, а TXD к RXD (если вы перепутаете, то не увидите данных).

По умолчанию порты 0 и 1 используются для последовательного соединения, и скетч заливается через эти порты. Если вы подключите Bluetooth, то скетч не будет заливаться. Либо выньте bluetooth на время заливки, либо переназначьте входы и выходы bluetooth. Второй вариант выполняется с помощью двух строк

#include <SoftwareSerial.h> подключение библиотеки
SoftwareSerial BTSerial(8, 9); установка 8 и 9 пина заместо 0 и 1

Я потерял три дня работы из-за скорости связи. По привычке я установил 9600 и попробовал. Была неразбериха с символами, когда данные не поступали. Мы выяснили, что модель HC-05 обменивается данными на скорости 38400. При выполнении Setup() я буду вызывать BTSerial.begin(39400), даже если сначала будет вызван Serial.begin(9600).

Подключение угла и код

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

На рисунке 1 показана схема подключения. Добавьте плюсовой и минусовой провода к зеленому проводу, а плюс к минусовому проводу. Между проводами A0-A2 необходимо установить резистор для устранения помех и короткого замыкания. Они выбраны исключительно ради сохранения остальных портов.

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

Выходы 5 В и 3,3 В понадобятся в будущем, поэтому вы можете добавить знак плюс к цифровому выводу. Чтобы проверить каждый угол, используйте digitalWrite(whitePin), а затем проверьте угол, сняв ток.

int speedTurn = 180; //скорость поворота, от 0 до 255

//пины для определения поворота
int pinRed = A0;
int pinWhite = A1;
int pinBlack = A2;

int pinAngleStop = 12; //выводит ток на светодиод, если достигнут максимальный угол, нужен 
//только для отладки 

void setup() {
 //пины поворота на считывание
  pinMode(pinRed, INPUT);
  pinMode(pinBlack, INPUT);
  pinMode(pinWhite, INPUT);
//светодиод 
  pinMode(pinAngleStop, OUTPUT);
//пины драйвера двигателя, направление и скорость
  pinMode(angleDirection, OUTPUT);
  pinMode(angleSpeed, OUTPUT);

  Serial.begin(9600);
}
//функция вызывается из loop(), когда приходит команда с андроида
void turn(int angle) {
  digitalWrite(pinAngleStop, HIGH); //выдаем ток на провод, подключенный к плюсу
  delay(5); //немного ждем, чтобы ток "успел" дойти
  
  if(angle > 149) {
        if( digitalRead(pinWhite) == HIGH && digitalRead(pinBlack) == LOW && digitalRead(pinBlack) == LOW) { 
          //если достигнуто крайне правое положение, выйти из функции не подавая ток, чтобы не 
          //сжечь мотор
          return;
        }
        //если угол не максимальный, поворачиваем
        digitalWrite(angleDirection, HIGH);
        analogWrite(angleSpeed, speedTurn);
  } else if (angle < 31) { 
        if(digitalRead(pinRed) == HIGH && digitalRead(pinBlack) == HIGH && digitalRead(pinWhite) == HIGH) {
          //если достигнуто крайне левого положение, выйти из функции не подавая ток, чтобы не 
          //сжечь мотор
          return;
        }
        //если угол не максимальный, поворачиваем
        digitalWrite(angleDirection, LOW);
        analogWrite(angleSpeed, speedTurn);
  }
  digitalWrite(pinAngleStop, LOW); //убираем ток с определителя угла
  delay(5);
}

Понадобится

  1. Arduino
  2. Моторный щит (в моем случае два)
  3. Bluetooth
  4. Android
  5. Провода, как обычно

Распараллеливание ходовых колес

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

Моторный щит имеет два выхода с максимальным усилием два ампера каждый. Каждый двигатель потребляет 0,7 А. Кажется, что эта величина меньше, но не при максимальной нагрузке. Допустим, машина застряла в песке или заглохла, тогда ток поднимается выше ампера. Не критично, но потенциально опасно.

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

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

Результат

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

Система отправки команд

Код для Arduino и Android будет представлен в отдельной статье, а сейчас я опишу принцип работы.

В андроид-устройстве есть джойстик (круг, о котором также во второй части). Считывая с него показания, андроид преобразует их в числа, подходящие для Arduino: скорость становится значением от -255 до 255 (отрицательные значения идут в обратную сторону), также определяется угол.

Смотрите про коптеры:  Что делать, если квадрокоптер не взлетает и при других неисправностях

Сокет задается в таком формате: @скорость#*угол#. @ означает, что следующие четыре цифры содержат скорость, # означает, что значение скорости находится в конце своего периода, * означает, что значение угла находится в его начале, # означает, что значение угла находится в его конце. Каждая команда отправляется каждые 100 миллисекунд (это выбрано оптимально). Андроид ничего не посылает, если ничего не нажато.

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

Установка arduino

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

Сразу два моторных щита я разместил на верхней части платы. Если вы хотите управлять вторым, вам нужно проложить провод от любого цифрового порта к H1 (направление), а другой провод от контакта с поддержкой шины (обычно 10, 11) к E1 (скорость).

Шаг 1. комплектующие

Для создания радиоуправляемого автомобиля с помощью Arduino и возможности управления им через смартфон нам понадобятся следующие детали:

  1. Комплект шасси 4WD робота
  2. Arduino Uno
  3. LM298 H-мостовой модуль
  4. HC-05 Bluetooth модуль
  5. 12В литий-полимерный аккумулятор
  6. Кабели-перемычки
  7. Папины кабели
  8. Изолента или другая лента
  9. Смартфон

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

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

Части :

  1. Комплект шасси 4WD робота (GearBest)
  2. Arduino Nano (GearBest)
  3. Модуль LM298 H-моста (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. Щелочные батареи типа AA (неперезаряжаемые)
  2. Никель-металлгидридные или никель-кадмиевые батареи типа AA (перезаряжаемые)
  3. Литий-ионные батареи
  4. Литиево-полимерные батареи

Чтобы выбрать правильный тип аккумулятора, необходимо учитывать ваши потребности. Я рекомендую всегда выбирать аккумуляторы с достаточной емкостью. Здесь использованы два литий-ионных аккумулятора 18650 емкостью 2600 мАч. Для большей автономности используйте батарейный блок, например, 5A turnigy.

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

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

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

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

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

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

Чтобы понять, как это работает, я создал логическую таблицу. Это удобно при написании кода.

Шаг 15: софт

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

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

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

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

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

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

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

Шаг 2. шасси

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

Шаг 3. моторы (приводы)

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

Подготовьте четыре куска красной и черной проволоки длиной от 12 до 15 дюймов (от 12 до 30 см). Можно использовать провод диаметром 0,5 мм. Зачистите провода от изоляции с обоих концов. Установите клеммы двигателя с припаянными проводами.

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

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

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

Шаг 4. установка двигателей

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

Смотрите про коптеры:  Пилотажка восьмидесятых I Валентин Саленек

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

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

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

Шаг 5. ардуино контроллер

Микроконтроллерная плата Arduino UNO – это плата с открытым исходным кодом, построенная на базе микроконтроллера Microchip ATmega328P и разработанная компанией Arduino.cc.

На плате имеется множество цифровых и аналоговых контактов ввода/вывода (I/O), которые могут быть подключены к различным платам расширения (экранам) и другим схемам. Плата Arduino имеет 14 цифровых и 6 аналоговых выводов и программируется с помощью Arduino IDE (интегрированной среды разработки).

На сайте Arduino доступно несколько эталонных вариантов аппаратного обеспечения по лицензии Creative Commons Attribution Share-Alike 2.5. Для некоторых версий аппаратного обеспечения доступны файлы макетов и производства. Название “Uno” было выбрано для обозначения выпуска программного обеспечения Arduino (IDE).

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

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

Шаг 6. h-мост (модуль lm 298)

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

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

Примечание. Выключатели в одном плече (S1, S2 или S3, S4) никогда не могут быть замкнуты одновременно, иначе возникнет короткое замыкание.

Н-мосты выпускаются в виде интегральных схем, или вы можете собрать свой собственный, используя четыре обычных транзистора или полевых транзистора (MOSFET). С помощью микросхемы Н-моста LM298 мы можем управлять скоростью и направлением вращения двигателя. В следующем разделе мы опишем контакты:

D C двигатель 1″ или шаговый двигатель А в качестве выхода 1

I/O 2: Шаговый двигатель или двигатель постоянного тока 1″-

Двигатель постоянного тока 2″ или шаговый двигатель выводится 3

Выход 4: двигатель B выведен

12В контакт: Вход 12 В, но вы можете использовать от 7 до 35 В

GND: земля

Выход 5 В: Выход 5 В, если установлена перемычка 12 В, идеально подходит для питания вашего Arduino

Устанавливает сигнал ШИМ для двигателя A на EnA

IN1: запуск электродвигателя A

IN2: Запуск двигателя A

IN3: мотор-редуктор углового типа B

IN4: двигатель с энкодером B

Ш ИМ-сигнал двигателя B включен с помощью EnB

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

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

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

Шаг 7. источник питания

Для управления нашей радиоуправляемой автомоделью на базе Arduino нам понадобятся эти батареи:

  1. Щелочная батарея AA (не перезаряжаемая)
  2. NiMh или NiCd батарея AA
  3. LiPo аккумулятор

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

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

Шаг 8. электрические соединения

Соединения должны быть выполнены с помощью проводов-перемычек. Убедитесь, что красные провода от двух двигателей (с каждой стороны) подключены, а черные провода также подключены. Каждая сторона теперь имеет две клеммы. Два правых мотора управляются MOTORA, а два левых – MOTORB. Чтобы все подключить, просто следуйте приведенным ниже инструкциям.

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

Out1 -> Красный провод левого бокового мотора ( )

Черный провод (-) подключен к Out2 на левом двигателе.

Подключите Out3 к правой стороне двигателя ( )

(-) -> левая сторона двигателя, черный провод

LM298 -> Arduino

IN1 -> D5

IN2-> D6

IN2 -> D9

IN2-> D10

Модуль Bluetooth -> Arduino

Rx-> Tx

Tx -> Rx

GND -> GND

Vcc -> 3,3 В

Алиментация

12В -> Подключите красный кабель аккумулятора

GND -> Подключите черный провод аккумулятора и вывод Arduino GND

5V -> Подключение к контакту Arduino 5V

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

Установив шасси и диски, мы все еще не получили контроллер. Шасси не может работать без контроллера. Оно останется неподвижным, инертным. Для того чтобы робот мог двигаться, необходим мозг (контроллер).

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

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

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

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

Шаг 9. логика управления

Ниже приведена таблица с описанием логики управления.

Заключение первой части

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

Тем не менее, больше всего меня заинтересовала вторая часть – программа для Arduino и приложение на Android, там есть настоящая магия, по крайней мере, для такого молодого человека, как я.

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

Adblock
detector