Arduino用の2.8インチTFT LCD Shield (320×240,ILI9341,パラレル型)を手に入れた。
Kuman Arduino用ディスプレイ タッチスクリーン 2.8 inch 320*240ピクセル LCD 16bit Arduino Nano Mega2560適用ディスプレイ K60 (Amazon)
KumanのK60という品物をAmazonで購入した。同様のスペックの品物が他にもいくつか売っていたりする。大元の製品のOEMとかコピー品なのかもしれない。
Arduino Uno互換機に接続して動かしてみた。
ソフトとしては、Arduino IDEでライブラリマネージャーからILI9341用のものを検索すると、いくつか見つかるのでAdafruitのものを試してみようとしたのだが、SPI接続で使うライブラリだったので使えないようだ。
KumanのサイトにもK60用のサンプルスケッチが公開されていたのでそちらを動かしてみた。
全画面を塗りつぶす処理で、書き換えに1秒くらい掛かっている。1fpsくらいだ。
—
SPI接続することのできる同じくらいのスペック(320×240,ILI9341)のArduino用の液晶ShieldがAdafruitとかから出ていたようだが、入手が難しいようだ。
液晶の制御用のコンローラーのICとしてILI9341が使われているという点では一緒なのだが、SPIで接続するのか、あるいはパラレル接続するのかという違いがある。
ひょっとすると、安く売っている上記のKumanのILI9341の液晶ShieldからSPIの信号線を引っ張り出して使うことができないか?というのが気になったので調べてみた。
液晶パネルを固定している両面テープを剥がしてパネルの裏側を見てみたのだけれど、残念ながらSPIのピンが存在しないパネル部品だった。
SPI出力に改造することは不可能ということが分かった。
—
GR-LYCHEEというARMマイコンボードで画面表示用に使ってみようとした。
しかし、GR-LYCHEEはArduino互換のフォームファクターなのだけど完全互換というわけではなく、Analogの位置にあるピンをGPIOとして使う場合に出力としては使うことができない。
なので、Analogピンを制御用に使っているこの液晶Shieldは、このままでは使うことができないということになる。
対策として、Analog部分のピンに配線されている信号を別のピンにすげ替える改造をすることにした。
まず、Analogのピンを取り除いた。
SDカード用の配線部分をパターンカットして、その部分のピンにジャンパー配線をした。(SDカードは使うことができなくなった。)
Arduino Uno互換機につないで、ソフトを修正して動作テストをした。特に問題なく動作した。
同様に、GR-LYCHEEで動かしてみた。
ソフトをだいぶ修正する必要があったが、とりあえず動かすことができた。
しかし、GR-LYCHEEは、Arduino Unoよりも高速なCPUなのにI/Oについてはそれほど速度を出せないらしく、Arduino Unoと同程度の1fps程度の書き換え速度しか出なかった。
ついでにESPDUINO-32でも動かしてみたが、その場合は2~3fpsくらいの書き換え速度だった。
—
結論としては、安く売っているILI9341の液晶パネルを使ったArduino shieldは、描画速度がかなり遅いので使い道に困るということが分かった。
そして、SPI出力に改造することもできない。なぜなら液晶パネル部品そのものにSPIの信号線の出力が無いからだ。