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())