Щит LCD

Щит LCD — це 1,8-дюймовий TFT-дисплей 128x160 з SPI-інтерфейсом для відображення живого відео або налагоджувальної інформації безпосередньо від OpenMV Cam. Ідеально підходить для польової робототехніки та автономних розгортань.

LCD Shield

Повну документацію, фотографії та інформацію про замовлення дивіться на сторінці продукту LCD Shield.

Особливості

  • TFT LCD 1,8 дюйма, 128x160, RGB565

  • Керована підсвітка

Розпіновка

LCD Shield Pinout

Довідник виводів

Вивід

Функція

P0

SPI MOSI — виведення даних до LCD

P2

Тактовий сигнал SPI

P3

Вибір кристала SPI

P6

Керування підсвіткою

P7

Скидання LCD

P8

Команда SPI (вибір даних/команди)

Шина 3.3В

Живить LCD

Шина GND

Загальна земля

Примітка

Перережте паяну перемичку на зворотній стороні щита, щоб від’єднати P6 від підсвітки; після цього підсвітка буде постійно ввімкнена.

Використання

Виведення кадрів камери на 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())

Керуйте підсвіткою через PWM для регулювання яскравості. Загорніть machine.PWM у невеликий клас контролера підсвітки та передайте його до display.SPIDisplay через аргумент backlightSPIDisplay викликає backlight(value) на об’єкті щоразу, коли потрібно оновити рівень:

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