LCD Shield¶
LCD Shield är en 1,8 tums 128x160 SPI TFT för att visa direktbildrutor eller felsökningsinformation direkt från OpenMV Cam. Idealisk för fältrobotik och fristående driftsättningar.
För fullständigt datablad, foton och beställning, se produktsidan för LCD Shield.
Höjdpunkter¶
1,8 tums TFT LCD, 128x160, RGB565
Styrbar bakgrundsbelysning
Stiftutgång¶
Stiftreferens¶
Stift |
Funktion |
|---|---|
P0 |
SPI MOSI — data ut till LCD:n |
P2 |
SPI-klocka |
P3 |
SPI chip select |
P6 |
Styrning av bakgrundsbelysning |
P7 |
LCD-återställning |
P8 |
SPI-kommando (data-/kommandoval) |
3,3 V-skena |
Försörjer LCD:n |
GND-skena |
Gemensam jord |
Anteckning
Skär av lödbanan på shieldets baksida för att koppla bort P6 från bakgrundsbelysningen; bakgrundsbelysningen är då permanent på.
Användning¶
Strömma kamerabildrutor till 128×160 SPI-displayen:
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())
Driv bakgrundsbelysningen via PWM för justerbar ljusstyrka. Slå in machine.PWM i en liten styrklass för bakgrundsbelysning och skicka den till display.SPIDisplay via dess backlight-argument — SPIDisplay anropar backlight(value) på objektet när den behöver uppdatera nivån:
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())