LCD(ST7735R)のMicroPythonドライバを更新

一年ほど前に作成(正確には修正ですが)した、160×120ピクセルのLCDのESP32(MicroPython)用ドライバにIssueが上がってきました。

pixel offsets · Issue #1 · boochow/MicroPython-ST7735

ピクセルがずれているというもので、そのこと自体は当時も気が付いてはおり、そのうち直そうと思いながらそのままになっていました。
当時のビデオでも、ずれていることが分かります。

ESP32 MicroPython + ST7735 TFT LCD

実はArduino用ライブラリでは、既に同様のバグ修正を行っていました。

Arduino(9) Adafruit_ST7735ライブラリの修正(aitendoの1.8型LCD用) – 楽しくやろう。

なので、この修正自体をMicroPythonで再現すれば良い事になります。
ライブラリの作りは異なるものの、LCDのコマンド体系は変わりませんから、修正はそれほど難しくはありません。

このLCDは、座標で矩形領域を指定した後、連続してピクセル書き込み命令を送ることで矩形領域を塗りつぶします。
基本的には、その矩形領域の指定部分にオフセット値を加える処理を追加すれば、描画全体をずらすことができます。
コードにこの処理を追加し、さらにオフセット値を指定した初期化メソッド(initb2)を追加して修正完了です。

added _offset and initb2() to TFT class for some blue-tab LCD modules · boochow/MicroPython-ST7735@75c155d

コメント