LCD Shield

LCD Shield to 1,8-calowy wyświetlacz TFT SPI o rozdzielczości 128x160 do pokazywania obrazu na żywo lub informacji diagnostycznych bezpośrednio z OpenMV Cam. Idealny do robotyki terenowej i wdrożeń autonomicznych.

LCD Shield

Pełną dokumentację techniczną, zdjęcia i informacje o zamówieniu znajdziesz na stronie produktu LCD Shield.

Najważniejsze cechy

  • 1,8-calowy wyświetlacz TFT LCD, 128x160, RGB565

  • Sterowane podświetlenie

Rozkład wyprowadzeń

Rozkład wyprowadzeń LCD Shield

Opis wyprowadzeń

Pin

Funkcja

P0

SPI MOSI — dane wyjściowe do LCD

P2

Zegar SPI

P3

Wybór układu SPI (chip select)

P6

Sterowanie podświetleniem

P7

Reset LCD

P8

Polecenie SPI (wybór danych / polecenia)

Szyna 3,3 V

Zasila LCD

Szyna GND

Wspólna masa

Informacja

Przetnij ścieżkę lutowniczą na spodzie shielda, aby odłączyć P6 od podświetlenia; podświetlenie jest wtedy włączone na stałe.

Zastosowanie

Strumieniuj ramki z kamery na wyświetlacz SPI 128×160:

import csi
import display
import image
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize((128, 160))

lcd = display.SPIDisplay()
clock = time.clock()

while True:
    clock.tick()
    lcd.write(csi0.snapshot(), hint=image.CENTER | image.SCALE_ASPECT_KEEP)
    print(clock.fps())

Steruj podświetleniem przez PWM dla regulowanej jasności. Opakuj machine.PWM w małą klasę kontrolera podświetlenia i przekaż ją do display.SPIDisplay przez argument backlightSPIDisplay wywołuje backlight(value) na obiekcie, gdy potrzebuje zaktualizować poziom:

import csi
import time
import display
import image
from machine import Pin, PWM


class PWMBacklight:
    """Drives a backlight pin with machine.PWM (0–100 %)."""

    def __init__(self, pin, frequency=200):
        self._pwm = PWM(Pin(pin), freq=frequency, duty_u16=0)

    def backlight(self, value):
        self._pwm.duty_u16(int(value * 65535 / 100))

    def deinit(self):
        self._pwm.deinit()


csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize((128, 160))

lcd = display.SPIDisplay(backlight=PWMBacklight("P6"))
lcd.backlight(50)  # 0–100
clock = time.clock()

while True:
    clock.tick()
    lcd.write(csi0.snapshot(), hint=image.CENTER | image.SCALE_ASPECT_KEEP)
    print(clock.fps())