LCD Shield¶
LCD Shield는 OpenMV Cam에서 직접 라이브 프레임이나 디버깅 정보를 표시하기 위한 1.8인치 128x160 SPI TFT입니다. 필드 로보틱스 및 독립형 배치에 이상적입니다.
전체 데이터시트, 사진, 주문 정보는 LCD Shield 제품 페이지를 참조하세요.
주요 특징¶
1.8인치 TFT LCD, 128x160, RGB565
제어 가능한 백라이트
핀아웃¶
핀 참조¶
핀 |
기능 |
|---|---|
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())