Jump to content

Блок переключателей на базе клавиатуры


Recommended Posts

Posted

Приветствую всех!

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

Хотелось бы узнать, есть ли у кого-то уже опыт воплощения такой задумки? Насколько она трудозатратна? Каковы результаты? Есть ли пошаговые инструкции, как для самодельного трекера на Arduino?

 

Posted (edited)

Сделал вот такой пульт на Ардуине-Мега. На корпус просьба внимания не обращать (скручивал в нервах и цейтноте, потом можно переделать. Может быть.)

Задействовано 53 кнопки (по числу входов-выходов Ардуины) + 3 оси.

С помощью модификаторов, назначенных в настройках DCS, позволяет управлять клавишами всех 3-х МФД Хорнета, ну и + "калькулятор". + кнопки выбора пилонов. + кнопки включения автопилота, такана и прочей...

На Ф-16 тоже удобно.

Для модулей ГС - избыточно (таки да, много кнопок бывает 🙂 )

За основу взята МЕХАНИЧЕСКАЯ клавиатура (оказалась с подсветкой, которую решил оставить). Все питается и общается в компом по УСБ.

Трудозатраты - неделя не регулярно.

Результат - 100%

Пошаговой инструкции нет, но могу подсказать: гуглить Arduino Unojoy на GitHub-е, а там выбирать проект в зависимости от имеющейся Ардуинки.

Подходят Уно и Мега (обе 3-ей ревизии). Леонардо и Микро - точно нет, но на них можно сделать чуть по-другому (но будет не так удобно ИМХО). Хотя, Микро, наверное, тоже отпадает... не знаю...

Цена где-то в районе 3500-4000. Зависит от наличия механической клавы. Можно, конечно, свичи заказать на али, но ждать полгода - ваше дело. (+ у меня еще 80 свичей в запасе осталось 🙂 )

DSC_6859.jpg

Edited by milit
  • Like 2

=WRAG=345

R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64

Posted
8 часов назад, Pilot27 сказал:

Спасибо за наводку на Unojoy! Буду "курить" матчасть)) 

Будут вопросы - пишите.

=WRAG=345

R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64

Posted
40 минут назад, milit сказал:

Будут вопросы - пишите.

 

Вчера нашел вот такое видео.

 

 

Здесь эмулируется джойстик xbox360, т.е. получаем кнопки и оси, которые имеет этот джойстик.

В вашей реализации аналогичная схема? Не могли бы Вы скинуть скетч? И как Вы настраиваете кнопки и калибруете оси на Ардуино Мега?

Posted
13 минут назад, Econ сказал:

Я себе вот такое делал

  Показать содержимое

32686050.jpg

 

Это на STM32F103C8 по той ссылке? 

Posted (edited)
1 час назад, Econ сказал:

Вот тут прграммировать не нужно ничего:

https://github.com/FreeJoy-Team/FreeJoyWiki

 

Программатор где добыть?

Нашел )

1 час назад, Pilot27 сказал:

В вашей реализации аналогичная схема? Не могли бы Вы скинуть скетч? И как Вы настраиваете кнопки и калибруете оси на Ардуино Мега?

Вот есть видосик на русском:

 

Скетч приложил.

Кнопки и оси настраивал в игре. На оси повесил второстепенные регуляторы, с калибровкой не заморачивался.

MegaJoy.zip

Edited by milit
  • Like 1

=WRAG=345

R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64

Posted
3 часа назад, milit сказал:

Программатор где добыть?

Нашел )

Вот есть видосик на русском:

 

Скетч приложил.

Кнопки и оси настраивал в игре. На оси повесил второстепенные регуляторы, с калибровкой не заморачивался.

MegaJoy.zip 1 \u041c\u0431 · 5 скачиваний

 

 

Спасибо!

Posted
4 часа назад, Econ сказал:

Я себе вот такое делал

  Показать содержимое

32686050.jpg

 

Дружище, а ты кнопки через сдвиговый регистр подключал?

=WRAG=345

R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64

Posted

Есть много разных способов освежевать кота. Из Ардуин для джойстиков и гемпадов естественно брать те, что на 32U4, и это, как правило, "Про Микро" (просьба не путать с "Микро"), и иногда "Леонардо". Ибо 32U4 умеет прикидываться джойстиком и геймпадом (а также клавиатурой, мышью...). Мега и Уно же как таковые не умеют этого. У них, у оригиналов, для работы по USB может быть микросхема 16U2 (грубо говоря, урезанная 32U4), с которой таки можно что-то сделать, зато у китайских копий другая микросхема, которая совсем не годится. Когда несложно купить "Про Микро", зачем заниматься странностями?

Для 32U4 популярна прошивка MMJoy2 ( https://forum.il2sturmovik.ru/topic/4664-mmjoy2-бесплатная-прошивка-и-софт-для-самодельного-контроллера-джойстика/

а на гитхабе видел ещё пару-тройку.

Мега и Уно используют в DCS-BIOS ( 

) - эта вещь специфическая и ОС с DCS не считают её джойстиком (работа идёт по COM-порту). C ней можно делать гораздо более интересные вещи, чем доступны джойстику (кроме кнопок, есть ещё и приборы). С другой стороны, РУС с РУД'ом не эмулируются...

  • Like 1
Posted (edited)
35 минут назад, vvm13 сказал:

Есть много разных способов освежевать кота. ...

... эта вещь специфическая и ОС с DCS не считают её джойстиком (работа идёт по COM-порту). C ней можно делать гораздо более интересные вещи, чем доступны джойстику (кроме кнопок, есть ещё и приборы). С другой стороны, РУС с РУД'ом не эмулируются...

1. Про кота - точно!

2. Вам не знаком еще один из способов освежевания: перевод 16U2 в режим DFU. В этом режиме Мега (как и Уно) видится как джойстик с осями и кнопками, проглатывается DCS-ом без лишних телодвижений, никаких DCS-BIOS не требуется:

 

Уноджой.png

Edited by milit
  • Like 1

=WRAG=345

R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64

Posted
33 минуты назад, vvm13 сказал:

 

Для 32U4 популярна прошивка MMJoy2 ( https://forum.il2sturmovik.ru/topic/4664-mmjoy2-бесплатная-прошивка-и-софт-для-самодельного-контроллера-джойстика/

а на гитхабе видел ещё пару-тройку.

 

По ссылке - девайсик на основе контроллера из поста @Econ чуть выше.

=WRAG=345

R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64

Posted
1 hour ago, milit said:

1. Про кота - точно!

2. Вам не знаком еще один из способов освежевания: перевод 16U2 в режим DFU. В этом режиме Мега (как и Уно) видится как джойстик с осями и кнопками, проглатывается DCS-ом без лишних телодвижений, никаких DCS-BIOS не требуется:

 

Полагаю, что знаком, "может быть микросхема 16U2 (грубо говоря, урезанная 32U4), с которой таки можно что-то сделать". Во-первых, надо специально разбираться, есть ли она, и, во-вторых, она же урезанная. А клон Pro Micro точно годится, да ещё и дешевле. (Хотя Blue Pill ещё дешевле).

 

Posted
19 часов назад, milit сказал:

Дружище, а ты кнопки через сдвиговый регистр подключал?

Да. Я еще руд делал для Warthog, так что кнопок нужно было много подключать.

 

  • Like 1
Posted (edited)

Коллеги, приветствую!

 

Приобрел Arduino pro micro и прошил MMJOY2 v20161101.

Есть пара вопросов:

1) Матрица кнопок: Правильно ли я понимаю, что резисторы всегда отходят от рядов, а диоды всегда ставятся в начале колонки? При этом резисторы ставим 10 кОм, диоды 1N4148, КД522Б? И нужно ли вообще ставить диоды? В некоторых схемах их нет, в некоторых только к начале колонки, в некоторых перед каждой кнопкой 

2) Подключение осей (резисторов). Вешаются ли все резисторы на общую землю и питание VCC +5, и только центральный вывод каждого резистора соединяется со своим входом AI? Это входы 4, 6, 8, 9, A3, A2, A1, A0, 10?

 

 

Edited by Pilot27
дополнения
Posted
2 часа назад, Pilot27 сказал:

Коллеги, приветствую!

 

Приобрел Arduino pro micro и прошил MMJOY2 v20161101.

Есть пара вопросов:

1) Матрица кнопок: Правильно ли я понимаю, что резисторы всегда отходят от рядов, а диоды всегда ставятся в начале колонки? При этом резисторы ставим 10 кОм, диоды 1N4148, КД522Б? И нужно ли вообще ставить диоды? В некоторых схемах их нет, в некоторых только к начале колонки, в некоторых перед каждой кнопкой 

2) Подключение осей (резисторов). Вешаются ли все резисторы на общую землю и питание VCC +5, и только центральный вывод каждого резистора соединяется со своим входом AI? Это входы 4, 6, 8, 9, A3, A2, A1, A0, 10?

 

 

 

1. Диоды на матрице нужны: защита платы при нажатии двух кнопок одновременно.

2. Да, правильно.

=WRAG=345

R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64

Posted
7 минут назад, milit сказал:

1. Диоды на матрице нужны: защита платы при нажатии двух кнопок одновременно.

2. Да, правильно.

А какая схема все-таки правильная? Я видел несколько. У кого-то и резисторы и диоды, у кого-то только диоды после каждой кнопки. У кого-то диоды и резисторы в начале рядов и колонок. 

Posted
49 минут назад, Pilot27 сказал:

А какая схема все-таки правильная? Я видел несколько. У кого-то и резисторы и диоды, у кого-то только диоды после каждой кнопки. У кого-то диоды и резисторы в начале рядов и колонок. 

Считать надо.

=WRAG=345

R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64

Posted

Диоды нужны (по кнопке на резистор), резисторы - не факт. На картинке у MMJoy'я резисторов нет, например. (У Ардуинок есть встроенные, которые можно включать-выключать, и в MMJoy-евской прошивке они, наверное, включены). Если погуглить "MMJoy2 matrix" и выбрать images, можно получить массу картинок.

 

Posted
2 часа назад, vvm13 сказал:

Диоды нужны (по кнопке на резистор), резисторы - не факт. На картинке у MMJoy'я резисторов нет, например. (У Ардуинок есть встроенные, которые можно включать-выключать, и в MMJoy-евской прошивке они, наверное, включены). Если погуглить "MMJoy2 matrix" и выбрать images, можно получить массу картинок.

 

Да я гуглил. Картинки разные попадаются. Кажется, разобрался, диоды ставлю, сопротивление не ставлю.

Posted
3 часа назад, FenechkA сказал:

добрый совет, забей на матрицу, делай на сдвиговых регистрах, в разы удобнее.

 

Спасибо, но слишком сложно для меня на данном этапе. Образование совсем не подходящее. С этим бы разобраться))

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...