from adafruit_macropad import MacroPad from rainbowio import colorwheel macropad = MacroPad() macropad.display_image("puma.bmp") text_lines = macropad.display_text(title="PumagregOS") tones = [196, 220, 246, 262, 294, 330, 349, 392, 440, 494, 523, 587] last_encoder_position = 0 # TODO - figure out how ls to show glyphs for arrows in this display pad_display = [ ["7 8 9", "4 5 6", "1 2 4", "0 . E"], # numpad ["- u +", "l s r", "* d /", "b U D"], # math + arrows ] while True: # listening for encoder events if macropad.encoder != last_encoder_position: if 0 <= macropad.encoder < len(pad_display): # repl print("Encoder changed: {}\n".format(macropad.encoder)) # update display to show current pad layout text_lines[0].text = pad_display[macropad.encoder][0] text_lines[1].text = pad_display[macropad.encoder][1] text_lines[2].text = pad_display[macropad.encoder][2] text_lines[3].text = pad_display[macropad.encoder][3] text_lines.show() else: macropad.pixels.fill((0, 0, 0)) macropad.display_image("puma.bmp") last_encoder_position = macropad.encoder # listening for key events key_event = macropad.keys.events.get() if key_event: if key_event.pressed: # repl print("Encoder: {}".format(macropad.encoder)) print("Key pressed: {}".format(key_event.key_number)) print("Encoder switch: {}\n".format(macropad.encoder_switch)) # pixels macropad.pixels[key_event.key_number] = colorwheel( int(255 / 12) * key_event.key_number ) # tones macropad.start_tone(tones[key_event.key_number]) """ _._ _,-'""`-._ (,-.`._,'( ||`-/| PumagregOS `-.-' | )-`( , o o) Keyboard layouts `- `_`"'- 🪳 """ if macropad.encoder == 0: # encoder 0 - numpad pad_layout = [ macropad.Keycode.KEYPAD_SEVEN, macropad.Keycode.KEYPAD_EIGHT, macropad.Keycode.KEYPAD_NINE, macropad.Keycode.KEYPAD_FOUR, macropad.Keycode.KEYPAD_FIVE, macropad.Keycode.KEYPAD_SIX, macropad.Keycode.KEYPAD_ONE, macropad.Keycode.KEYPAD_TWO, macropad.Keycode.KEYPAD_THREE, macropad.Keycode.KEYPAD_ZERO, macropad.Keycode.KEYPAD_PERIOD, macropad.Keycode.KEYPAD_ENTER, ] elif macropad.encoder == 1: # encoder 1 - math + arrows pad_layout = [ macropad.Keycode.KEYPAD_MINUS, macropad.Keycode.UP_ARROW, macropad.Keycode.KEYPAD_PLUS, macropad.Keycode.LEFT_ARROW, macropad.Keycode.SPACEBAR, macropad.Keycode.RIGHT_ARROW, macropad.Keycode.KEYPAD_ASTERISK, macropad.Keycode.DOWN_ARROW, macropad.Keycode.KEYPAD_FORWARD_SLASH, macropad.Keycode.BACKSPACE, macropad.Keycode.PAGE_UP, macropad.Keycode.PAGE_DOWN, ] if "pad_layout" in locals(): macropad.keyboard.send(pad_layout[key_event.key_number]) """ # encoder 2 - testing elif macropad.encoder == 2: if key_event.key_number == 0: macropad.keyboard_layout.write("wow 0") elif key_event.key_number == 1: macropad.keyboard_layout.write("wow 1") else: macropad.keyboard_layout.write("wow anything but 0 or 1") """ else: macropad.stop_tone() macropad.pixels.fill((0, 0, 0))