google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

ESP32でマンデルブロ集合を表示、ATmega328と速度を比較

6月24日の記事で、ESP8266を使ってマンデルブロ集合を0.96インチOLEDに表示させましたが、同じことをESP32でやってみました。一番の目的はどれくらい速くなるか確認することです。

プログラムはこちら、20200701MandelblotAtESP32.ino(ESP32の仕様に合わせLEDピンをD2に変更しています)

▼回路図
ESP32とOLEDの接続
配線はたったこれだけ。

▼ESP32で実行中
ESP32で0.96インチOLEDのマンデルブロ集合作図
ガニ股ブレッドボードを使ったのでコンパクトに配線出来ました。

結果はもの凄く速くなりました。以下にその様子を紹介します。

ATmega328に対してどれくらい速くなったか、1画面(128x64画素)を計算する時間で比較したのが次のグラフです。
実行時間の違い
これは同じ画面を計算するのに要した時間をATmega328とESP32で比較したもので、横軸がESP32、縦軸がATmega328の実行時間です。ちなみにマンデルブロ集合の計算時間はその計算する座標によって大幅に変わるので、実行時間はこのグラフのように大きく変化します。

グラフの傾きは52.088となりました。つまり、ESP32の方がATmega328より52倍速いということで、これは凄いです。

前の記事と同じようにオシロを使って1回の計算時間を比較してみました。計算中はLED(青色)を点灯させているので、ここの波形を見ています。なお、信号はかなり速いのでうちの安いオシロ(DSO-SHELL)では測定出来ないので、400MHzのアナログオシロで測定しています。

・ATmega328
ATmega328P
波形がHighになっている期間が計算中で、その時間は約70μsでした。

ESP32
ESP32
計算時間は1.4μsになっています。実行時間の比較で52倍速くなっていたので当然ですが、こうやって波形を見るとその速度が実感できます。

ちなみにこの1.4μsの間に32ビットの浮動小数点の掛け算を6回、足し算(引き算)を4回やっています。ESP32には浮動小数点演算機能(FPU)があるのでこれが威力を発揮しているのだと思います。

◆まとめ
ATmega328との速度比較で、ESP8266は6.7倍速かったのですが、ESP32は52倍速いということが判りました。これだけ速いとCPUパワーが必要になる応用でも使い易いでしょうね。今だと機械学習が旬なのでしょうが、個人的にはFFTをやってみたいです。

あと、ESP32はM5StackのCPUとして使われていますが、なるほど、これだけのCPUパワーがあれば使ってみたくなるのもうなずけます。

◆動画
ESP32

全部通常撮影です。

ATmega328

後半はタイムラプスの高速撮影になっています。また、画像の表示回数やズーム比が異なっていますが、マンデルブロ集合の観察位置は同じです。
カレンダー
06 | 2020/07 | 08
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード