LCD Shield¶
Az LCD Shield egy 1,8 hüvelykes 128x160-as SPI TFT, amely élő képkockák vagy hibakeresési információk közvetlen megjelenítésére szolgál az OpenMV Cam-ről. Ideális terepi robotikához és önálló telepítésekhez.
A teljes adatlapért, fényképekért és rendelési információkért lásd az LCD Shield termékoldalt.
Kiemelt jellemzők¶
1,8 hüvelykes TFT LCD, 128x160, RGB565
Vezérelhető háttérvilágítás
Lábkiosztás¶
Lábkiosztás-referencia¶
Láb |
Funkció |
|---|---|
P0 |
SPI MOSI — adatkimenet az LCD felé |
P2 |
SPI órajel |
P3 |
SPI chip select |
P6 |
Háttérvilágítás-vezérlés |
P7 |
LCD reset |
P8 |
SPI parancs (adat / parancs kiválasztás) |
3,3 V-os sín |
Az LCD-t táplálja |
GND-sín |
Közös föld |
Megjegyzés
Vágd el a forrasztási nyomvonalat a shield hátoldalán a P6 háttérvilágításról való leválasztásához; a háttérvilágítás ekkor tartósan bekapcsolva marad.
Használat¶
Folyamatos kamera-képkockák streamelése a 128×160-as SPI kijelzőre:
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())
Hajtsd a háttérvilágítást PWM-en keresztül az állítható fényerő érdekében. Csomagold a machine.PWM osztályt egy kis háttérvilágítás-vezérlő osztályba, és add át a display.SPIDisplay számára a backlight argumentumon keresztül — a SPIDisplay a backlight(value) hívást alkalmazza az objektumon, valahányszor frissítenie kell a szintet:
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())