LCD Shield

LCD Shield เป็นจอ TFT SPI ขนาด 1.8 นิ้ว 128x160 สำหรับแสดงเฟรมสดหรือข้อมูลการดีบักโดยตรงจาก OpenMV Cam เหมาะสำหรับหุ่นยนต์ภาคสนามและการใช้งานแบบ stand-alone

LCD Shield

ดูข้อมูลทางเทคนิคฉบับเต็ม รูปภาพ และการสั่งซื้อได้ที่ หน้าผลิตภัณฑ์ LCD Shield

คุณสมบัติเด่น

  • จอ TFT LCD ขนาด 1.8 นิ้ว 128x160 RGB565

  • ควบคุมไฟพื้นหลังได้

การจัดเรียงพิน

LCD Shield Pinout

ข้อมูลอ้างอิงพิน

พิน

ฟังก์ชัน

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 ผ่านอาร์กิวเมนต์ backlightSPIDisplay จะเรียก 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())