LCD Shield

LCD Shield je 1,8palcový SPI TFT displej 128x160 pro zobrazování živých snímků nebo ladicích informací přímo z OpenMV Cam. Ideální pro terénní robotiku a samostatná nasazení.

LCD Shield

Kompletní katalogový list, fotografie a možnost objednání najdete na produktové stránce LCD Shield.

Přehled

  • 1,8palcový TFT LCD, 128x160, RGB565

  • Ovladatelné podsvícení

Rozložení pinů

Rozložení pinů LCD Shield

Reference pinů

Pin

Funkce

P0

SPI MOSI — výstup dat do LCD

P2

Hodiny SPI

P3

Výběr čipu SPI

P6

Řízení podsvícení

P7

Reset LCD

P8

Příkaz SPI (výběr data / příkaz)

Větev 3,3V

Napájí LCD

Větev GND

Společná zem

Poznámka

Přerušením pájecí cesty na zadní straně shieldu odpojíte P6 od podsvícení; podsvícení je pak trvale zapnuté.

Použití

Streamujte snímky kamery na SPI displej 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())

Pohánějte podsvícení přes PWM pro nastavitelný jas. Zabalte machine.PWM do malé třídy řadiče podsvícení a předejte ji do display.SPIDisplay přes její argument backlightSPIDisplay zavolá na objektu backlight(value), kdykoli potřebuje aktualizovat úroveň:

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())