DIY Arduino ButtonBox — версия 2

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

 

Краткое описание:

— красные тумблеры слева: верхний — менять шины спереди, нижний — сзади
— зеленые тумблеры в середине: левый — делать fast repair, правый — чистить лобовое
— маленькие тумблеры справа: верхний — подкачать/скачать давление в передних колесах, нижний — в задних
— два энкодера снизу: левый работает как prev/next control, т.е. эмулирует нажатие курсора вверх/вниз, правый — изменить значение, т.е. нажатие курсора влево/вправо. Кнопка на левом энкодера — выбрать/пробел, на правом — TAB
— энкодер в правом верхнем углу — выбор количества топлива на дозаливку, кнопка на этом энкодере — ESC
— кнопка слева вверху — послать pit combo

 

Принцип использования следующий — тумблерами формируется нужное комбо и при нажатии кнопки «Pit Combo» оно посылается в ПК/игру. Допустим, включаете только верхний красный тумблер — посылается «#clear lf rf», включаете только оба зеленых тумблера — посылается #clear fr ws и т.д. Предварительный #clear поставил, чтобы исключить какое-либо влияние предыдущих команд, на всякий случай. Два нижних энкодера играют вспомогательную роль, эмулируют нажатия клавиш курсора, кнопок «Space» и «TAB» и работают, естественно, сразу, вне зависимости от нажатий «Pit Combo».

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

DSC_0322
Например, на скрине выше строка слева направо означает: снижаем давление и в передних, и в задних шинах на 7 пунков, чистим лобовое, делаем fast repair и доливаем 10 литров. Получившийся пит комбо можно увидеть в ировском окошке

 

Требуются:

Резисторы потребовались, поскольку из-за нехватки достаточного количества ног у Arduino пришлось городить аналог OneWireKeypad, правда описанную по ссылке матрицу у меня реализовать не получилось — итоговое падение напряжения таково, что разница между кнопками уже теряется на фоне шумов. Может быть это связано с недостаточно качественным питанием от моего USB-порта или с китайской ардуиной — не знаю. Экспериментировать с разными номиналами резисторов не стал. Опытным путем подобрал, что стабильно на один провод с 1кОм резисторами можно повесить 4 кнопки. В результате остались еще 2 свободных аналоговых пина (18, 19) — при желании к ним можно аналогично подключить еще 8 кнопок, доработав скетч соответсвующим образом.

Схема:

scheme_buttpit11

Скетч можно скачать здесь. Для него требуется библиотека RotaryEncoders

Реклама

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s