code for big switch kb2040
code for big switch kb2040
This commit is contained in:
parent
db9bae7323
commit
3fb9961a3a
1 changed files with 82 additions and 0 deletions
82
Big_Switch_KB2040/code.py
Executable file
82
Big_Switch_KB2040/code.py
Executable file
|
|
@ -0,0 +1,82 @@
|
||||||
|
# SPDX-FileCopyrightText: 2021 Collin Cunningham for Adafruit Industries
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
import time
|
||||||
|
import board
|
||||||
|
import usb_hid
|
||||||
|
from adafruit_hid.keyboard import Keyboard
|
||||||
|
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
|
||||||
|
from adafruit_hid.keycode import Keycode
|
||||||
|
from digitalio import DigitalInOut, Direction, Pull
|
||||||
|
|
||||||
|
# The pins connected to each switch/button
|
||||||
|
buttonpins = [board.D3, board.D4, board.D5]
|
||||||
|
# The pins connected to each LED
|
||||||
|
ledpins = [board.D2, board.D6, board.D7]
|
||||||
|
|
||||||
|
# our array of button & LED objects
|
||||||
|
buttons = []
|
||||||
|
leds = []
|
||||||
|
|
||||||
|
# The keycode sent for each switch/button
|
||||||
|
buttonkeys = [Keycode.B, Keycode.C, Keycode.A]
|
||||||
|
buttonspressed = [False, False, False]
|
||||||
|
buttonspressedlast = [False, False, False]
|
||||||
|
|
||||||
|
# the keyboard object!
|
||||||
|
kbd = Keyboard(usb_hid.devices)
|
||||||
|
# we're americans :)
|
||||||
|
layout = KeyboardLayoutUS(kbd)
|
||||||
|
|
||||||
|
# make all button pin objects, make them inputs w/pullups
|
||||||
|
for pin in buttonpins:
|
||||||
|
button = DigitalInOut(pin)
|
||||||
|
button.direction = Direction.INPUT
|
||||||
|
button.pull = Pull.UP
|
||||||
|
buttons.append(button)
|
||||||
|
|
||||||
|
# make all LED objects, make them outputs
|
||||||
|
for pin in ledpins:
|
||||||
|
led = DigitalInOut(pin)
|
||||||
|
led.direction = Direction.OUTPUT
|
||||||
|
leds.append(led)
|
||||||
|
|
||||||
|
# set up the status LED
|
||||||
|
statusled = DigitalInOut(board.D13)
|
||||||
|
statusled.direction = Direction.OUTPUT
|
||||||
|
|
||||||
|
print("Waiting for button presses")
|
||||||
|
|
||||||
|
|
||||||
|
def pressbutton(index):
|
||||||
|
switch_led = leds[index] # find the switch LED
|
||||||
|
k = buttonkeys[index] # get the corresp. keycode/str
|
||||||
|
switch_led.value = True # turn on LED
|
||||||
|
kbd.press(k) # send keycode
|
||||||
|
|
||||||
|
|
||||||
|
def releasebutton(index):
|
||||||
|
switch_led = leds[index] # find the switch LED
|
||||||
|
k = buttonkeys[index] # get the corresp. keycode/str
|
||||||
|
switch_led.value = False # turn on LED
|
||||||
|
kbd.release(k) # send keycode
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# check each button
|
||||||
|
for button in buttons:
|
||||||
|
i = buttons.index(button)
|
||||||
|
if button.value is False: # button is pressed?
|
||||||
|
buttonspressed[i] = True # save pressed button
|
||||||
|
# was button not pressed last time?
|
||||||
|
if buttonspressedlast[i] is False:
|
||||||
|
print("Pressed #%d" % i)
|
||||||
|
pressbutton(i)
|
||||||
|
else:
|
||||||
|
buttonspressed[i] = False # button was not pressed
|
||||||
|
if buttonspressedlast[i] is True: # was button pressed last time?
|
||||||
|
print("Released #%d" % i)
|
||||||
|
releasebutton(i)
|
||||||
|
#lightneopixels()
|
||||||
|
# save pressed buttons as pressed last
|
||||||
|
buttonspressedlast = list(buttonspressed)
|
||||||
|
time.sleep(0.01)
|
||||||
Loading…
Reference in a new issue