Raspberry Pi PicoでAT-Xを作る⑥ LCD(Pico-LCD-1.14)の動作チェック

raspberry pi pico

お久しぶりです。企画ポシャったと思ったでしょ?俺も思ってました。

最小構成で画像の表示をしてみるよ。

SPI通信について勉強した

なんとなくで敬遠してたけどめっちゃ簡単なことだった。嬉しい。

SPI通信とラズパイの仕様について学んだ

vscodeで作業するために準備

vscodeの拡張機能「MicroPico」がなんだかすごいらしいから入れた

MicroPico導入から使うまでの流れはこちらを参考にしました。
Raspberry Pi Pico W の LED を VS Code を使って、点滅させてみた。(RP-Pico チュートリアル) #VSCode – Qiita

大事そうなドライバをラズパイに入れる

有志作成(?)公式(?)の便利ドライバ

ボタン類の初期設定とか、画面に何かを表示するときに楽なメソッドがもう入ってる

russhughes/st7789py_mpy: Driver for 320×240, 240×240, 135×240 and 128×128 ST7789 displays written in MicroPython

↑このページの右上の[<> code]からzipをDL

これらをラズパイ内に配置

画像を表示するのに必要なpyファイルは以下の3つ
st7789py_mpy-master\lib
・st7789py.py
st7789py_mpy-master\tft_configs\waveshare_114
・tft_buttons.py
・tft_config.py

ラズパイの直下にlibフォルダを作ってそこに3つとも突っ込んだ

動作テストのためのソースを作る

動作チェックだけなら公式のデモソースでもいいんだけど、
あれはドライバを使わずゴリゴリ書かれてるから
ドライバの使い方の理解もしたいし自分で作った。

テストソースを作る① 描画テスト

LCDtest1.py

import time
import st7789py
import tft_config

# LCD 初期化
tft = tft_config.config()

print('赤')
# 画面を赤で塗りつぶし
tft.fill(st7789py.color565(255, 0, 0))
time.sleep(2)

print('緑')
# 画面を緑で塗りつぶし
tft.fill(st7789py.color565(0, 255, 0))
time.sleep(2)

print('青')
# 画面を青で塗りつぶし
tft.fill(st7789py.color565(0, 0, 255))

print('完了')

赤→緑→青の順に2秒間隔で切り替わって完了

テストソースを作る② ボタンテスト

LCDtest2.py

import time
import st7789py
import tft_config
import tft_buttons

# LCD 初期化
tft = tft_config.config()
# ボタン初期化
btn = tft_buttons.Buttons()

# ボタンの状態を保持するための変数
prev_pressed = None

while True:
    # 今回のボタン状態を取得(Low = 押されてる)
    is_pressed = (btn.keyA.value() == 0)

    # 前回と状態が変わったときだけ処理する
    if is_pressed != prev_pressed:
        prev_pressed = is_pressed
        if is_pressed:
            tft.fill(st7789py.color565(255, 255, 255))  # 白
        else:
            tft.fill(st7789py.color565(0, 0, 0))        # 黒

ボタンを押してる間だけ白い画面になる
vscode側で停止押すまで動き続けるよ

テストソースの配置

ラズパイピコ直下に置いた

結線(配線)

Pico-LCD-1.14とラズパイピコは対になって
ガッチリ嵌め込める仕様になってるからぶっさすだけ。

自分は後々microSDのリーダーモジュールとも接続したいから
ブレッドボード上で線繋いでるよ

動かしてみよう

vscode上でテストソースを開いた状態で

vscode左下の「▷ Run」をクリックしたら実行できるよ

結果

LCDtest1.py 描画のテスト

LCDtest2.py ボタンのテスト

おわりに

数年ぶりに進捗あった。

次回は画像を表示させてみるよ。

タイトルとURLをコピーしました