LCD Shield

O LCD Shield é um TFT SPI de 1,8 polegada e 128x160 para exibir quadros ao vivo ou informações de depuração diretamente da OpenMV Cam. Ideal para robótica de campo e implantações autônomas.

LCD Shield

Para o datasheet completo, fotos e informações de compra, consulte a página do produto LCD Shield.

Destaques

  • LCD TFT de 1,8 polegada, 128x160, RGB565

  • Iluminação de fundo controlável

Pinagem

Pinagem do LCD Shield

Referência de pinos

Pino

Função

P0

SPI MOSI — saída de dados para o LCD

P2

Clock SPI

P3

Chip select SPI

P6

Controle da iluminação de fundo

P7

Reset do LCD

P8

Comando SPI (seleção de dados / comando)

trilho 3.3V

Alimenta o LCD

trilho GND

Terra comum

Nota

Corte a trilha de solda na parte traseira do shield para desconectar P6 da iluminação de fundo; a iluminação de fundo então fica permanentemente ligada.

Uso

Transmita quadros da câmera para o display 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())

Acione a iluminação de fundo via PWM para brilho ajustável. Encapsule machine.PWM em uma pequena classe controladora de iluminação de fundo e passe-a para display.SPIDisplay através de seu argumento backlightSPIDisplay chama backlight(value) no objeto sempre que precisar 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())