I2C接続の超小型表示部「SSD1306」とESP32ボードで、2Dグラフィックを表示してみました。
Adafruit等の表示ライブラリは使わずWire.hのみ使用、
32x32ドットの星の絵を、自作のプログラムでリアルタイム描画しています。
星のドット絵。
これをESP32でひたすら計算して1ドットずつ描画します。
・拡大縮小付き疑似スプライト
・背景の拡大縮小、回転、スクロール
・透視投影変換による疑似3D
・ハーフトーンで5階調表示
やっていることはスーファミ時代のハードウェア描画に似ているかもしれません。
スペースハリアーやマリオカートの頃ですね。
これくらいの負荷だと、1フレームの描画時間は20~30ミリ秒なので、
秒間30~50フレームの滑らかな表示ができそうです。
・・・実は大昔に、PC98で同様のプログラムを試作したことがあります。しかし、
独学のC言語+アセンブラを併用しても秒間10フレームしか出ず、悔しい思いをしました。
それがESP32で楽に実現してびっくりです。
特に計算処理が速い気がします。
当時の32ビットPC98が20~30万円。
今回のESP32マイコンボードは中国通販でわずか400円、なのに動作は軽々サックサク。
二十年以上前との比較なので当然かもしれませんが、
ハードの進化は凄いと、改めて感じました。