RapberryPi Zero Wで2.4 inch Full Color LCDにロゴを表示させます。

Raspberry PI 3と2.4 inch Full Color LCDの接続

2.4 inch Full Color LCDは、SPIインタフェースを持ち、コントローラ「ST7789V」を使って描画します。AliExpressの「SZ Aitexm Store」で購入しました。

製品仕様

  • 2.4-inch color screen,support 65K color display,display rich colors
  • 320X240 resolution, touch function
  • Using the SPI serial bus, it only takes a few IOs to illuminate the display
  • Easy to expand the experiment with SD card slot
Name Parameter
Display Color RGB 65K color
SKU MSP2402
Screen Size 2.4(inch)
Type TFT
Driver IC ST7789V
Resolution 320*240 (Pixel)
Module Interface 4-wire SPI interface
Active Area (AA area) 36.72×48.96(mm)
Module PCB Size 77.18×42.72(mm)
Operating Temperature -20℃~60℃
Storage Temperature -30℃~70℃
VCC power voltage 3.3V~5V
Logic IO port voltage 3.3V(TTL)
Rough Weight(Package containing) With touch: 36(g)

RapberryPi Zero Wと2.4 inch Full Color LCDを次のように接続します。

RapberryPi Zeroと2.4 inch Full Color LCDの接続
RapberryPi Zero LCD
3.3V Power LED
GPIO 11 (SCLK) SCK
GPIO 9 (MISO) SDO(MISO)
GPIO 10 (MOSI) SDI(MOSI)
GPIO 8 (CE0) CS
GPIO 24 RESET
GPIO 25 DC
3.3V Power VCC
Ground GND

LCDの裏面を次に示します。SDカードスロットがついています。写真右側の4つのスルーホールにピンヘッダをはんだ付けすると、SDカードにアクセスできます。左側の上5本のT_***というピンはタッチパネル制御のためのピンです。

SPIの有効化

次のコマンドによりRaspberry Pi OSのSPIを有効化します。

$ sudo raspi-config

次の設定画面から、”3 Interfacing Options” → “I4 SPI” → “Select” と選択し、SPIを有効化します。

Pythonライブラリのインストール

AdafruitのPythonライブラリを次のコマンドでインストールします。このライブラリは、ILI9341などのコントローラにも対応しています。

$ sudo apt-get install python3-rpi.gpio python3-spidev python3-pip python3-pil python3-numpy
$ pip3 install adafruit-circuitpython-rgb-display

ロゴ表示プログラムの作成

次に作成したロゴ表示プログラ「lcdtestaAdafruit.py」を示します。

  • 28行目で画面クリアのため白で画面を塗りつぶします。このLCDは白黒反転しています。
  • 34行目でロゴのjpgファイルを読み込み、37行目で描画しています。

lcdtestaAdafruit.py

from adafruit_rgb_display.rgb import color565
#from adafruit_rgb_display.ili9341 import ILI9341
from adafruit_rgb_display.st7789 import ST7789

from busio import SPI
from digitalio import DigitalInOut
import board

from PIL import Image, ImageDraw, ImageOps

# Pin Configuration
cs_pin = DigitalInOut(board.D8)
dc_pin = DigitalInOut(board.D25)
rst_pin = DigitalInOut(board.D24)

# Set up SPI bus
spi = SPI(clock=board.SCK, MOSI=board.MOSI, MISO=board.MISO)

# Create the ST7789 display:
display = ST7789(
    spi,
    cs=cs_pin, dc=dc_pin, rst=rst_pin,
    width=240, height=320,
    rotation=0,
    baudrate=24000000
)
# Define color
imgClear = color565((0, 0, 0))

# Fill display with one color
display.fill(imgClear)

# Open image
image = Image.open("logo.jpg")

# Display image
display.image(ImageOps.invert(image))

ロゴ表示プログラムの実行

次のコマンドで作成したロゴ表示プログラム「lcdtestaAdafruit.py」を実行します。

$ python3 lcdtestaAdafruit.py

2.4 inch Full Color LCDに次のようにロゴが表示されます。