#ライブラリ
import board, digitalio, analogio,usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keyboard import Keycode
# キーマップ
matrix_keys = [['1', 'B', 'ctrl', 'E'],
['2', 'sp', 'shit', 'Q'],
['3', 'T', 'F', 'Alt'],
['4', 'O', 'Tab', 'Z']]
# ピンの設定
r1 = digitalio.DigitalInOut(board.GP25)
r1.direction = digitalio.Direction.OUTPUT
r2 = digitalio.DigitalInOut(board.GP24)
r2.direction = digitalio.Direction.OUTPUT
r3 = digitalio.DigitalInOut(board.GP23)
r3.direction = digitalio.Direction.OUTPUT
r4 = digitalio.DigitalInOut(board.GP22)
r4.direction = digitalio.Direction.OUTPUT
c1 = digitalio.DigitalInOut(board.GP20)
c1.switch_to_input(pull=digitalio.Pull.DOWN)
c2 = digitalio.DigitalInOut(board.GP19)
c2.switch_to_input(pull=digitalio.Pull.DOWN)
c3 = digitalio.DigitalInOut(board.GP18)
c3.switch_to_input(pull=digitalio.Pull.DOWN)
c4 = digitalio.DigitalInOut(board.GP17)
c4.switch_to_input(pull=digitalio.Pull.DOWN)
xAxis = analogio.AnalogIn(board.A3)
yAxis = analogio.AnalogIn(board.A2)
button = digitalio.DigitalInOut(board.GP27)
button.switch_to_input(pull=digitalio.Pull.UP)
# キーボードのオブジェクトの作成
keyboard = Keyboard(usb_hid.devices)
#ピンを配列に格納
col_pins =
row_pins =
row_pins.append(r1)
row_pins.append(r2)
row_pins.append(r3)
row_pins.append(r4)
col_pins.append(c1)
col_pins.append(c2)
col_pins.append(c3)
col_pins.append(c4)
def scanjoystick():
keyboard.press(Keycode.S)
else:
keyboard.release(Keycode.S)
keyboard.press(Keycode.W)
else:
keyboard.release(Keycode.W)
keyboard.press(Keycode.A)
else:
keyboard.release(Keycode.A)
keyboard.press(Keycode.D)
else:
keyboard.release(Keycode.D)
if button.value == False :
keyboard.press(Keycode.V)
else:
keyboard.release(Keycode.V)
#キー関数
def scankeys():
for row in range(4):
for col in range(4):
row_pins[row].value = True
key_press = None
if col_pins[col].value == True:
key_press = matrix_keys[row][col]
if key_press == '1':
keyboard.press(Keycode.ONE)
if key_press == '2':
keyboard.press(Keycode.TWO)
if key_press == '3':
keyboard.press(Keycode.THREE)
if key_press == '4':
keyboard.press(Keycode.FOUR)
if key_press == 'B':
keyboard.press(Keycode.B)
if key_press == 'sp':
keyboard.press(Keycode.SPACE)
if key_press == 'T':
keyboard.press(Keycode.T)
if key_press == 'O':
keyboard.press(Keycode.O)
if key_press == 'shit':
keyboard.press(Keycode.LEFT_SHIFT)
if key_press == 'ctrl':
keyboard.press(Keycode.LEFT_CONTROL)
if key_press == 'F':
keyboard.press(Keycode.F)
if key_press == 'Tab':
keyboard.press(Keycode.TAB)
if key_press == 'E':
keyboard.press(Keycode.E)
if key_press == 'Q':
keyboard.press(Keycode.Q)
if key_press == 'Alt':
keyboard.press(Keycode.LEFT_ALT)
if key_press == 'Z':
keyboard.press(Keycode.Z)
else:
key_press = matrix_keys[row][col]
if key_press == '1':
keyboard.release(Keycode.ONE)
if key_press == '2':
keyboard.release(Keycode.TWO)
if key_press == '3':
keyboard.release(Keycode.THREE)
if key_press == '4':
keyboard.release(Keycode.FOUR)
if key_press == 'B':
keyboard.release(Keycode.B)
if key_press == 'sp':
keyboard.release(Keycode.SPACE)
if key_press == 'T':
keyboard.release(Keycode.T)
if key_press == 'O':
keyboard.release(Keycode.O)
if key_press == 'shit':
keyboard.release(Keycode.LEFT_SHIFT)
if key_press == 'ctrl':
keyboard.release(Keycode.LEFT_CONTROL)
if key_press == 'F':
keyboard.release(Keycode.F)
if key_press == 'Tab':
keyboard.release(Keycode.TAB)
if key_press == 'E':
keyboard.release(Keycode.E)
if key_press == 'Q':
keyboard.release(Keycode.Q)
if key_press == 'Alt':
keyboard.release(Keycode.LEFT_ALT)
if key_press == 'Z':
keyboard.release(Keycode.Z)
row_pins[row].value = False
#本文
while True:
scanjoystick()
scankeys()