Pilot27 Posted December 16, 2020 Posted December 16, 2020 Приветствую всех! Есть мысль создать блок кнопок и переключателей на основе клавиатуры. Внутри клавиатуры уже есть контроллер, не надо ничего программировать. Достаточно правильно подпаять кнопки и уложить это в подходящий корпус. По крайней мере, так кажется на первый взгляд. Хотелось бы узнать, есть ли у кого-то уже опыт воплощения такой задумки? Насколько она трудозатратна? Каковы результаты? Есть ли пошаговые инструкции, как для самодельного трекера на Arduino?
milit Posted December 16, 2020 Posted December 16, 2020 (edited) Сделал вот такой пульт на Ардуине-Мега. На корпус просьба внимания не обращать (скручивал в нервах и цейтноте, потом можно переделать. Может быть.) Задействовано 53 кнопки (по числу входов-выходов Ардуины) + 3 оси. С помощью модификаторов, назначенных в настройках DCS, позволяет управлять клавишами всех 3-х МФД Хорнета, ну и + "калькулятор". + кнопки выбора пилонов. + кнопки включения автопилота, такана и прочей... На Ф-16 тоже удобно. Для модулей ГС - избыточно (таки да, много кнопок бывает ) За основу взята МЕХАНИЧЕСКАЯ клавиатура (оказалась с подсветкой, которую решил оставить). Все питается и общается в компом по УСБ. Трудозатраты - неделя не регулярно. Результат - 100% Пошаговой инструкции нет, но могу подсказать: гуглить Arduino Unojoy на GitHub-е, а там выбирать проект в зависимости от имеющейся Ардуинки. Подходят Уно и Мега (обе 3-ей ревизии). Леонардо и Микро - точно нет, но на них можно сделать чуть по-другому (но будет не так удобно ИМХО). Хотя, Микро, наверное, тоже отпадает... не знаю... Цена где-то в районе 3500-4000. Зависит от наличия механической клавы. Можно, конечно, свичи заказать на али, но ждать полгода - ваше дело. (+ у меня еще 80 свичей в запасе осталось ) Edited December 16, 2020 by milit 2 =WRAG=345 R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64
Pilot27 Posted December 16, 2020 Author Posted December 16, 2020 Спасибо за наводку на Unojoy! Буду "курить" матчасть))
milit Posted December 17, 2020 Posted December 17, 2020 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
Pilot27 Posted December 17, 2020 Author Posted December 17, 2020 40 минут назад, milit сказал: Будут вопросы - пишите. Вчера нашел вот такое видео. Здесь эмулируется джойстик xbox360, т.е. получаем кнопки и оси, которые имеет этот джойстик. В вашей реализации аналогичная схема? Не могли бы Вы скинуть скетч? И как Вы настраиваете кнопки и калибруете оси на Ардуино Мега?
Econ Posted December 17, 2020 Posted December 17, 2020 Вот тут прграммировать не нужно ничего: https://github.com/FreeJoy-Team/FreeJoyWiki
Pilot27 Posted December 17, 2020 Author Posted December 17, 2020 4 минуты назад, Econ сказал: Вот тут прграммировать не нужно ничего: https://github.com/FreeJoy-Team/FreeJoyWiki Круто! Спасибо!
Pilot27 Posted December 17, 2020 Author Posted December 17, 2020 13 минут назад, Econ сказал: Я себе вот такое делал Показать содержимое Это на STM32F103C8 по той ссылке?
milit Posted December 17, 2020 Posted December 17, 2020 (edited) 1 час назад, Econ сказал: Вот тут прграммировать не нужно ничего: https://github.com/FreeJoy-Team/FreeJoyWiki Программатор где добыть? Нашел ) 1 час назад, Pilot27 сказал: В вашей реализации аналогичная схема? Не могли бы Вы скинуть скетч? И как Вы настраиваете кнопки и калибруете оси на Ардуино Мега? Вот есть видосик на русском: Скетч приложил. Кнопки и оси настраивал в игре. На оси повесил второстепенные регуляторы, с калибровкой не заморачивался. MegaJoy.zip Edited December 17, 2020 by milit 1 =WRAG=345 R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64
Pilot27 Posted December 17, 2020 Author Posted December 17, 2020 3 часа назад, milit сказал: Программатор где добыть? Нашел ) Вот есть видосик на русском: Скетч приложил. Кнопки и оси настраивал в игре. На оси повесил второстепенные регуляторы, с калибровкой не заморачивался. MegaJoy.zip 1 \u041c\u0431 · 5 скачиваний Спасибо!
milit Posted December 17, 2020 Posted December 17, 2020 4 часа назад, Econ сказал: Я себе вот такое делал Показать содержимое Дружище, а ты кнопки через сдвиговый регистр подключал? =WRAG=345 R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64
vvm13 Posted December 17, 2020 Posted December 17, 2020 Есть много разных способов освежевать кота. Из Ардуин для джойстиков и гемпадов естественно брать те, что на 32U4, и это, как правило, "Про Микро" (просьба не путать с "Микро"), и иногда "Леонардо". Ибо 32U4 умеет прикидываться джойстиком и геймпадом (а также клавиатурой, мышью...). Мега и Уно же как таковые не умеют этого. У них, у оригиналов, для работы по USB может быть микросхема 16U2 (грубо говоря, урезанная 32U4), с которой таки можно что-то сделать, зато у китайских копий другая микросхема, которая совсем не годится. Когда несложно купить "Про Микро", зачем заниматься странностями? Для 32U4 популярна прошивка MMJoy2 ( https://forum.il2sturmovik.ru/topic/4664-mmjoy2-бесплатная-прошивка-и-софт-для-самодельного-контроллера-джойстика/ а на гитхабе видел ещё пару-тройку. Мега и Уно используют в DCS-BIOS ( ) - эта вещь специфическая и ОС с DCS не считают её джойстиком (работа идёт по COM-порту). C ней можно делать гораздо более интересные вещи, чем доступны джойстику (кроме кнопок, есть ещё и приборы). С другой стороны, РУС с РУД'ом не эмулируются... 1
milit Posted December 17, 2020 Posted December 17, 2020 (edited) 35 минут назад, vvm13 сказал: Есть много разных способов освежевать кота. ... ... эта вещь специфическая и ОС с DCS не считают её джойстиком (работа идёт по COM-порту). C ней можно делать гораздо более интересные вещи, чем доступны джойстику (кроме кнопок, есть ещё и приборы). С другой стороны, РУС с РУД'ом не эмулируются... 1. Про кота - точно! 2. Вам не знаком еще один из способов освежевания: перевод 16U2 в режим DFU. В этом режиме Мега (как и Уно) видится как джойстик с осями и кнопками, проглатывается DCS-ом без лишних телодвижений, никаких DCS-BIOS не требуется: Edited December 17, 2020 by milit 1 =WRAG=345 R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64
milit Posted December 17, 2020 Posted December 17, 2020 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
vvm13 Posted December 17, 2020 Posted December 17, 2020 1 hour ago, milit said: 1. Про кота - точно! 2. Вам не знаком еще один из способов освежевания: перевод 16U2 в режим DFU. В этом режиме Мега (как и Уно) видится как джойстик с осями и кнопками, проглатывается DCS-ом без лишних телодвижений, никаких DCS-BIOS не требуется: Полагаю, что знаком, "может быть микросхема 16U2 (грубо говоря, урезанная 32U4), с которой таки можно что-то сделать". Во-первых, надо специально разбираться, есть ли она, и, во-вторых, она же урезанная. А клон Pro Micro точно годится, да ещё и дешевле. (Хотя Blue Pill ещё дешевле).
Econ Posted December 18, 2020 Posted December 18, 2020 19 часов назад, milit сказал: Дружище, а ты кнопки через сдвиговый регистр подключал? Да. Я еще руд делал для Warthog, так что кнопок нужно было много подключать. 1
Pilot27 Posted December 19, 2020 Author Posted December 19, 2020 (edited) Коллеги, приветствую! Приобрел Arduino pro micro и прошил MMJOY2 v20161101. Есть пара вопросов: 1) Матрица кнопок: Правильно ли я понимаю, что резисторы всегда отходят от рядов, а диоды всегда ставятся в начале колонки? При этом резисторы ставим 10 кОм, диоды 1N4148, КД522Б? И нужно ли вообще ставить диоды? В некоторых схемах их нет, в некоторых только к начале колонки, в некоторых перед каждой кнопкой 2) Подключение осей (резисторов). Вешаются ли все резисторы на общую землю и питание VCC +5, и только центральный вывод каждого резистора соединяется со своим входом AI? Это входы 4, 6, 8, 9, A3, A2, A1, A0, 10? Edited December 19, 2020 by Pilot27 дополнения
milit Posted December 19, 2020 Posted December 19, 2020 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
Pilot27 Posted December 19, 2020 Author Posted December 19, 2020 7 минут назад, milit сказал: 1. Диоды на матрице нужны: защита платы при нажатии двух кнопок одновременно. 2. Да, правильно. А какая схема все-таки правильная? Я видел несколько. У кого-то и резисторы и диоды, у кого-то только диоды после каждой кнопки. У кого-то диоды и резисторы в начале рядов и колонок.
milit Posted December 19, 2020 Posted December 19, 2020 49 минут назад, Pilot27 сказал: А какая схема все-таки правильная? Я видел несколько. У кого-то и резисторы и диоды, у кого-то только диоды после каждой кнопки. У кого-то диоды и резисторы в начале рядов и колонок. Считать надо. =WRAG=345 R7 5800X @ 4,8 GHz; DDR4 64Gb RAM (+32Gb swap); Radeon RX 6800 16Gb; 3840x2160; Oculus Quest 3; Win10-64
vvm13 Posted December 19, 2020 Posted December 19, 2020 Диоды нужны (по кнопке на резистор), резисторы - не факт. На картинке у MMJoy'я резисторов нет, например. (У Ардуинок есть встроенные, которые можно включать-выключать, и в MMJoy-евской прошивке они, наверное, включены). Если погуглить "MMJoy2 matrix" и выбрать images, можно получить массу картинок.
Pilot27 Posted December 19, 2020 Author Posted December 19, 2020 2 часа назад, vvm13 сказал: Диоды нужны (по кнопке на резистор), резисторы - не факт. На картинке у MMJoy'я резисторов нет, например. (У Ардуинок есть встроенные, которые можно включать-выключать, и в MMJoy-евской прошивке они, наверное, включены). Если погуглить "MMJoy2 matrix" и выбрать images, можно получить массу картинок. Да я гуглил. Картинки разные попадаются. Кажется, разобрался, диоды ставлю, сопротивление не ставлю.
FenechkA Posted December 20, 2020 Posted December 20, 2020 добрый совет, забей на матрицу, делай на сдвиговых регистрах, в разы удобнее.
Pilot27 Posted December 20, 2020 Author Posted December 20, 2020 3 часа назад, FenechkA сказал: добрый совет, забей на матрицу, делай на сдвиговых регистрах, в разы удобнее. Спасибо, но слишком сложно для меня на данном этапе. Образование совсем не подходящее. С этим бы разобраться))
Recommended Posts