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 | 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に次のようにロゴが表示されます。


