RP2040-GEEKで画像の表示に挑戦してみました。なお、今回プログラムはMicropythonで行っています。
RP2040-GEEKのWikiはこちらになります。
Raspberry Pi PicoのMicroPythonのファームウェアをセットアップや開発環境の設定については下記をご覧ください。
【MicroPythonのファームウェアをセットアップ】
設定方法は下記のURLに記載されています。
URL: https://www.raspberrypi.org/documentation/rp2040/getting-started/#getting-started-with-micropython
また、当ブログでは下記の記事に記載しています。
今回の注意点としてはファームウェアをダウンロードする際にRaspberry Pi Pico Wのほうを選択してください。
【開発環境の設定】
当ブログでは下記の記事に記載しています。
なお、RP2040-GEEKのBOOTボタンは下記になります。
各種の設定が完了したら、Thonnyを起動し、インタプリタとして「MicroPython(Raspberry Pi Pico)」を選択します。
これは、右下のボックスをクリックして行うことができます。
準備ができたら、下記のページのライブラリを使用してプログラムを書いていきます。
今回はRP2040-GEEKへ移動する必要があるファイルが複数あるので、下記のボタンを押してZip
ファイルをダウンロードします。
Zipファイルを解凍した後は下記の操作でファイルをアップロードします。
表示 > ファイルを選択
PC側のフォルダを先程解凍したフォルダへ移動した後、libフォルダをRP2040-GEEKへアップロードします。
移動が完了した状態。
次に、romfontsフォルダの中身を1つずつアップロードします。
次に、下記の場所のファイルを開き名前を変更せずに保存します。
ここで、ピンの配置は下記の通りなので、この部分はプログラムを書き換えます。
変更前
変更後
表示する画像について
おそらくですが、背景が透明化されている必要があります。
また、カラーもできるかもしれないのですが、ライブラリーの例で使用していたものが白黒だったので、とりあえず今回は白黒限定で変換してみることにしました。
画像のバイナリー変換について
RP2040-GEEKで画像を表示するには画像をバイナリー変換する必要があります。
バイナリー変換はライブラリーにあるプログラムで行うことができます。
使用するプログラム
変換にはZipファイルで落とした中の下記のプログラムを使用します。
フォルダ: st7789py_mpy-master > st7789py_mpy-master > utils
ファイル名: image_converter.py
使い方
1) image_converter.py をThonnyで開き、インタプリタを「Local Python3・Thonny's Python」に変更します。
2) Shellに下記のように文言を入力して、Enterキーを押下します。
%Run "C:/image_converter/image_converter.py" "C:/image_converter/alien.png" "4"
解説をすると最初の" "はimage_converter.pyのファイルのフルパス、次の””は変換したいpinファイルのフルパス、"4"は1ピクセルに割り当てるビット数を指定しています。
Zipファイルのままだと長くなるので image_converter.py を状況に応じてどこかにコピーしたほうが良いかと思います。
alien.pngはZipファイルの下記の場所に格納されているので、最初に画像変換できるか確認したい場合はこちらで試してみるのが良いかと思います。
st7789py_mpy-master > st7789py_mpy-master > examples > alien
3) 変換結果がshellに表示されるので、thonnyの新規ファイルに結果をコピーします。
4) インタプリタを「MicroPython(Raspberry Pi Pico」に変更して、3)で作成したファイルをRP2040-GEEKに任意の名前で保存します。
画像の表示をするプログラム
image_converter.pyにコメントに表示例のプログラムが書いてあるのですが、下記のコードで表示することができます。
蛍光マーカーの場所は画像変換の際に保存したファイルの名前を記述してください。
alien.pngを表示した結果
画像の表示例その1
使用した画像
プログラム
※上記の画像をバイナリー変換したものを一緒にRP2040-GEEKに格納しておく必要があります。ここで変換結果を張り付けてしまうと2次配布に当たる可能性があるので、各自で変換をお願いします。
表示結果
画像の表示例その2
使用した画像
プログラム
※上記の画像をバイナリー変換したものを一緒にRP2040-GEEKに格納しておく必要があります。ここで変換結果を張り付けてしまうと2次配布に当たる可能性があるので、各自で変換をお願いします。
表示結果
応用
以下、サンプルプログラムの内容ですが、使いこなすとこんなこともできるらしいです。
①アニメーション
使用したプログラムの場所
st7789py_mpy-master > st7789py_mpy-master > examples > alien
使用したプログラム
※alien_bitmap.pyを一緒にRP2040-GEEKに格納しておく必要があります。
alien.py
表示結果
②スプライト
使用したプログラムの場所
st7789py_mpy-master > st7789py_mpy-master > examples > tiny_toasters
使用したプログラム
※tiny_toasters_bitmaps.pyを一緒にRP2040-GEEKに格納しておく必要があります。
tiny_toasters.py
表示結果
③ピクセル描画
引用させていただいたプログラムのリンク
RP2040-GEEK用に修正したプログラム
表示結果
参考にさせていただいた記事
・Github st7789py_mpy
・st7789py Documents
・MICROPYTHON ESP32 – LIBRERÍAS NO ESTÁNDARES Pantallas LCD Color ST7789
・ICOOON MONO
・Icon rainbow
Bình luận