Как подключить джойстик к ардуино: Arduino и джойстик

Содержание

Что это такое и как использовать джойстик с Arduino? Пошаговое руководство

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

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

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

Что такое джойстик и для чего он используется в проекте Arduino?

Джойстик это контроллер, который может быть добавлен в проекты электроники и Arduino , он предлагает преимущество возможности добавить больший объем информации, чем то, что можно получить, просто используя нажмите на кнопки. Таким образом, эти элементы ввода очень похожи на то, что аналоговые джойстики что большинство приказы Игровые консоли и компьютеры Xbox или PlayStation имеют .

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

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

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

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

Примером этого может быть следующее:

  • La скорость передвижения d’un роботизированная рука может быть увеличенный плюс измеренное значение высокое , это означает, что чем больше значение будет увеличиваться. То же самое происходит, когда вы хотите продвинуть
    машина или беги намного быстрее
    . Если бы эти действия выполнялись только кнопками, добиться плавных движений было бы практически невозможно, но робот будет двигаться прыжками, создание резкого движения.

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

Аналоговый или цифровой Какой джойстик лучше всего использовать с Arduino?

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

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

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

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

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

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

Их можно интегрировать в карточки типа мульти ввод / вывод ou звуковые карты. Таким образом, разъем порта позволяет одновременно подключать два джойстика. Чтобы узнать, есть ли на вашем компьютере порт для джойстика, он должен иметь 15-контактный разъем расположен на задней панели вашего процессора.

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

Шаг за шагом научитесь использовать джойстик с Arduino с нуля

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

  • Земля: контакт подключен к земле.
  • + 5В: брошь поставка (5м).
  • VRx: штифт считывания потенциометра для оси x.
  • VRy: штифт считывания потенциометра для оси Y.
  • SW: это дополнительный штифт, который используется для кнопки внизу.

Имея это в виду, ниже мы покажем вам список материалов, которые вам понадобятся для использования джойстика с Arduino с нуля:

  • Arduino UNO / МЕГА / ЛЕОНАРДО / NANO среди других моделей.
  • Кабели связи.
  • 4 светодиода.
  • 4 Резисторы 220 Ом.

Генерация кода Arduino

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

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

Связи

«ОБНОВЛЕНИЕ ✅ Вы хотите подключить и запрограммировать джойстик с Arduino для своего проекта? ⭐ ВОЙДИТЕ ЗДЕСЬ ⭐ и узнайте все о SCRATCH! »

На следующих рисунках вы можете увидеть, как осуществляется соединение двухкоординатного аналогового джойстика с кнопкой:

Код:

В этом случае речь идет о получении показаний с заданной переменной для каждой из осей, значение X будет считываться для светодиодов кто на Лево и право, в этих случаях мы даем им значения в диапазоне от И 700 400 , это потому, что Arduino выполняет аналоговое чтение со значениями от От 0 до 1023, то есть значение сопротивления потенциометра, каким бы оно ни было, плата Arduino будет понимать его как значение, которое находится в этих параметрах.

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

Лучшие проекты Arduino с джойстиком, которые можно сделать самому

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

Вот как ниже мы покажем вам лучшие проекты Arduino с джойстиком, которые вы можете сделать самостоятельно из дома:

Управляйте 2 серводвигателями с помощью джойстика

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

Таким образом, положение серводвигателя будет изменяться на От 0 ° до 180 ° дюйма функция движение джойстика слева направо . Что касается сложности проекта, то можно сказать, что он создан для промежуточные пользователи и что на его создание может уйти около 30 минут.

Управляйте роботом ARM с помощью 2 джойстиков

Ce проект робототехники на Arduino стал одним из самых интересных и популярных в последнее время, поэтому многие программисты-электронщики решили сосредоточиться на этом типе проектов, известных как ARM Робот , где он заключается в том, чтобы дать ему разные движения в разных направлениях, чтобы поднять определенные легкие объекты.

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

Самодельная роботизированная рука

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

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

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

Je Vous remercie!

Механические датчики для Arduino | 2 Схемы

Содержание

  • 1 Модуль тактовой кнопки KY-004 [5]
  • 2 Датчик вибрации KY-002 [6]
  • 3 Датчик удара KY-031 [8]
  • 4 Датчик поворота KY-020 [9]
  • 5 Механический датчик поворота
  • 6 Джойстик KY-040 [16-17]

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

Данный набор включает в себя 37 приборов, которые позволяют регистрировать разнообразные явления и процессы, а также небольшое количество простейших устройств вывода информации [1-3]. Покупка такого набора оправдана на начальном этапе, когда требуется изучить особенности работы большого количества различных устройств. Набор можно подключить к платам типа Arduino UNO или Arduino Nano без использования пайки, что является несомненным плюсом на первом этапе работы.

В первой части данного обзора речь пойдет о механических датчиках, реагирующих на нажатие, вибрацию, поворот и т.п. Большая часть описанных ниже датчиков подключаются, по сути, аналогично цифровой кнопке. Для примера в память микроконтроллера на плате Arduino UNO можно записать программу, которая по командам от датчика зажигает светодиод, подключенный к 13 цифровому порту, код взят из [4].

Модуль тактовой кнопки KY-004 [5]

Размер модуля 24 х 15 мм, масса 1,3 г. Помимо кнопки на плате установлен резистор, сопротивлением 10 кОм. Для подключения служит трех контактный разъем, общий вывод разъема обозначен знаком «-», центральный контакт служит для подачи напряжения питания +5В, информационный контакт обозначен «S»

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

Датчик вибрации KY-002 [6]

Размер модуля 24 х 15 х 15 мм, масса 1,2 г. Конструктивно датчик представляет собой цилиндрическую металлическую пружину по оси, которой располагается проводник, который замыкается при резких ускорения, сообщаемых устройству [7]. Схема подключения, логика работы и маркировка контактов, аналогичны таковым у модуля тактовой кнопки KY-004

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

Датчик удара KY-031 [8]

Размер модуля 30 х 18 мм, масса 1,6 г. Датчик представляет собой пружинный контакт в прямоугольном пластиковом корпусе. Датчик чувствителен к ускорениям направленным поперек продольной оси датчика

Датчик поворота KY-020 [9]

Размер модуля 24 х 15 мм, масса 1,3 г. Датчик представляет собой металлический шарик, который замыкает контакты, в том случае, когда плата изменяет свое положение в пространстве примерно на 90 градусов.

Устройство подключается полностью идентично кнопке KY-004.

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

Механический датчик поворота

Механический датчик поворота (Валкодер или энкодер) KY-040 [10-15]. Валкодер представляет собой группу механических контактов по последовательности замыкания, которых можно судить о скорости и направлении вращения его штока. Непосредственно под штоком располагается кнопка, которую можно использовать нажимая на шток. К сожалению, в экземпляре, доставшемся автору, эта кнопка сильно залипает, так что о надежном срабатывании нет и речи.

Размер модуля 30 х 18 мм, высота 28 мм, масса 6,5 г. В плате имеется два крепежных отверстия, диаметром 3 мм, на расстоянии 14 мм друг от друга. Модуль имеет пять выводов:

  • “GND” – общий,
  • “+” – питание 5 В,
  • “SW” – вывод кнопки,
  • “DT” и “CLK” – выводы сигналов с валкодера.

Работа с кнопкой аналогична таковой для любой цифровой кнопки, например KY-004, или аналогичной. С выводов “DT” и “CLK” при вращении штока устройства можно считать последовательности сигналов высокого и низкого логического уровня, сдвинутые по фазе примерно на четверть периода. Определяя с помощью этих меандров скорость и направление вращения ручки валкодера можно например управлять яркостью светодиода [14]. Главное преимущество данного устройства перед переменным резистором, в том, что угол поворота штока валкодера ничем не ограничен.

Джойстик KY-040 [16-17]

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

Размер модуля 40 х 26 мм, высота 28 мм, масса 9,8 г. В плате есть четыре крепежных отверстия, диаметром 3 мм, расположенных в вершинах прямоугольника со сторонами 20 и 26 мм. На плате имеется пять выводов:

  1. “GND” – общий,
  2. “+5V” питание,
  3. “VRx” – выводы переменного резистора кодирующего перемещение по оси X,
  4. “VRy” – выводы переменного резистора кодирующего перемещение по оси Y,
  5. “SW” – вывод кнопки.

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

  • 1) https://arduino-kit.ru/catalog/id/37-v-1-nabor-datchikov
  • 2) https://arduinomaster.ru/arduino-kit/nabor-arduino-sensor-kit-37-v-1/
  • 3) https://mysku.ru/blog/china-stores/37299.html
  • 4) http://robocraft.ru/blog/arduino/57.html
  • 5) https://arduino-kit.ru/catalog/id/modul-taktovoy-knopki
  • 6) https://arduino-kit.ru/catalog/id/modul-datchika-vibratsii
  • 7) https://arduino-kit.ru/userfiles/image/SW-1801_a.jpg
  • 8) https://arduino-kit.ru/catalog/id/modul-datchika-udara
  • 9) https://arduino-kit.ru/catalog/id/modul-datchika-naklona_
  • 10) https://arduino-kit.ru/catalog/id/modul-datchika-vrascheniya-_valkoder_
  • 11) https://mysku.ru/blog/aliexpress/40668.html
  • 12) https://datagor.ru/microcontrollers/281-chto-est-valkoder….html
  • 13) http://www.zi-zi.ru/docs/modules/info_KY-040.pdf
  • 14) http://cxem.net/arduino/arduino8.php
  • 15) http://mypractic.ru/urok-55-rabota-s-inkrementalnym-enkoderom-v-arduino-biblioteka-encod_er-h.
    html
  • 16) http://soltau.ru/index.php/arduino/item/384-kak-podklyuchit-dzhojstik-k-arduino
  • 17) http://www.zi-zi.ru/module/module-ky023

Вторую часть обзора читайте здесь. Специально для 2 Схемы.ру – Denev

Использование джойстика с Arduino • AranaCorp

Теги: Arduino, C/C++, Программирование, Датчик

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

Оборудование

  • Компьютер
  • Arduino UNO
  • USB-кабель Штекер A к штекеру B
  • Джойстик

Принцип действия

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

Схема

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

Код

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

 //Константы
#define NUM_JOY 2
#define MIN_VAL 0
# определить MAX_VAL 1023
//Параметры
const int joyPin [2] = {A0, A1};
const int joyBtn   = 2;
const int joyOffset   = 0;
//Переменные
intjoyVal [NUM_JOY] = {0, 0};
недействительная установка () {
 //Инициализация последовательного USB
  Серийный номер  .begin(9600);
  Серийный номер  .println(F("Инициализировать систему"));
 // Джойстик инициализации
 for (int i = 0; i < NUM_JOY; i++) pinMode(joyPin[i], INPUT);
 pinMode (joyBtn, INPUT_PULLUP);
}
недействительный цикл () {
 читатьДжойстик();
 задержка(500);
}
void readJoystick() { /* function readJoystick */
 ////Процедура тестирования для джойстика
 for (int i = 0; i < NUM_JOY; i++) {
 joyVal[i] = аналоговоеЧтение(joyPin[i]);
  Серийный номер  .print(F("радость"));  Серийный номер  .print(i);  Серийный номер  .print(F(" : "));  Серийный номер  .println(joyVal[i]);
 }
 for (int i = 0; i < NUM_JOY; i++) {
  Серийный номер  .print(F("Conv")),  Серийный номер  . print(i);  Серийный номер  .print(F(" : "));  Серийный номер  .println(joyRawToPhys(joyVal[i]));
 }
 если (!digitalRead(joyBtn)) {
  Серийный номер  .println(F("Кнопка Joy нажата"));
 }
}
float joyRawToPhys(int raw) { /* function joyRawToPhys */
 ////Правило преобразования джойстика
 float phys = map(raw, MIN_VAL, MAX_VAL, -100 + joyOffset, 100 + joyOffset) - joyOffset;
 возврат физ;
}
 

Результат

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

Приложения

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

Источники

  • https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/
  • Управление датчиками с помощью Arduino

Другие примеры и руководства можно найти в нашем Автоматическом генераторе кода
Code Architect

Насколько полезен был этот пост?

Нажмите на звездочку, чтобы оценить!

Средняя оценка 5 / 5. Всего голосов: 2

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не был вам полезен!

Давайте улучшим этот пост!

Расскажите, как мы можем улучшить этот пост?

Как: подключить 4-контактный джойстик к плате Arduino

спросил

Изменено 4 года, 10 месяцев назад

Просмотрено 937 раз

Я совершенно новичок в Arduino. У меня есть джойстик:

Однако он сильно отличается от всех других руководств по джойстику, так как их джойстики имеют 5 контактов, а не только 4. Так что я совершенно в растерянности. Как мне его подключить?

  • джойстик

10

Если ссылка, предоставленная Марком Смитом, верна, то это «двухосевой модуль мини-джойстика xy PSP 2-осевой модуль аналогового джойстика для большого пальца для Arduino» с (как предлагалось в других комментариях) контактами, помеченными на задней панели платы. как GND, X, Y, VCC.

Чтобы использовать его, подключите GND к земле Arduino; подключить каждый из X и Y к аналоговым входам, например A0…A7; подключите VCC к (обычно) 5 В. Затем считайте результаты на аналоговых входных линиях.

Обратите внимание, имеет смысл предварительно протестировать устройство с помощью DVM. Измерьте сопротивление от GND до VCC, чтобы узнать общее сопротивление, чтобы вы могли решить, подходит ли 5 ​​В или вам следует использовать более низкое напряжение. (Например, если общее сопротивление составляет несколько тысяч Ом, подойдет 5 В; если всего несколько сотен, добавьте последовательно одну или две тысячи Ом и снимите аналоговые показания, используя опорное напряжение 1,1 В вместо опорного напряжения 5 В.) Также измерьте сопротивление. от GND к X при перемещении ручки большого пальца и от GND к Y.

Обязательно должно быть 4 контакта: «GND», «VCC», «X» и «Y». GND (-) используется, когда джойстик переходит на отрицательную ось (в зависимости от x или y) на декартовой плоскости, которую он передает как отрицательную на плату Arduino.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *