Щит LCD¶
Щит LCD — це 1,8-дюймовий TFT-дисплей 128x160 з SPI-інтерфейсом для відображення живого відео або налагоджувальної інформації безпосередньо від OpenMV Cam. Ідеально підходить для польової робототехніки та автономних розгортань.
Повну документацію, фотографії та інформацію про замовлення дивіться на сторінці продукту LCD Shield.
Особливості¶
TFT LCD 1,8 дюйма, 128x160, RGB565
Керована підсвітка
Розпіновка¶
Довідник виводів¶
Вивід |
Функція |
|---|---|
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 через аргумент backlight — SPIDisplay викликає 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())