Совет 1: Как подключить джойстик к Arduino

Существует большое разнообразие способов передачи информации от человека микроконтроллеру или компьютеру, и один из них - это использование джойстика. Давайте посмотрим как подключить к Arduino аналоговый джойстик с двумя осями и кнопкой.
Джойстик с двумя осями и кнопкой
Вам понадобится
  • - Arduino;
  • - двухосевой джойстик;
  • - 3 резистора номиналом 220 Ом;
  • - 1 RGB или 3 обычных светодиода.
Инструкция
1
Джойстик - удобное и лёгкое в использовании устройство для передачи информации. Видов джойстиков по количеству степеней свободы, принципу считывания показаний и используемым технологиям существует большое количество. Джойстики чаще всего используются для управления движением каких-либо механизмов, управляемых моделей, роботов. Аналоговый джойстик, который мы сегодня рассмотрим, представляет собой ручку, закреплённую на шаровом шарнире с двумя взаимно перпендикулярными осями. При наклоне ручки, ось вращает подвижный контакт потенциометра, благодаря чему изменяется напряжение на его выходе. Также аналоговый джойстик имеет тактовую кнопку, которая срабатывает при вертикальном надавливании на ручку.
Принципиальная схема джойстика
2
Подключим джойстик по приведённой схеме. Аналоговые выходы X и Y джойстика подключим к аналоговым входам A1 и A2 Arduino, выход кнопки SW - к цифровому входу 8. Питание джойстика осуществляется напряжением +5 В.
Схема подключения джойстика к Arduino
3
Для того чтобы наглядно увидеть, как работает джойстик, напишем такой скетч. Объявим пины, зададим им режимы работы. Обратите внимание, в процедуре setup() мы подали на вход switchPin высокий уровень. Этим мы включили встроенный подтягивающий резистор на этом порту. Если его не включить, то, когда кнопка джойстика не нажата, 8-ой порт Arduino будет висеть в воздухе и ловить наводки. Это повлечёт за собой нежелательные хаотичные ложные срабатывания.

В процедуре loop() мы постоянно опрашиваем состояние кнопки и отображаем его с помощью светодиода на выходе 13. Из-за того, что вход switchPin подтянут к питанию, светодиод постоянно горит, а при нажатии кнопки гаснет, а не наоборот.

Далее мы считываем показания двух потенциометров джойстика - выхода осей X и Y. Arduino имеет 10-разрядные АЦП, поэтому значения, снимаемые с джойстика, лежат в диапазоне от 0 до 1023. В среднем положении джойстика, как видно на иллюстрации, снимаются значения в районе 500 - примерно середина диапазона.
Скетч для демонстрации работы джойстика
4
Обычно джойстик используют для управления электродвигателями. Но почему бы не использовать его, например, для управления яркостью светодиода? Давайте подключим по приведённой схеме RGB светодиод (или три обычных светодиода) к цифровым портам 9, 10 и 11 Arduino, не забывая, конечно, о резисторах.
Схема подключения джойстика и RGB светодиода к Arduino
5
Будем менять яркость соответствующих цветов при изменении положения джойстика по осям, как показано на рисунке. Из-за того, что джойстик может быть не точно отцентрирован производителем и иметь середину шкалы не на отметке 512, а от 490 до 525, то светодиод может слегка светиться даже когда джойстик находится в нейтральном положении. Если вы хотите, чтобы он был полностью выключен, то внесите в программу соответствующие поправки.
Диаграмма распределения яркости R, G, B каналов по осям X и Y
6
Ориентируясь на приведённую диаграмму, напишем скетч управления Arduino яркостью RGB светодиода с помощью джойстика.

Сначала объявим соответствие пинов и две переменные - ledOn и prevSw - для работы с кнопкой. В процедуре setup() назначим пинам функции и подключим к пину кнопки подтягивающий резистор командой digitalWrite(swPin, HIGH).

В цикле loop() определяем нажатие кнопки джойстика. При нажатии на кнопку переключаем режимы работы между режимом "фонарика" и режимом "цветомузыки".

В режиме freeMode() управляем яркостью светодиодов с помощью наклона джойстика в разные стороны: чем сильнее наклон по оси, тем ярче светит соответствующий цвет. Причём преобразование значений берёт на себя функция map(значение, отНижнего, отВерхнего, кНижнему, кВерхнему). Функция map() переносит измеренные значения (отНижнего, отВерхнего) по осям джойстика в желаемый диапазон яркости (кНижнему, кВерхнему). Можно то же самое сделать обычными арифметическими действиями, но такая запись существенно короче.

В режиме discoMode() три цвета попеременно набирают яркость и гаснут. Чтобы можно было выйти из цикла при нажатии кнопки, каждую итерацию проверяем, не была ли нажата кнопка.
Скетч для управления яркостью светодиода с помощью аналогового джойстика
7
В результате получился фонарик из трёхцветного RGB светодиода, яркость свечения каждого цвета которого задаётся с помощью джойстика. А при нажатии на кнопку происходит включение режима "цветомузыка". Хотя у меня он используется, наоборот, в качестве ночника.

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

Совет 2: Как включить джойстик в 2018 году

Многие геймеры признаются, что ощущения от игры становятся намного ярче, когда управление осуществляется не мышью и клавиатурой, а при помощи игрового джойстика. Практически все современные игры – гонки, симуляторы, аркады, стратегии - поддерживают подобное управление.
Как включить джойстик
Вам понадобится
  • Джойстик, компьютер с доступом к Интернету.
Инструкция
1
Откройте в браузере любую поисковую страницу и введите в строке поиска запрос, например, «скачать программу Xpadder» - эта программа понадобится для подключения джойстика. С ее помощью джойстик можно использовать даже в играх, которые не поддерживают геймпад.
2
Пройдите по одной из ссылок и скачайте программу.
3
Установите Xpadder на свой компьютер и запустите программу.
4
Подключите джойстик.
5
В открывшемся окне программы щелкните на кнопку с изображением джойстика и выберите в меню пункт «Новый».
6
С помощью мастера добавьте кнопки джойстика.
7
Назначьте кнопкам на джойстике соответствующие клавиши на клавиатуре или мыши.
Видео по теме
Обратите внимание
В отдельных случаях причиной, по которой не подключается джойстик, является вовсе не само устройство, а неисправности в игре– необходимо связаться с технической поддержкой. Проверить это очень легко: попробуйте запустить другую игру и управлять при помощи джойстика.
Полезный совет
Если вы не получите отклика от устройства, необходимо проверить его работоспособность. Это можно сделать следующим образом. Откройте панель управления: Пуск – Настройка – Панель управления. Найдите значок Игровые устройства и откройте это окно. Если статус джойстика ОК, нажмите Свойства и выберите закладку Проверка. Откроется окно, где вы сможете проверить работоспособность устройства.
Источники:
  • Много полезной информации о подключении джойстиков.
Совет полезен?
Поиск
Добавить комментарий к статье
Осталось символов: 500