LCD Shield¶
Das LCD Shield ist ein 1,8-Zoll-128x160-SPI-TFT zur Anzeige von Live-Einzelbildern oder Debug-Informationen direkt von der OpenMV Cam. Ideal für Feldrobotik und eigenständige Einsätze.
Vollständiges Datenblatt, Fotos und Bestellinformationen finden Sie auf der LCD-Shield-Produktseite.
Höhepunkte¶
1,8-Zoll-TFT-LCD, 128x160, RGB565
Steuerbare Hintergrundbeleuchtung
Pinbelegung¶
Pin-Referenz¶
Pin |
Funktion |
|---|---|
P0 |
SPI MOSI — Datenausgabe an das LCD |
P2 |
SPI-Takt |
P3 |
SPI Chip Select |
P6 |
Steuerung der Hintergrundbeleuchtung |
P7 |
LCD-Reset |
P8 |
SPI-Befehl (Daten-/Befehlsauswahl) |
3,3-V-Schiene |
Versorgt das LCD |
GND-Schiene |
Gemeinsame Masse |
Bemerkung
Trennen Sie die Lötbahn auf der Rückseite des Shields, um P6 von der Hintergrundbeleuchtung zu trennen; die Hintergrundbeleuchtung ist dann dauerhaft eingeschaltet.
Verwendung¶
Streamen Sie Kamera-Einzelbilder auf das 128×160-SPI-Display:
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())
Steuern Sie die Hintergrundbeleuchtung über PWM für eine einstellbare Helligkeit an. Umhüllen Sie machine.PWM in einer kleinen Controller-Klasse für die Hintergrundbeleuchtung und übergeben Sie sie über deren backlight-Argument an display.SPIDisplay — SPIDisplay ruft backlight(value) am Objekt auf, sobald der Pegel aktualisiert werden muss:
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())