Адаптер переключения передач Logitech G29 - Arduino Nano ...
Это модификация, призванная превратить великолепный переключатель передач Logitech в отдельный продукт. Это дешево и надежно, доступно многим и прекрасно работает.
Концепция:
Есть один преобладающий способ, получивший популярность. Но здесь есть некоторые ограничения. Он не работает с Arduino Nano и некоторыми другими. Поскольку он мне доступен, я хотел использовать Arduino Nano ESP32 из-за его небольшого размера и разъема USB C.
В этом проекте вам потребуется разрезать кабель и припаять его непосредственно к Arduino. Если вам это не нравится, вы всегда можете следовать этому замечательному уроку, созданному Дэйвом Мэдисоном (ссылка ниже), пайка не требует.
— https://www.partsnotincluded.com/how-to-build-a-diy-logitech-shifter-usb-adapter/
Как это работает:
В переключателе используются два потенциометра для определения положения переключателя и одна кнопка для переключения назад. Arduino интерпретирует это как семь отдельных нажатий кнопок.
--------------------------------------------------------------------------------------------------
Инструменты, которые потребуются:
Хороший небольшой паяльник, например Miniware TS100, небольшой пинцет и бокорезы.
--------------------------------------------------------------------------------------------------
Шаг 1. Перепрошивка Circuitpython
Прошивка Arduino с помощью Circuitpython
— https://circuitpython.org/board/arduino_nano_esp32s3/
Рекомендую использовать установщик. Этот шаг может оказаться непростым: вам нужно перевести Arduino в режим загрузчика.
Чтобы войти в режим загрузчика, нажмите кнопку сброса, а затем нажмите ее еще раз, как только начнет мигать светодиод RGB. Вы узнаете, что успешно вошли в режим загрузчика, если увидите медленно пульсирующий зеленый светодиод.
https://docs.arduino.cc/tutorials/nano-esp32/cheat-sheet/
--------------------------------------------------------------------------------------------------
Проблемы с прошивкой Arduino Nano ESP32?
Возможно, вам придется пойти немного другим путем, чем тот, который описан выше. Загрузите последнюю версию Circuitpython .BIN, затем перейдите по адресу https://espressif.github.io/esptool-js/ и используйте этот инструмент для ее прошивки.
Подключитесь к нему, затем нажмите «Стереть Flash». Когда это будет сделано, обновите страницу. Подключитесь еще раз, затем выберите файл .BIN, измените адрес флэш-памяти на 0x0 и нажмите «программировать». Вы должны увидеть текст, останавливающийся на «Аппаратный сброс через контакт RTS...». Когда это будет сделано, вы можете нажать кнопку сброса на Arduino, вы должны увидеть, что открывается каталог устройства под названием «CIRCUITPY». Теперь вы готовы к следующему шагу.
--------------------------------------------------------------------------------------------------
Шаг 2. Настройка JoystickXL и файлов
Загрузите последнюю сборку JoystickXL.
https://github.com/fasteddy516/CircuitPython_JoystickXL/releases
Установка
Загрузите последнюю версию JoystickXL, соответствующую используемой вами версии CircuitPython. (т. е. joystick_xl_x.x.x_cp8 для CircuitPython 8.x)
Извлеките файлы из загруженного архива .zip.
Скопируйте папку joystick_xl в папку lib на диске CIRCUTPY вашего устройства.
https://circuitpython-joystickxl.readthedocs.io/en/latest/start.html
Этот шаг очень важен, на этом этапе ваш Arduino должен отображаться как диск CIRCUTPY. Там вам нужно поместить содержимое папки JoystickXL.zip в папку lib lib > joystick_xl. Чтобы это заработало, вам нужно добавить еще один файл в папку lib. Создайте текстовый документ (щелкните правой кнопкой мыши «Создать» > «текстовый документ») и вставьте это:
класс ВиртуальнаяКнопка:
защита __init__(сам):
self._value = Истина
@property
значение определения (сам):
return not self._value # Инвертировать для HID (False = нажата)
@value.setter
значение по умолчанию (я, значение):
self._value = not val # Сохранять как инвертированное внутри
Сохраните его как virtual_button.py (не .txt). Используйте «Файл» > «Сохранить как», выберите «Все файлы» в разделе «Тип сохранения» и назовите его точно: virtual_button.py.
---------------------------------------------------------





























