WaveshareのST7735付きRP2040-LCD-0.96を使ってみた

コンピュータ、組み込み

Raspberry Pi Picoの上位互換にWaveshareからLCDモニタ搭載モデルがあります。
Raspberry Pi Picoとの比較と、SPIの配線なしで扱えるLCDを使ってみます。

特徴

RP2040-LCD-0.96の特徴

Waveshareからは、互換モデルのRP2040-Pulseが発売されています。
こちらはさらにLCDが搭載されたモデルになります。

差分項目RP2040-LCD-0.96Raspberry Pi Pico
接続Type CMicro B
フラッシュMemory2MB2MB
ADC3
GPIO2626
ボタンBOOT
RESET
BOOT
LED青(GP25)緑(GP25)
その他IPS LCD 0.96inch ST7735
ピン配置は表を参照
Lipo PH1.27(1000mA充電)

Waveshare ホームページ

Raspberry Pi Pico 互換基板のまとめ

ピン配置

Raspberry Pi Picoとピン配置は同じですが、LCDを使用すると「LCD used pins(SPI1)」が使用されます。

メーカーホームページの図をモディファイしています。
メーカーのものは背面からのピン配置表ですが、モディファイでは上面からのピン配置表です。

外観

Raspberry Pi Picoと同じWaveShareから販売されているRP2040-Plusと比べます。
左からRP2040-LCD-0.96、RP2040-Plus、Raspberry Pi Picoです。
基板サイズは3枚とも同じで、USBコネクタの突き出し量も差異は感じられない程度です。

Raspberry Pi Pico では基板後方にSWDのスルーホールがありますが、RP2040-LCD-0.96ではどう位置にバッテリーコネクタがあるため、デバッグ用のパターンは裏面にパッドとして用意してあります。

Raspberry Pi Picoの記事

RP2040-Pluseの記事

使ってみて

電子部品専門店やショッピングサイト、AliExpressなど取り扱いは多いですが少し割高と感じます。LCDは0.96inchと小さいですが、LCDを使うための煩わしいSPI配線がないので助かります。

普段Adafruit製のライブラリを利用していますが、色が反転するなどいくつかの難あり品ですが
[2023/5/6 スケッチの修正により解消]

バッテリーコネクタがあることにより単体駆動が可能であり、リセットボタンがあることでワンプッシュで再起動ができるなどユーティリティも豊富で評価には申し分ありません。

LCDの使い方については、別途LCDモジュールで詳しく行います。

その他のRP2040搭載基板について

準備

使い方はRaspberrp Pi Picoと同じですので、こちらのリンクを参照してください。

ライブラリ

Arduino IDEのボードマネージャからRaspberry Pi Pico用のライブラリのインストールとボードの選択をします。

検索RP2040
ボードライブラリRaspberry Pi RP2040 Boards(x.x.x)※1
選択するボードRaspberry Pi RP2040 Boards(x.x.x) > Generic RP2040
変更する設定Tools > Flash Size > 2MB(no FS)
※1 使用したバージョンは1.9.3

LCDを制御するためのライブラリにはAdafruit製ライブラリを使用します。
ライブラリマネージャから以下のライブラリをインストールしてください。

ライブラリ名検索
Adafruit GFX Library Adafruit GFX
Adafruit ST7735 and ST7789 LibraryAdafruit ST7735

基本スケッチ

RP2040-LCD-0.96 のペリフェラルの使い方についてサンプルを記載します。
LCDの詳しい使い方はLCDモジュールで紹介します。

LCDの表示

サンプルスケッチ

/**********************************************************************
【ライセンスについて】
Copyright(c) 2022 by たまねぎ
Released under the MIT license

About Licence
当サイトで掲載しているスケッチのライセンスについて OSSの利用について 当サイトで掲載しているスケッチおよびプログラム(以下プログラム)は、Open Source Software(以下OSS)を利用しています。誰でも当サイトに掲載されて...
【スケッチの説明】 RP2040 LCD 0.96 で使用できます。 ビルトインLCDの表示制御を行います。 画面に "TAMANEGI"と表示時ます。 【準備】 配線は不要。 【バージョン情報】 2022/7/9 : 新規 2023/5/6 : 初期化パラメータの修正(INITR_MINI160x80 -> INITR_MINI160x80_PLUGIN) 修正により、指定した色での描画ができる。 **********************************************************************/ #include <Adafruit_GFX.h> #include <Adafruit_ST7735.h> #include <SPI.h> //ピン番号設定 #define TFT_DC 8 // DC #define TFT_CS 9 // CS #define TFT_SCLK 10 // Clock #define TFT_MOSI 11 // MOSI #define TFT_RST 12 // Reset //Waveshare RP2040-LCD0.96では、SPI1にモニタが配線されているので、SPI1をコンストラクタに指定する Adafruit_ST7735 tft = Adafruit_ST7735(&SPI1, TFT_CS, TFT_DC, TFT_RST); void setup(void) { SPI1.setTX(TFT_MOSI); //H/W SPI 設定 SPI1.setSCK(TFT_SCLK); tft.initR(INITR_MINI160x80_PLUGIN); //ST7735S初期化 [2023/5/6] INITR_MINI160x80 -> INITR_MINI160x80_PLUGIN tft.fillScreen(ST77XX_BLACK); //背景の塗りつぶし //テキスト表示 tft.setCursor(40, 30); //カーソル位置 tft.setTextSize(2); //サイズ tft.setRotation(3); //画面回転 tft.setTextColor(ST77XX_YELLOW); //表示色 tft.print("TAMANEGI"); } void loop() { }

スケッチの説明

LCDはSPI1に配線されているので、ピン配置表に従いSPI1のピン番号をマクロ定義します。
Adafruit製のライブラリでは、コンストラクタにSPIオブジェクトを設定することでハードウエアSPIで動作します。
コンストラクタにピン番号を設定するとソフトウエアSPI制御となり描画速度は遅くなります。

結果

背景を黒、文字を黄色で指定していますが、指定した色で表示されません。
また、画素数があっていないのか、画面の端に砂嵐が確認できます。

[2023/5/6] LCDの初期化パラメータを変更することで解消しました。

IPS方式なだけに、視野角が広いです。
角度をつけてみても色変化はあまり感じられません。

ライセンスについて

MIT License および ST7735/ST7789

Raspberry Pi Pico関連リンク

コメント

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