JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

Raspberry Pi Pico MicroPython 2.2インチ TFT表示テストその1

2022-02-10 19:43:18 | Raspberry Pi Pico
 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)で指定します。

ブレッドボードと上記スクリプトの表示結果です。他に楕円を描いたり、反転させたりすることができます。



最新の画像もっと見る

コメントを投稿