LCD Shield

LCD Shieldは、OpenMV Camから直接ライブフレームやデバッグ情報を表示するための、1.8インチ128x160 SPI TFTです。フィールドロボティクスやスタンドアロン展開に最適です。

LCD Shield

完全なデータシート、写真、注文方法については、LCD Shield製品ページ を参照してください。

主な特長

  • 1.8インチTFT LCD、128x160、RGB565

  • 制御可能なバックライト

ピン配置

LCD Shieldのピン配置

ピンリファレンス

ピン

機能

P0

SPI MOSI — LCDへのデータ出力

P2

SPIクロック

P3

SPIチップセレクト

P6

バックライト制御

P7

LCDリセット

P8

SPIコマンド(データ/コマンド選択)

3.3Vレール

LCDに電源を供給

GNDレール

共通グラウンド

注釈

シールド裏面のはんだトレースをカットすると、P6をバックライトから切り離せます。その場合、バックライトは常時オンになります。

使い方

カメラフレームを128×160 SPIディスプレイにストリーミングします:

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 を小さなバックライトコントローラークラスでラップし、backlight 引数を通じて display.SPIDisplay に渡します。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())