ショップ

1.9インチ 170x320ピクセル

1.54インチ 240x240ピクセル


製品概要

ST7789ドライバ(IC)を使用したTFTディスプレイです。

画面の大きさやピクセル数の異なるモデルがあります。

1.9インチ 170x320ピクセル
1.54インチ 240x240ピクセル

CircuitPythonでのプログラミング

PICOを搭載したPICO-DISPLAY-KITを対象としたCircuitPythonでのプログラミングの例です。

import board
import busio
import displayio

from fourwire import FourWire
from adafruit_st7789 import ST7789

displayio.release_displays()

spi = busio.SPI(clock=board.GP18, MOSI=board.GP19)
tft_cs = board.GP17
tft_dc = board.GP28

display_bus = FourWire(spi, command=tft_dc, chip_select=tft_cs)

display = ST7789(display_bus, width=320, height=170, colstart=35, rotation=90) # 1.9 inch 170x320
# display = ST7789(display_bus, width=240, height=240, rowstart=80, rotation=180) # 1.54 inch 240x240

group = displayio.Group()
display.root_group = group
# ここまではグラフィックス利用の初期化で今後も共通

import simpleio
from adafruit_display_shapes.circle import Circle

class Ball(Circle):
    # 初期座標、縦横速度、色を与える
    def __init__(self, x0, y0, r, vx, vy, color):
        super().__init__(x0, y0, r, fill=color, outline=0xFFFF00)
        self.vx = vx
        self.vy = vy
    def tick(self):
        # 縦横速度分移動して
        self.x0 += self.vx
        self.y0 += self.vy
        # 画面の端に来たら速度を反転させて跳ね返る
        if self.x0 <= self.r or self.x0 >= (display.width-1)-self.r:
            simpleio.tone(board.GP20, 1000, 0.01)
            self.vx = -self.vx
        if self.y0 <= self.r or self.y0 >= (display.height-1)-self.r:
            simpleio.tone(board.GP20, 500, 0.01)
            self.vy = -self.vy

ball = Ball(100, 100, 10, 2, 5, 0x00FF00)
group.append(ball)

import time

while True:
    group[0].tick()
    time.sleep(0.02)

Arduinoでのプログラミング


関連製品

PICO-DISPLAY-KIT