Raspberry Pi Pico MicroPython用のマルチフォントライブラリ
Raspberry Pi PicoのMicroPythonは、かなりイケていることが分かり、
Arduino用のフォントライブラリを移植してみました。
■Raspberry Pi Pico MicroPython用のマルチフォントライブラリ
https://github.com/Tamakichi/pico_MicroPython_Multiifont
Arduino用漢字フォントライブラリ SDカード版からの移植なのです。
MicroPythonでは、フラッシュメモリ上にファイルを置いて読み書き出来るので、サックっと移植出来ました。
動作確認(使い物ものになるか)として、
・16x16ドットマトリックのNeoPixcel
・OLEDディスプレイ SSD1306(I2C接続 128x64ドット)
で遊んでみました。
■16x16ドットマトリックのNeoPixcelで日本語表示(sample_mfont_neopixel.py)
全点フル輝度で点灯すると、電力不足でリセットがかかったり動作不安定となります。
本格的に使うには、電源回りの補強が必要です。とりあえず、実験レベルでの動作確認です。
動いている様子
動画のデモでは12ドットフォントを指定して表示しています。
とりあえず、見た目上はまともに動いています。スクロールも滑らかです(*´ω`*)
これで、インタプリタ言語で処理しているかと思うと上出来ですね(^^♪
■OLEDディスプレイ SSD1306(I2C接続 128x64ドット) で日本語表示(sample_oled_mfont.py)
動いている様子
表示は1文字ずつディレイ(時間待ち)を入れて表示しています。
ディレイを抜いてフルスピードにしても表示は遅いです。
遅いI2C接続が足を引っ張っているというより、やはり処理的にちょっとキツイかな。
利用しているSSD1306ライブラリを見直せば何とかなるかもしれません。
メインのプログラムはこんな感じです
定数部分は、各自のご利用ボードに合わせて適宜変更して下さい。
サンプルプログラムでは、「後からインスタンス・メソッドの追加できるか?」を試してみたのですが、出来ますね。
# SSD1306_I2Cに漢字表示インスタンス・メソッドの追加 SSD1306_I2C.drawText = drawText SSD1306_I2C.drawFont = drawFont3 SSD1306_I2C.newLine = newLine |
■まとめ
この記事でやっていることは、いままでArduinoでやってきたことなのですが、
MicroPythonでも、そこそこやれるようですね。しばらくはpicoで遊んでみます。
最近のコメント