これまでPico でディスプレイを使う場合、シリアル接続はI2C が多かったですが、今回は
ST7735を使ったディスプレイボードをSPI (シリアル・ペリフェラル・インタフェース)で使ってみます。
背面にSDカードスロット(今回は触りません)
Pico とは以下のように結線(SPI0)します。
下段LEDはバックライト用で別系統で電源を供給しています。
開発母艦はラズパイ4で開発環境はArduino IDE です(デフォルトでインストール済み)。
事前準備
Earle Philhower版のボードマネージャーが必要です。設定は以下を参照
Arduino IDE でPi Pico Wの開発用にEarle Philhower版を使う
メニュのツールー>ボードー>ボードマネージャーー>Raspberry Pi RP2040(4.2.1)ー>Raspberry Pi Pico
さらにメニュのスケッチー>ライブラリをインクルードー>ライブラリを管理…
で、以下の2つをインストールしておきます。
●Adafruit GFX Library
●Adafruit ST7735 and ST7789 Library
BOOTSELボタンを押しながらPico とラズパイを接続し、メニュのツールー>シリアルポートで適切なポートを選択
文字表示
画面いっぱいにサイズ1の数字を埋めてみました。
26 x 16
回転
テキスト表示の画面回転の引数(n)を変えてみます。
tft.setRotation(n);
赤い字で示しているのが、tft.setRotation()の引数です。
Adafruit製のライブラリを使ったサンプルプログラムを呼んで、線、矩形、円などを描画
サンプルを使ってみます。
メニュのファイルー>スケッチ例ー>Adafruit ST7735 and ST7789 Libraryー>graphictest
3か所修正後、コンパイルしてPico に書き込み実行してみます。
修正1
#define TFT_CS 10 #define TFT_CS 17
#define TFT_RST 9 ー> #define TFT_RST 22
#define TFT_DC 8 #define TFT_DC 28
修正2
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
↓
Adafruit_ST7735 tft = Adafruit_ST7735(&SPI , TFT_CS, TFT_DC, TFT_RST);
修正3
//#define TFT_MOSI 11 ー> #define TFT_MOSI 19
//#define TFT_SCLK 13 ー> #define TFT_SCLK 18
Leave a Reply