LCD Shield#
ה-LCD Shield הוא TFT של SPI בגודל 1.8 אינץ« ברזולוציה 128x160 להצגת פריימים חיים או מידע ניפוי שגיאות ישירות מ-OpenMV Cam. אידיאלי לרובוטיקת שטח ולפריסות עצמאיות.
לקבלת גיליון נתונים מלא, תמונות ופרטי הזמנה ראו את דף המוצר של LCD Shield.
עיקרים#
צג TFT LCD בגודל 1.8 אינץ«, 128x160, RGB565
תאורת רקע ניתנת לבקרה
מערך פינים#
סימוכין פינים#
פין | תפקיד |
|---|---|
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())