LCD Shield

ה-LCD Shield הוא TFT של SPI בגודל 1.8 אינץ« ברזולוציה 128x160 להצגת פריימים חיים או מידע ניפוי שגיאות ישירות מ-OpenMV Cam. אידיאלי לרובוטיקת שטח ולפריסות עצמאיות.

LCD Shield

לקבלת גיליון נתונים מלא, תמונות ופרטי הזמנה ראו את דף המוצר של LCD Shield.

עיקרים

  • צג TFT LCD בגודל 1.8 אינץ«, 128x160, RGB565

  • תאורת רקע ניתנת לבקרה

מערך פינים

LCD Shield Pinout

סימוכין פינים

פין

תפקיד

P0

SPI MOSI — יציאת נתונים אל ה-LCD

P2

שעון SPI

P3

בחירת שבב SPI

P6

בקרת תאורת רקע

P7

איפוס LCD

P8

פקודת SPI (בחירת נתונים / פקודה)

פס 3.3V

מספק מתח ל-LCD

פס GND

הארקה משותפת

הערה

חתכו את עקבת ההלחמה בגב ה-shield כדי לנתק את 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())