Módulo LCD¶
O Módulo LCD é um TFT SPI de 1,8 polegadas e 128x160 para apresentar fotogramas em direto ou informações de depuração diretamente a partir da OpenMV Cam. Ideal para robótica de campo e implementações autónomas.
Para o datasheet completo, fotografias e informações de compra, consulte a página do produto Módulo LCD.
Destaques¶
LCD TFT de 1,8 polegadas, 128x160, RGB565
Retroiluminação controlável
Pinagem¶
Referência de pinos¶
Pino |
Função |
|---|---|
P0 |
SPI MOSI — dados de saída para o LCD |
P2 |
Relógio SPI |
P3 |
Seleção de chip SPI |
P6 |
Controlo da retroiluminação |
P7 |
Reset do LCD |
P8 |
Comando SPI (seleção de dados/comando) |
Rail 3.3V |
Alimenta o LCD |
Rail GND |
Terra comum |
Nota
Corte a pista de solda na parte traseira do módulo para desligar P6 da retroiluminação; a retroiluminação fica então permanentemente ligada.
Utilização¶
Transmitir fotogramas da câmara para o ecrã SPI de 128×160:
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())
Controlar a retroiluminação via PWM para brilho ajustável. Encapsule machine.PWM numa pequena classe de controlo de retroiluminação e passe-a para display.SPIDisplay através do seu argumento backlight — SPIDisplay invoca backlight(value) no objeto sempre que precisar de atualizar o nível:
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())