درع LCD (LCD Shield)

إن درع LCD (LCD Shield) هو شاشة TFT بتقنية SPI مقاس 1.8 بوصة ودقة 128x160 لعرض الإطارات الحية أو معلومات التصحيح مباشرةً من OpenMV Cam. وهو مثالي للروبوتات الميدانية والنشر المستقل.

LCD Shield

للاطلاع على ورقة البيانات الكاملة والصور ومعلومات الطلب، راجع صفحة منتج درع LCD.

أبرز الميزات

  • شاشة TFT LCD مقاس 1.8 بوصة، دقة 128x160، RGB565

  • إضاءة خلفية قابلة للتحكم

مخطط الدبابيس

LCD Shield Pinout

مرجع الدبابيس

الدبوس

الوظيفة

P0

SPI MOSI — خرج البيانات إلى الشاشة

P2

ساعة SPI

P3

اختيار شريحة SPI

P6

التحكم في الإضاءة الخلفية

P7

إعادة ضبط الشاشة

P8

أمر SPI (اختيار البيانات/الأمر)

خط 3.3 فولت

يغذّي الشاشة

خط GND

أرضي مشترك

ملاحظة

اقطع أثر اللحام على ظهر الدرع لفصل 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())