Колпачки для симулятора грузовиков Euro............
Вдохновленный 12-кнопочной макроклавиатурой, я модифицировал модель для симулятора грузовиков Euro. Я сделал колпачки клавиш 12+1 для симулятора грузовиков евро. И я переписал код для Arduino, чтобы клавиатура теперь распознавалась как игровой контроллер, чтобы больше не было конфликтов при двойных сочетаниях клавиш.
В нижней части кода вы можете настроить, какая кнопка связана с каким входом. Таким образом, н��т обязательного порядка пайки.
Код:
https://github.com/Woetter22/12-Button-Gamepad
// 12-кнопочный геймпад
// по мотивам Стюарта Брэнда (JamHamster)https://github.com/jamhamster
// Вдохновлен тестовым эскизом Мэтти Хейронимуса JoystickButton
// 10.13.2024 ВАБ
// Только для Arduino Leonardo и Arduino Micro.
// С благодарностью основано на примере кода геймпада Мэтью Хейронимуса (https://github.com/MHeironimus)
// Использует отличную библиотеку джойстиков здесь: https://github.com/MHeironimus/ArduinoJoystickLibrary
//--------------------------------------------------------------------
#include
Джойстик_ Джойстик(JOYSTICK_DEFAULT_REPORT_ID,JOYSTICK_TYPE_GAMEPAD,
12, 0, // Количество ��нопок, количество переключателей шляпы
false, false, false, // X и Y, но без оси Z
false, false, false, // Нет Rx, Ry или Rz
false, false, // Нет руля направления или газа
ложь, ложь, ложь); // Нет акселератора, тормоза или рулевого управления
недействительная настройка()
{Джойстик.begin();
//Проходит через контакты Arduino и устанавливает все на входное подтягивание
for (int PSweep=0; PSweep<22; PSweep++){pinMode(PSweep, INPUT_PULLUP);}
//Проходит по кнопкам геймпада и устанавливает все на 0
for (int BSweep=0; BSweep<22; BSweep++){Joystick.setButton(BSweep, 0);}
}
//Начало основного цикла
недействительный цикл() {
//Итерация по контактам и преобразование непосредственно в нажатие кнопок (Номер кнопки джойстика, контакт Arduino)
//Измените это, чтобы изменить/добавить/удалить назначения кнопок.
Joystick.setButton(0,(!digitalRead(2)));
Joystick.setButton(1,(!digitalRead(3)));
Joystick.setButton(2,(!digitalRead(4)));
Joystick.setButton(3,(!digitalRead(5)));
Joystick.setButton(4,(!digitalRead(6)));
Joystick.setButton(5,(!digitalRead(7)));
Joystick.setButton(6,(!digitalRead(8)));
Joystick.setButton(7,(!digitalRead(9)));
Joystick.setButton(8,(!digitalRead(10)));
Joystick.setButton(9,(!digitalRead(16)));
Joystick.setButton(10,(!digitalRead(14)));
Joystick.setButton(11,(!digitalRead(15)));
задержка(10);
}