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

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

Один из подписчиков решил сделать привод для телескопа, и попросил меня помочь с написанием скетча.

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

Так выглядит устройство для управление двумя шаговыми двигателями с помощью джойстика на базе Arduino UNO.

Для его сборки понадобится:

Плата Arduino UNO, модуль двух осевой джойстик, два униполярных шаговых двигателя 28BYJ-48 5V, два драйвера на базе микросхемы ULN2003 и соединительные провода.

Загрузите на плату Arduino UNO этот скетч.

В скетче есть 4 настройки!

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

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

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

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

Чем больше значение этих переменных тем медленнее скорость вращения шагового двигателя!

//Начало скетча Копировать этот код

//Конец скетча

После настройки и загрузки скетча соберите все согласно этой схемы.

Проверьте! И если все верно, то можете подключить устройство к блоку питания, павербанку или USB компьютера.

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

Чтобы инвертировать направление вращения вала шагового двигателя:

Поменяйте местами контакты 5, 6 или 4, 7 для 1 шагового двигателя.

Поменяйте местами контакты 11, 12 или 10, 13 для 2 шагового двигателя.

Чтобы поменять местами оси X, Y поменяйте местами контакты A0, A1.

Источник

Arduino nano, сервомотор и джойстик

Завалялась у меня arduino nano (качественный китайский клон от RobotDyn). А тут на днях так же из Китая пришли сервомотор и манипулятор, а так же нашлось время, чтобы немного разобраться с этим. Итак, цель у меня была простая: соединить arduino nano, сервомотор и джойстик, и заставить сервомотор поворачиваться при повороте джойстика. В практических целях это можно использовать, например, для управления поворотом камеры.

Как оказалось, это не так уж и сложно. Схема подключения следующая:

1. Подключение Arduino и сервомотора:

  • коричневый (на моем сервомоторе) провод — земля (gnd);
  • красный провод — 5v;
  • оранжевый провод — 8 пин.

2. Подключение Arduino и джойстика:

  • gnd — gnd;
  • 5v — 5v (я подключил к 3.3v);
  • VRX (сигнал для координат по оси X) — A1;
  • VRY (сигнал для координат по оси Y) — A0;
  • SW (режим кнопки — нажата или отпущена) — 2 пин.

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

При подключении джойстика к питанию 3.3V значение по умолчанию для X и Y позиций было 330 (при подключении к 5V значения могут быть другие), для проверки значений текущих показаний и я взял отклонение от начального значения в 30 единиц.

Отследить значения аналоговых сигналов можно с помощью монитора серийного порта (открыть его можно так: инструменты -> монитор порта или CTRL + SHIFT + M). Для этого в функции setup() необходимо написать следующее:

В функции loop() написать следующее:

Вот видео того, что получилось:

Итак, в данной статье рассмотрен процесс подключения сервомотора и джойстика к Arduino Nano, приведен пример скетча. В дальнейшем я планирую подключить второй сервомотор, чтобы польностью использовать возможности джойстика и осуществлять поворот по осям X и Y.

Установка webmin для операционной системы Armbian (Orange Pi / Raspberry Pi). Install webmin for armbian.

Простая реализация текстового поля с выпадающими подсказками (аналогично поиску у Яндекс и Google) при вводе текста на языке C# WPF. Реализация пользовательского элемента управления в C#/

В заметке описан способ доступа к фронтэнд (frontend) кэшу (cache) advanced приложения из бэкэнда (backend) для php фреймворка Yii2.

Источник

#22. Подключаем к Arduino джойстик. Управление servo сервоприводом.

Сегодня в уроке подключим джойстик к Arduino UNO. И рассмотрим пару примеров использования джойстика в робототехнике:

  1. Вывод данных о положении стика джойстика в монитор порта.
  2. Управление свечением двух светодиодов с помощью джойстика.
  3. Подключить джойстик и сервопривод к Arduino. Научимся управлять сервоприводами с помощью джойстика.

А для начала рассмотрим, что такое джойстик, из чего он состоит и как устроен.

Устройство аналогово джойстика и принцип работы.

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

Управляет всем стик. При изменении положения стика по оси X — вращается потенциометр, выход которого outX, а при перемещении по оси Y — меняется значение потенциометра с выводом outY. По сути, это 2 потенциометра, с которых снимаем показания. Стик устроен таким образом, что он возвращается самостоятельно в центральное положение. Что обеспечивает центрование потенциометров. В данном состоянии джойстика на выходах outX, outY будет 511.

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

На плате установлена тактовая кнопка. Использовать ее или нет решать вам. При создании пульта для радиоуправляемой машинки я использовал данную кнопку для переключения режима работы: с джойстика или с акселерометра. Если интересно читайте на странице проекта: Машинка на радиоуправлении. Arduino + nrf24l01 + пульт.

Вывод данных о положении стика джойстика в монитор порта.

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

После чего нужно загрузить код в Arduino UNO.

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

Как видите, они отличаются от 511. Показание отличаются на разных осях X=507, Y=510. Эти данные нам пригодятся в следующем примере.

Если мы подвигаем стик джойстика, то увидим изменение значений от 0 до 1023 по каждой оси.

На выходе мы получаем значение до 1023. Данный диапазон значений практически не применим в проектах на Ардуино, поэтому давайте приведем это значение к диапазону от 0 до 255, для этого воспользуемся функцией map() .

После чего в мониторе порта мы получим вот такие значения.

Управление свечением двух светодиодов с помощью джойстика.

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

Так как мы знаем значение при центральном положении стика, для оси Х это 507, а для оси Y 510, используя функцию map() , приведем к необходимому диапазону, например для оси Х от 507 до 1023 к диапазону от 0 до 255. Код будет вот таким.

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

Подключить джойстик и сервопривод к Arduino. Научимся управлять сервоприводами с помощью джойстика.

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

Для данного примера устанавливать дополнительные библиотеки не нужно, так как библиотека servo устанавливается вместе с Arduino IDE.

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

Итог: Как видим из примеров, применение джойстика достаточно большое в разработке проектов на Arduino и в робототехнике.

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

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока.

И до встречи в следующем уроке

Понравилась статья? Поделитесь ею с друзьями:

Источник

Arduino машинка своими руками. Управление с помощью джойстика.

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 инициализируем пины подключения джойстика. Подключаем к 2 аналоговым входам A0, A1.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Источник

Adblock
detector