LCD Shield

LCD Shield adalah TFT SPI 1,8 inci 128x160 untuk menampilkan bingkai langsung atau informasi debugging langsung dari OpenMV Cam. Ideal untuk robotika lapangan dan deployment mandiri.

LCD Shield

Untuk datasheet lengkap, foto, dan pemesanan lihat halaman produk LCD Shield.

Sorotan

  • LCD TFT 1,8 inci, 128x160, RGB565

  • Backlight yang dapat dikontrol

Pinout

LCD Shield Pinout

Referensi pin

Pin

Fungsi

P0

SPI MOSI — data keluar ke LCD

P2

Clock SPI

P3

Chip select SPI

P6

Kontrol backlight

P7

Reset LCD

P8

Perintah SPI (pemilih data/perintah)

Rail 3.3V

Memberi daya pada LCD

Rail GND

Ground bersama

Catatan

Potong jalur solder pada bagian belakang shield untuk memutuskan P6 dari backlight; backlight kemudian menyala secara permanen.

Penggunaan

Streaming bingkai kamera ke layar SPI 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())

Kendalikan backlight melalui PWM untuk kecerahan yang dapat disesuaikan. Bungkus machine.PWM dalam kelas kontroler backlight kecil dan teruskan ke display.SPIDisplay melalui argumen backlightSPIDisplay memanggil backlight(value) pada objek tersebut setiap kali perlu memperbarui levelnya:

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())