2017年10月07日

TFT LCD(ST7735R)をMicroPythonで動かしてみた

st7735r-micropython.jpg

ESP32+MicroPythonで、SPIでOLED表示ができたので、同じくSPI接続のTFT LCDも動かしてみました。
使用したLCDはこちらの記事で使用したもので、128×160ピクセル、コントローラはST7735系です。
MicroPythonでのドライバは、おなじみのAdafruitのものがありました。

adafruit/micropython-adafruit-rgb-display: MicroPython library for RGB pixel displays.

結線は基本的には前回使用したOLEDと同様に
LCD  ESP32
VLED 3V3
RST IO17
A0 IO16(DC)
SDA IO13(MOSI)
SCK IO14(CLK)
VCC 3V3
CS IO5
GND GND
と接続してみました。

esp32-st7735r.png


ソフトウェアですが、上記のAdafruitで公開されているファイルのうち、
rgb.py
st7735.py
の2つが必要です。

まずrgb.py、次にst7735.pyを転送もしくはREPLでコピペします。
やり方は以前と同じです。

使い方の例です。冒頭の写真の表示を出力します。
from machine import Pin, SPI
spi = SPI(1, baudrate=30000000, polarity=0, phase=0, sck=Pin(14), mosi=Pin(13), miso=Pin(12))
lcd = ST7735R(spi, dc=Pin(16), cs=Pin(18), rst=Pin(17))
lcd.fill(0)
for x in range(128):
for y in range(160):
lcd.pixel(x,y,color565(x*2, y*3//2, 255-x-y*3//4))

st7735.pyではST7735とST7735Rの二つのクラスが定義されていますが、私のLCDモジュールはST7735Rのほうで動作しました。
SPIのビットレートを早くしすぎるとディスプレイのほうが追いつかない(ドットが1つ飛ばしになる)ので、もしうまく動作しない場合はbaudrateの値を小さくしてみてください。

全部Micropythonで書かれているので、さすがに実行速度はあまり早くありません。
しかし、インタープリタで実行できる有難味は捨てがたいですね。
ラベル:MicroPython
posted by boochow at 19:36| Comment(0) | ESP8266/ESP32 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
人気記事