YAS's VB.NET Tips
 
ラズベリーパイ活用
ラズベリーパイ活用 >> 記事詳細

2021/11/01

ELEGOOのArduino用2.8インチTFT液晶にビットマップを表示する④(完結編)

| by:YAS
 前々前回に引き続き、Arduino用のTFT液晶をRaspberry Pi PICOにつなぎ、240 x 320ピクセルのBitmapを表示してみました。前回24bitBitmapを16bitBitmapに変換する処理とGPIOへの出力部分をPIOを使って作りました。残念ながら遅くなってしまいましたが、BitmapデータをPIOにそのまま流し込めるようになりましたので、今回は、DMAを使って画像データをPIOに転送してみました。
 その結果は、なんと0.094秒と、最初の18.2秒から193倍の速度になりました。すごいぞDMAとPIO!C++なんていらないじゃん!何でもMicroPythonで作れるんじゃない?
 DMAの利用は、myDMA.pyを使わせていただきました。下のページからコピペし、同じフォルダに入れておいてください。
 danjperron/PicoAudioPWM - GitHub
 DMAを使う際に注意する点として、フルスピードのDMAで転送するとPIOのFIFOがオーバーフローしてしまうので、DMAのクロックを1/5にしています。(この値は1/2,1/3…と試してみて、うまくいった値を使っています。適当です。)
 
 下のコードは,MicroPython1.17をインストールしたRaspberry Pi PICOで作成・動作確認をしています。(同じフォルダに240 x 340ピクセル、24bitカラーの画像を「sample.bmp」という名前で配置してください。)


01:34