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.
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¶
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 backlight — SPIDisplay 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())