Raspberry Pi Picoで2.2インチのTFTディスプレイの表示テストをします。
PicoでのTFT表示に関連する記事をネット上で探すと、Hello Raspberry Piというサイトに表示のデモがありました。
TFTディスプレイの表示方法は、このサイトの動画と記事を見ていただくと分かるのですが、簡単に説明します。
2.2インチTFTディスプレイには、ILI9341というコントローラが使われています。そこで、Pico用のILI9341ライブラリをGitHubの下のURLから取得します。
このページから、ili9341.pyとxglcd_font.pyをPi Picoにコピーします。コピー方法は、動画を参考にしてください。
上記ページのfontsからUnispace12x24.c というフォントをPi Picoにfontsというフォルダを作り、そこにコピーします。これで準備ができました。
Hello Raspberry Piのページの説明に従って、いくつかデモのスクリプトを試し、動作(表示)を確認しました。しかし、どうも使い方が良く分かりません。そこで、自分なりにスクリプトを書いてテストをしてみました。
まず、PicoとTFTの接続回路図です。SPI0を利用します。
テストしたスクリプトです。各図形の描画書式は、ili9341.pyの中で説明されています。
--------------------------------------------------------------------------------------------
'''
Raspberry Pi Pico SPI LIL9341 Display test
2022.2.10
JH7UBC Keiji Hata
'''
from machine import Pin, SPI
import ili9341
from xglcd_font import XglcdFont
#SPI設定
TFT_CLK_PIN = const(6)
TFT_MOSI_PIN = const(7)
TFT_MISO_PIN = const(4)
TFT_CS_PIN = const(13)
TFT_RST_PIN = const(14)
TFT_DC_PIN = const(15)
spiTFT = SPI(0, baudrate=51200000,
sck=Pin(TFT_CLK_PIN), mosi=Pin(TFT_MOSI_PIN))
display = ili9341.Display(spiTFT,dc=Pin(TFT_DC_PIN),
cs=Pin(TFT_CS_PIN), rst=Pin(TFT_RST_PIN),
width=320, height=240,rotation=90)
#font設定
unispace = XglcdFont('fonts/Unispace12x24.c', 12, 24)
#テキストの表示
display.draw_text(10, 0, 'Hello World!', unispace,
ili9341.color565(255, 255, 255))
#点を描く
display.draw_pixel(180,20,ili9341.color565(255, 255, 0))
#水平な線を描く
display.draw_hline(200,20,90,ili9341.color565(255, 0, 0))
#垂直線を描く
display.draw_vline(300,20,100,ili9341.color565(0, 255, 0))
#直線を描く
display.draw_line(200,30,280,80, ili9341.color565(0,0,255))
#円を描く
display.draw_circle(50, 80, 30, ili9341.color565(0,255,255))
#円を描き、内部を塗りつぶす
display.fill_circle(150, 80, 30, ili9341.color565(0,255,255))
#長方形を描く
display.draw_rectangle(20, 150, 70, 50, ili9341.color565(255,0,255))
#長方形を描き、内部を塗りつぶす
display.fill_rectangle(120, 150, 70, 50, ili9341.color565(255,255,0))
#多角形を描く(例6角形)
display.draw_polygon(6,250,110,30,ili9341.color565(255,255,255))
#多角形を描き、内部を塗りつぶす
display.fill_polygon(6,250,180,30,ili9341.color565(255,0,0))
--------------------------------------------------------------------------------------------
色の指定は、color565(R,G,B)で指定します。
ブレッドボードと上記スクリプトの表示結果です。他に楕円を描いたり、反転させたりすることができます。
※コメント投稿者のブログIDはブログ作成者のみに通知されます