import time
import board
import busio
from adafruit_neokey.neokey1x4 import NeoKey1x4
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
import sys
import neopixel
import random
from time import sleep
######################### PARAMETERS FOR THE QT PY AND NEOKEY #########################
# use STEMMA I2C bus on RP2040 QT Py
i2c_bus = busio.I2C(board.SCL1, board.SDA1)
# Create a NeoKey object
neokey = NeoKey1x4(i2c_bus, addr=0x30)
# create a keyboard object
keyboard = Keyboard(usb_hid.devices)
# states for key presses
key_0_state = False
key_1_state = False
key_2_state = False
key_3_state = False
# colors of keys when pressed or off
key_0_color = 0x00FFFF # cyan
key_1_color = 0xFF00FF # magenta
key_2_color = 0xFFFFFF # white
key_3_color = 0xFFFF00 # yellow
key_color_off = 0x0
led_off = (0,0,0) #RGB
led_cyan = (0,255,255)
led_magenta = (255, 0, 255)
led_white = (255,255,255)
led_yellow = (255,255,0)
# turn on the on-board led while the code is running
qtpy_led = neopixel.NeoPixel(board.NEOPIXEL, 1)
qtpy_led.fill(led_white)
start_loop = True
######################### PARAMETERS FOR THE NEOPIXELS #########################
# basic parameters
no_leds = 50
gpio_pin = board.A0
led_br = 1
letters_all = ["","","H","","G","","F","E","","D","C","","B","A","","","I","J","","K","L","","M","N","","O","P","","","","Q","Z","","","","","Y","X","","W","V","U","","T","S","","R","","",""]
leds_color_code = []
leds_color_code.extend(range(no_leds))
# set the initial color palette for leds_color_code
for i in range(0, no_leds,4):
if i < no_leds-0: leds_color_code[i+0] = led_cyan
if i < no_leds-1: leds_color_code[i+1] = led_magenta
if i < no_leds-2: leds_color_code[i+2] = led_white
if i < no_leds-3: leds_color_code[i+3] = led_yellow
# initialization of the led strip
pixels = neopixel.NeoPixel(gpio_pin, no_leds)
pixels.write()