Macropad - Seeed Xiao RP2040 - 1 клавиша
Особенности:
Предназначен для переключателей, совместимых с Cherry MX.
Светодиодное окно для использования встроенного неопиксельного RGB-светодиода RP2040.
Никаких винтов!
Механические держатели колышков для RP2040.
Защелкивающаяся крышка.
Отверстие для доступа к USB-порту на задней стороне макропада.
Симпатичный и небольшой размер, всего 1 ключ!
Припаять всего 2 провода!
Колпачки клавиш
Производительность Скоро!
Разное (48+) https://www.printables.com/model/414597-cherry-mx-keycap-various-icons-50
Кубики https://www.printables.com/model/414603-cherry-mx-keycap-dices
Игральные карты https://www.printables.com/model/414613-cherry-mx-keycap-playing-cards
Пустой https://www.printables.com/model/397305-cherry-mx-keycap-blank
Обзор
Микроконтроллер:
Я построил макропад, используя плату микроконтроллера (MCU) Seeed Studio Xiao RP2040. Это доска стоимостью 10 долларов (канадская), доступная на Amazon. Я не буду вдаваться в подробные характеристики платы, но она построена на двухъядерном процессоре RP2040 Raspberry PI. Он может запускать Arduino, MicroPython и CircuitPython. Для этого проекта я решил использовать CircuitPython и использую 1 цифровой вывод ввода-вывода, встроенный неопиксельный RGB-светодиод и порт USB C.
Проводка:
Клавиатуры и макропанели обычно подключаются в виде матрицы строк и столбцов, соединенных между собой с помощью диодов. Затем каждая строка и столбец подключается к цифровому вводу-выводу на MCU, что позволяет иметь больше ключей, чем цифровые вв��ды-выводы. Например, если вы подключите матрицу из 5 строк и 6 столбцов, вы можете иметь 30 ключей всего с 11 цифровыми вводами-выводами. Я не хотел использовать диоды, поэтому подключил переключатель напрямую к MCU. У QMK (не опечатка, это еще одна популярная прошивка клавиатуры) есть очень хорошее руководство по ручной проводке.
В моем случае один контакт переключателя подключен к контак��у ввода-вывода D0 на MCU. Я использую внутренние подтягивающие резисторы, поэтому внешние резисторы также не нужны. Другой контакт переключателя подключен к контакту заземления на MCU.
Прошивка Макропада (код):
Для кода клавиатуры вместо того, чтобы изобретать велосипед, я использовал KMK, слой, ориентированный на клавиатуру, который работает поверх CircuitPython. Он довольно хорошо документирован для матричной разводки с диодами, но не для прямых соединений, как я, поэтому я поделюсь некоторым кодом, который поможет вам начать работу, если вы тоже пойдете по этому пути.
Когда вы подключаете плату, она запускается с запуска boot.py, а затем code.py. boot.py не является обязательным и необходим только в том случае, если вы хотите скрыть USB-накопитель (CIRCUTPY) и последовательный интерфейс (COM-порт). Я помещаю код в boot.py для подключения USB-накопителя и последовательного интерфейса, когда клавиша, подключенная к D0, нажимается и удерживается во время загрузки, но в противном случае включен только интерфейс клавиатуры.
В приведенном ниже примере есть макросы для открытия Google, блокнота, cmd, powershell, вашего пароля (небезопасно, не делайте этого!) и т. д. его можно настроить в соответствии с вашими потребностями. Я еще мало что сделал, но KMK позволяет создавать слои, менять цвет светодиода в зависимости от слоя и массу других забавных вещей. Работа находится в стадии разработки, поэтому позже я добавлю дополнительные функции. Если у вас получится что-то хорошее, поделитесь этим в комментариях!
Я не видел примеров использования модуля KeysScanner клавиатуры, поэтому надеюсь, что это вам поможет.
code.py содержит основной код клавиатуры:
#
# <код.py>
# Импортировать модули
# KeysScanner необходим, потому что вместо этого мы используем прямые коммутационные соединения
№ матрицы с диодами.
# simple_key_sequence и send_string используются в макросах.
# RGB позволяет использовать встроенный неопиксельный RGB-светодиод RP2040.
# Mediakeys позволяет назначать клавиши, например, увеличение громкости.
# Layers включает альтернативное сопоставление клавиш по слоям.
#
импортная доска
из kmk.kmk_keyboard импорт KMKKeyboard
из kmk.scanners.keypad импорт KeysScanner
из kmk.keys импорт KC
из kmk.handlers.sequences импортируйте simple_key_sequence
из kmk.handlers.sequences импортируйте send_string
из kmk.extensions.RGB импортировать RGB
из kmk.extensions.RGB импортировать AnimationModes
из kmk.extensions.media_keys импортировать MediaKeys
из kmk.modules.layers импортируйте слои как _Layers
из kmk.modules.modtap импортировать ModTap
#
# Выводим строку в последовательный порт








