MicroPythonでラズパイPico Wと1.69インチTFT DisplayモジュールのNTP時計を作成

MicroPythonの使い心地を知るためにRaspberry Pi Pico Wに安価な1.69インチのTFTディスプレイを接続してNTPで更新した内蔵RTC(リアルタイムクロック)の時刻を表示するプログラムを作りました。

OLYMPUS DIGITAL CAMERA

Raspberry Pi Pico W (詳細情報はスイッチサイエンスの商品ページから辿ってください)

1.69インチのTFTディスプレイ (詳細情報はAliexpressの商品ページから辿ってください。400円程度で購入できるSPI通信の240×280画素のフルカラーディスプレイでインターフェースコントローラはst7789を使用していてします。)

配線
<TFTディスプレイ> ——– <Pico W>
GND ——– GND (18pin)
VCC ——– 3V3(OUT) (36pin)
SCL(SCLK) ——– SPI1SCK(19pin)
SDA(MOSI,SDI,DIN) ——– SPI1TX(20pin)
RES(Reset) ——– GP11(15pin)
DC(Data/Command) ——– GP12(16pin)
CS ——– SPI1CSn(17pin)
BLK(Backlight) ——– GP10(14pin)

st7789用ライブラリ
ST7789 Driver for MicroPythonとしてgithubに公開されています。Pico W用MicroPython Firmware (https://github.com/russhughes/st7789_mpy/tree/master/firmware/RP2W/firmware.uf2)をダウンロードして、Pico Wのブートボタンを押しながらPCのUSBポートに接続し、現れたUSBドライブにfirmware.uf2ファイルをドラッグ・ドロップします。

NTP時刻を取得するライブラリは時差を補正することができなかったので、ライブラリ内でJAPAN_TIME = 9*60*60を補正してRTCに書き込むことにしました。ntptime_jp.pyという名前でpico Wに保存しました。(オリジナルはmicropython-lib/micropython/net/ntptime/ntptime.py です。)

フォントはst7789_mpy/fonts/vector/romand.pyをPico Wに保存して使いました。