LCD Shield¶
Le LCD Shield est un écran TFT SPI de 1,8 pouce 128x160 pour afficher des trames en direct ou des informations de débogage directement depuis l’OpenMV Cam. Idéal pour la robotique de terrain et les déploiements autonomes.
Pour la fiche technique complète, les photos et la commande, consultez la page produit du LCD Shield.
Points forts¶
Écran LCD TFT de 1,8 pouce, 128x160, RGB565
Rétroéclairage contrôlable
Brochage¶
Référence des broches¶
Broche |
Fonction |
|---|---|
P0 |
SPI MOSI — données vers l’écran LCD |
P2 |
Horloge SPI |
P3 |
Sélection de puce SPI |
P6 |
Contrôle du rétroéclairage |
P7 |
Réinitialisation de l’écran LCD |
P8 |
Commande SPI (sélection données / commande) |
Rail 3,3 V |
Alimente l’écran LCD |
Rail GND |
Masse commune |
Note
Coupez la piste à souder au dos du shield pour déconnecter P6 du rétroéclairage ; celui-ci reste alors allumé en permanence.
Utilisation¶
Diffusez les trames de la caméra vers l’écran 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())
Pilotez le rétroéclairage via PWM pour une luminosité réglable. Encapsulez machine.PWM dans une petite classe de contrôleur de rétroéclairage et passez-la à display.SPIDisplay via son argument backlight — SPIDisplay appelle backlight(value) sur l’objet chaque fois qu’il doit mettre à jour le niveau
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())