deniska457
Новорег
- Статус
- Offline
- Регистрация
- 17 Май 2023
- Сообщения
- 13
- Лайки
- 0
В этом гайде я покажу, как собрать простую и удобную двухкнопочную клавиатуру для OSU! на базе дешёвой платы Raspberry Pi Pico.
Подойдёт даже новичку — нужно всего 10–20 минут времени.
Что понадобится
Raspberry Pi Pico (любая версия)
2 механических свитча (Cherry MX, Gateron, Kailh — любые)
2 кейкапа
Несколько проводов
Паяльник
USB-кабель
Простой корпус (можно самодельный)
Схема подключения
Каждый свитч замыкает GPIO на GND.
Используем такие выводы:
Кнопка 1 → GP1
Кнопка 2 → GP4
Оба свитча вторыми ногами идут на GND
Установка CircuitPython
Зажмите кнопку BOOTSEL
Подключите Pico к ПК с зажатой кнопкой
Откроется диск RPI-RP2
Скачайте прошивку CircuitPython
Для просмотра ссылки Войдиили ЗарегистрируйсяСкачайте файл UF2 и скопируйте на диск RPI-RP2.
Плата перезагрузится и появится диск CIRCUITPY.
Установка библиотеки HID
Скачайте набор библиотек
Для просмотра ссылки Войдиили ЗарегистрируйсяНужен архив вида
adafruit-circuitpython-bundle-10.x-mpy-...zip
Откройте его → найдите папку adafruit_hid → положите её в:
CIRCUITPY/lib
Если папки lib нет — создайте.
Код (файл code.py)
Создайте на диске CIRCUITPY файл code.py со следующим содержимым:
После сохранения Pico начинает работать как клавиатура.
Кнопка на GP1 = Z
Кнопка на GP4 = X
Проверка
Подключите Pico к ПК
Откройте тест клавиатуры
Нажмите кнопки и убедитесь, что отображаются Z и X.
Подойдёт даже новичку — нужно всего 10–20 минут времени.
Что понадобится
Raspberry Pi Pico (любая версия)
2 механических свитча (Cherry MX, Gateron, Kailh — любые)
2 кейкапа
Несколько проводов
Паяльник
USB-кабель
Простой корпус (можно самодельный)
Схема подключения
Каждый свитч замыкает GPIO на GND.
Используем такие выводы:
Кнопка 1 → GP1
Кнопка 2 → GP4
Оба свитча вторыми ногами идут на GND
[Свитч 1] ——— GP1
│
└——— GND
[Свитч 2] ——— GP4
│
└——— GND
│
└——— GND
[Свитч 2] ——— GP4
│
└——— GND
Установка CircuitPython
Зажмите кнопку BOOTSEL
Подключите Pico к ПК с зажатой кнопкой
Откроется диск RPI-RP2
Скачайте прошивку CircuitPython
Для просмотра ссылки Войди
Плата перезагрузится и появится диск CIRCUITPY.
Установка библиотеки HID
Скачайте набор библиотек
Для просмотра ссылки Войди
adafruit-circuitpython-bundle-10.x-mpy-...zip
Откройте его → найдите папку adafruit_hid → положите её в:
CIRCUITPY/lib
Если папки lib нет — создайте.
Код (файл code.py)
Создайте на диске CIRCUITPY файл code.py со следующим содержимым:
import board
import digitalio
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
kbd = Keyboard(usb_hid.devices)
btn1 = digitalio.DigitalInOut(board.GP1)
btn1.direction = digitalio.Direction.INPUT
btn1.pull = digitalio.Pull.UP
btn2 = digitalio.DigitalInOut(board.GP4)
btn2.direction = digitalio.Direction.INPUT
btn2.pull = digitalio.Pull.UP
prev1 = True
prev2 = True
while True:
state1 = btn1.value
state2 = btn2.value
if not state1 and prev1:
kbd.press(Keycode.Z)
if state1 and not prev1:
kbd.release(Keycode.Z)
if not state2 and prev2:
kbd.press(Keycode.X)
if state2 and not prev2:
kbd.release(Keycode.X)
prev1 = state1
prev2 = state2
import digitalio
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
kbd = Keyboard(usb_hid.devices)
btn1 = digitalio.DigitalInOut(board.GP1)
btn1.direction = digitalio.Direction.INPUT
btn1.pull = digitalio.Pull.UP
btn2 = digitalio.DigitalInOut(board.GP4)
btn2.direction = digitalio.Direction.INPUT
btn2.pull = digitalio.Pull.UP
prev1 = True
prev2 = True
while True:
state1 = btn1.value
state2 = btn2.value
if not state1 and prev1:
kbd.press(Keycode.Z)
if state1 and not prev1:
kbd.release(Keycode.Z)
if not state2 and prev2:
kbd.press(Keycode.X)
if state2 and not prev2:
kbd.release(Keycode.X)
prev1 = state1
prev2 = state2
После сохранения Pico начинает работать как клавиатура.
Кнопка на GP1 = Z
Кнопка на GP4 = X
Проверка
Подключите Pico к ПК
Откройте тест клавиатуры
Нажмите кнопки и убедитесь, что отображаются Z и X.