LCD 扩展板(LCD Shield)¶
LCD 扩展板是一块 1.8 英寸 128x160 的 SPI TFT 屏,可直接显示来自 OpenMV Cam 的实时帧或调试信息。非常适合野外机器人和独立部署应用。
完整的数据手册、照片和订购信息请参见 LCD 扩展板产品页面。
亮点¶
1.8 英寸 TFT LCD,128x160,RGB565
可控背光
引脚分布¶
引脚参考¶
引脚 |
功能 |
|---|---|
P0 |
SPI MOSI — 向 LCD 输出数据 |
P2 |
SPI 时钟 |
P3 |
SPI 片选 |
P6 |
背光控制 |
P7 |
LCD 复位 |
P8 |
SPI 命令(数据/命令选择) |
3.3V rail |
为 LCD 供电 |
GND rail |
公共地 |
备注
切断扩展板背面的焊接走线即可将 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 封装到一个小型背光控制器类中,并通过 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())