RaspBerry Pi Pico 2でフォトフレーム(Jpeg写真)表示
前回単色の有機LEDパネルでの文字表示を紹介しましたが、今回はより大画面のカラー液晶モジュールを使ってSDカード内に格納したJpeg画像ファイルを表示するフォトフレームアプリづくりに挑戦します。
使用したLCD液晶モジュールは、IPS液晶2.4インチサイズ(320×240ピクセル)のものを使用しました。ピクセル数は前回使用したSSD1306の約9倍、色深度16ビット指定で使用しても、表示に必要なデータ量はSSD1306の100倍以上になります。したがって、インターフェースは、より高速なSPIインタフェースが採用されています。使用したLCDの仕様概要を以下の表に示します。
ILI9341 LCDディスプレイ仕様概要
このモジュールは液晶ディスプレイのほかにSDカードソケットとディスプレイにはタッチパネルが付加されており、タッチ操作が行えるようになっています。
RaspBeryPi Pico 2との接続は少し複雑になりますが下記のように行います。
プログラムを起動すると、SD、LCD、タッチパネルの初期化を行います。SDカード内のフォルダに格納された写真データ(Jpeg形式)ファイルを順次読み出して配列にリストアップします。
loop関数内では、0.1秒ごとにタッチパネルの押下をチェックし、押下がない場合は5秒ごとにリストアップしたファイルを読み出しバッファ配列に格納します。バッファ配列の大きさは100KBに設定したので、読み出す写真ファイルの大きさはこれ以下に制限します。前回紹介したグラフィックライブラリのLovyanGFXには、Jpegデータを解凍してLCDに表示するメソッド(drawJpeg()メソッド)があるので、これを利用してJpeg形式で圧縮されたデータの伸長処理を行います。
タッチパネルが押下された場合は、タッチされた座標を読み出し、画面の右側が押された場合は一つ先のファイル、画面の左側が押された場合は一つ前のファイルを読み出します。
このアプリケーションを動かしたときの写真を以下に載せます。