LCD Shield¶
LCD Shield เป็นจอ TFT SPI ขนาด 1.8 นิ้ว 128x160 สำหรับแสดงเฟรมสดหรือข้อมูลการดีบักโดยตรงจาก OpenMV Cam เหมาะสำหรับหุ่นยนต์ภาคสนามและการใช้งานแบบ stand-alone
ดูข้อมูลทางเทคนิคฉบับเต็ม รูปภาพ และการสั่งซื้อได้ที่ หน้าผลิตภัณฑ์ LCD Shield
คุณสมบัติเด่น¶
จอ TFT LCD ขนาด 1.8 นิ้ว 128x160 RGB565
ควบคุมไฟพื้นหลังได้
การจัดเรียงพิน¶
ข้อมูลอ้างอิงพิน¶
พิน |
ฟังก์ชัน |
|---|---|
P0 |
SPI MOSI — ส่งข้อมูลไปยัง LCD |
P2 |
สัญญาณนาฬิกา SPI |
P3 |
Chip select ของ SPI |
P6 |
ควบคุมไฟพื้นหลัง |
P7 |
รีเซ็ต LCD |
P8 |
คำสั่ง SPI (เลือกข้อมูล / คำสั่ง) |
3.3V rail |
จ่ายไฟให้ LCD |
GND rail |
กราวด์ร่วม |
Note
ตัดรอยบัดกรีที่ด้านหลังของชีลด์เพื่อตัดการเชื่อมต่อ 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())