Um das Picopad in CircuitPython zu nutzen, gebe ich hier die Pinouts für das Display und die Tasten an.
Display:
LCD_CS: GP21, LCD_RST: GP20, LCD_MOSI: GP19, LCD_SCK: GP18, LCD_DC: GP17, LCD_BL: GP16,
Tasten:
UP: GP4, DOWN: GP5, LEFT: GP3, RIGHT: GP2, X: GP9, Y: GP8, A: GP7, B: GP6,
Damit sieht der Quellcode für ein erstes kleines Testprogramm so aus:
1 import time 2 import board 3 import digitalio 4 import displayio 5 import busio 6 import fourwire 7 from adafruit_st7789 import ST7789 8 from adafruit_display_shapes.rect import Rect 9 10 # 2 Zoll 320x240 Waveshare Display 11 cs=board.GP21 12 dc=board.GP17 13 reset=board.GP20 14 bl=board.GP16 15 # Release any resources currently in use for the displays 16 displayio.release_displays() 17 spi = busio.SPI(board.GP18, board.GP19) 18 display_bus = fourwire.FourWire(spi, command=dc, chip_select=cs, reset=reset) 19 display = ST7789(display_bus, rotation=270, width=320, height=240, backlight_pin=bl, rowstart=0, colstart=0) 20 display.brightness = 1 21 main = displayio.Group() 22 23 # linke Seite 24 button_up = digitalio.DigitalInOut(board.GP4) 25 button_up.switch_to_input(pull=digitalio.Pull.UP) 26 button_down = digitalio.DigitalInOut(board.GP5) 27 button_down.switch_to_input(pull=digitalio.Pull.UP) 28 button_right = digitalio.DigitalInOut(board.GP2) 29 button_right.switch_to_input(pull=digitalio.Pull.UP) 30 button_left = digitalio.DigitalInOut(board.GP3) 31 button_left.switch_to_input(pull=digitalio.Pull.UP) 32 33 # rechte Seite 34 button_X = digitalio.DigitalInOut(board.GP9) 35 button_X.switch_to_input(pull=digitalio.Pull.UP) 36 button_Y = digitalio.DigitalInOut(board.GP8) 37 button_Y.switch_to_input(pull=digitalio.Pull.UP) 38 button_A = digitalio.DigitalInOut(board.GP7) 39 button_A.switch_to_input(pull=digitalio.Pull.UP) 40 button_B = digitalio.DigitalInOut(board.GP6) 41 button_B.switch_to_input(pull=digitalio.Pull.UP) 42 43 ## Make a background color fill for the weather 44 color_bitmap_temp = displayio.Bitmap(display.width, display.height, 3) 45 color_palette = displayio.Palette(1) 46 color_palette[0] = 0x660088 47 bg_sprite = displayio.TileGrid(color_bitmap_temp, pixel_shader=color_palette, x=0, y=0) 48 main.append(bg_sprite) 49 50 rect1 = Rect(60, 40, 40, 40, fill=0x666666) 51 main.append(rect1) 52 rect2 = Rect(60, 140, 40, 40, fill=0x666666) 53 main.append(rect2) 54 rect3 = Rect(110, 90, 40, 40, fill=0x666666) 55 main.append(rect3) 56 rect4 = Rect(10, 90, 40, 40, fill=0x666666) 57 main.append(rect4) 58 59 rect_X = Rect(200, 60, 40, 40, fill=0x666666) 60 main.append(rect_X) 61 rect_Y = Rect(270, 40, 40, 40, fill=0x666666) 62 main.append(rect_Y) 63 rect_A = Rect(200, 140, 40, 40, fill=0x666666) 64 main.append(rect_A) 65 rect_B = Rect(270, 120, 40, 40, fill=0x666666) 66 main.append(rect_B) 67 68 display.root_group = main 69 70 while True: 71 if button_up.value == False: 72 rect1.fill = 0xff0000 73 else: 74 rect1.fill = 0x666666 75 if button_down.value == False: 76 rect2.fill = 0xff0000 77 else: 78 rect2.fill = 0x666666 79 if button_right.value == False: 80 rect3.fill = 0xff0000 81 else: 82 rect3.fill = 0x666666 83 if button_left.value == False: 84 rect4.fill = 0xff0000 85 else: 86 rect4.fill = 0x666666 87 if button_X.value == False: 88 rect_X.fill = 0xff0000 89 else: 90 rect_X.fill = 0x666666 91 if button_Y.value == False: 92 rect_Y.fill = 0xff0000 93 else: 94 rect_Y.fill = 0x666666 95 if button_A.value == False: 96 rect_A.fill = 0xff0000 97 else: 98 rect_A.fill = 0x666666 99 if button_B.value == False: 100 rect_B.fill = 0xff0000 101 else: 102 rect_B.fill = 0x666666
In den Zeilen 10 bis 21 wird das Display initialisiert. Die Tasten auf der linken Seite werden in den Zeilen 23 bis 31 definiert und
die der rechten Seite in den Zeilen 33 bis 41. Zur Anzeige der Position auf dem Display werden acht kleine graue Rechtecke dargestellt (Zeilen
50 bis 68). In der 'while'-Schleife wird nun geprüft, ob einer der Button gedrückt wurde. Ist dies der Fall, ändert das
Kästchen seine Farbei auf rot, solange der Button gedrückt wird. Eine weitere Funktion hat dieser Test nicht.
Viel Spass und Erfolg beim Ausprobieren.
Viel Spass und Erfolg beim Ausprobieren.