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

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

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

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

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

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

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

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

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

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

Управляет всем стик. При изменении положения стика по оси X

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

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


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

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

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

подключим джойстик к Arduino UNO по схеме.

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

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

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

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

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

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

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

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

 Данный диапазон значений практически не применим в проектах на Ардуино

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

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


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

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

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

Подключим джойстик и светодиоды к Ардуино по схеме

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

Так как мы знаем значение при центральном положении стика

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


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

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

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

 двух servo подключённых к Arduino UNO по схеме

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

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

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

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

 двух servo подключённых к Arduino UNO

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

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

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

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

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

Файлы для скачивания

Вывод в монитор порта Вывод в монитор порта.ino1 Kb 123 Скачать
Вывод в монитор порта + map() Вывод в монитор порта + map().ino1 Kb 96 Скачать
Управление светодиодами с помощью джойстика Управление светодиодами с помощью джойстика.ino1 Kb 130 Скачать
Управление сервоприводами с помощью джойстика Управление сервоприводами с помощью джойстика.ino1 Kb 180 Скачать
Вернуться в раздел: Уроки Arduino: Подключение датчиков и модулей к Arduino Дата публикации 18 марта , 2020

Комментарии

Ваше Имя*
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.


Cлучайные товары


Посмотреть товар в Магазине »

Мы в соц сетях

Подпишись на канал Мы на facebook
Яндекс.Метрика

Portal-PK (Портал ПК) © 2015 - 2020
ЧПУ
Карта сайта
RSS