LCD Shield

LCD Shield는 OpenMV Cam에서 직접 라이브 프레임이나 디버깅 정보를 표시하기 위한 1.8인치 128x160 SPI TFT입니다. 필드 로보틱스 및 독립형 배치에 이상적입니다.

LCD Shield

전체 데이터시트, 사진, 주문 정보는 LCD Shield 제품 페이지를 참조하세요.

주요 특징

  • 1.8인치 TFT LCD, 128x160, RGB565

  • 제어 가능한 백라이트

핀아웃

LCD Shield 핀아웃

핀 참조

기능

P0

SPI MOSI — LCD로의 데이터 출력

P2

SPI 클록

P3

SPI 칩 셀렉트

P6

백라이트 제어

P7

LCD 리셋

P8

SPI 명령(데이터 / 명령 선택)

3.3V 레일

LCD에 전원 공급

GND 레일

공통 접지

참고

실드 후면의 솔더 트레이스를 잘라 P6을 백라이트에서 분리하면, 그 후 백라이트는 항상 켜진 상태가 됩니다.

사용법

카메라 프레임을 128×160 SPI 디스플레이로 스트리밍합니다:

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을 작은 백라이트 컨트롤러 클래스로 감싸고 backlight 인자를 통해 display.SPIDisplay에 전달합니다 — 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())