LCD Shield

LCD Shield je 1.8-inčni 128x160 SPI TFT za prikaz živih sličica ili informacija za otklanjanje pogrešaka izravno s OpenMV Cam. Idealan za terensku robotiku i samostalne primjene.

LCD Shield

Za potpunu tehničku dokumentaciju, fotografije i naručivanje pogledajte stranicu proizvoda LCD Shield.

Istaknute značajke

  • 1.8-inčni TFT LCD, 128x160, RGB565

  • Upravljiva pozadinska rasvjeta

Raspored pinova

Raspored pinova LCD Shield-a

Referenca pinova

Pin

Funkcija

P0

SPI MOSI — izlaz podataka prema LCD-u

P2

SPI takt

P3

SPI odabir čipa

P6

Upravljanje pozadinskom rasvjetom

P7

Resetiranje LCD-a

P8

SPI naredba (odabir podaci / naredba)

Vod 3.3V

Napaja LCD

Vod GND

Zajednička masa

Napomena

Prerežite lemljeni trag na stražnjoj strani shielda kako biste odspojili P6 od pozadinske rasvjete; pozadinska rasvjeta tada je trajno uključena.

Uporaba

Strujajte sličice kamere na 128×160 SPI zaslon:

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

Pokrenite pozadinsku rasvjetu preko PWM-a za podesivu svjetlinu. Omotajte machine.PWM u malu klasu kontrolera pozadinske rasvjete i proslijedite je u display.SPIDisplay preko njezinog argumenta backlightSPIDisplay poziva backlight(value) na objektu kad god treba ažurirati razinu:

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