ESP32でオシロを作る作業は難航中
◆まえがき
Arduino UNO (NANO) とOLEDで作るオシロはACモードまで作ったのでほぼ完成しました。こうなるともっと性能を上げた物を作りたくなる訳で、そのためにはCPUをもっと高性能な物に入れ替える必要があります。
◆ESP32を採用
これまで作ったプログラムの移植が簡単に出来てパワーのあるものに交換、ということでCPUをESP32に変更することにしました。マンデルブロ集合ビュワーを作った時の経験では、Arduino UNO (ATmega328P)からESP32に交換することで、演算速度は52倍高速化されることが判っています。また、メモリーも大きく増えるので、やりたくても出来なかったことが実現出来るかも知れません。
・ESP32

評価用のボード(DEVKIT V2)の状態で使います。
◆プログラムの移植
ESP32に乗り換えるためには、プログラムの書き換えが必要になります。大きくは以下のような項目です。
1. アナログ入力周りの変更
2. ディスプレイ用ライブラリの変更(Adafruit から u8g2 に変更)
3. PROGMEMの変更 (PROGMEMを止めて普通の変数に変更)
4. 入力ボタンの割り込み処理の変更
ディスプレイライブラリは将来のことを考えて、このタイミングで汎用性の高いものに変えることにしました。
◆移植作業
変更が必要な個所は多いですが、単純な修正で済むところも多いので順調に移植作業が進んでいました。
・オシロっぽい表示が出来るようになった

電源の誘導ノイズを見ているところです。
ここまでは順調だったのですが、アナログポートの挙動がなんだか変なことに気付きました。信号源のインピーダンスが高い(500kΩ程度)場合に感度がおかしくなるみたいです。他にもおかしな挙動(ex:コンデンサをパラに接続すると電位が上昇)があるのですが正確に把握出来ないでいます。
・シリアルプロッタで調査

矩形波を入力しているのに、じわりと電圧が変化していて、どう考えてもおかしいです。
・計測器を接続して調査

あれこれやって調べています。
◆まとめ
挙動のおかしいところはソフトで補正して、このままオシロとしてまとめてしまう手はあります。しかしそれでは問題点が明確にならないばかりか、対症療法で逃げていると後になってもっと苦労することになりかねません。
そんなことで、ここで一旦足を止め、ESP32のアナログ入力の挙動について詳しく調べてみようと思います。
ESP32のアナログ入力についてはネットにいろいろな情報があるのですが、明らかに不正確と思われるものがあったりします。また、入力インピーダンスまで踏み込んだ情報は見つかりませんでした。こういう時はデバイスのデーターシートを読むべきなのですが、そういう細かい特性まで書かれているドキュメントまでまだたどり着けないでいます。まあ、楽しみながらゆっくり探すことにします。
Arduino UNO (NANO) とOLEDで作るオシロはACモードまで作ったのでほぼ完成しました。こうなるともっと性能を上げた物を作りたくなる訳で、そのためにはCPUをもっと高性能な物に入れ替える必要があります。
◆ESP32を採用
これまで作ったプログラムの移植が簡単に出来てパワーのあるものに交換、ということでCPUをESP32に変更することにしました。マンデルブロ集合ビュワーを作った時の経験では、Arduino UNO (ATmega328P)からESP32に交換することで、演算速度は52倍高速化されることが判っています。また、メモリーも大きく増えるので、やりたくても出来なかったことが実現出来るかも知れません。
・ESP32

評価用のボード(DEVKIT V2)の状態で使います。
◆プログラムの移植
ESP32に乗り換えるためには、プログラムの書き換えが必要になります。大きくは以下のような項目です。
1. アナログ入力周りの変更
2. ディスプレイ用ライブラリの変更(Adafruit から u8g2 に変更)
3. PROGMEMの変更 (PROGMEMを止めて普通の変数に変更)
4. 入力ボタンの割り込み処理の変更
ディスプレイライブラリは将来のことを考えて、このタイミングで汎用性の高いものに変えることにしました。
◆移植作業
変更が必要な個所は多いですが、単純な修正で済むところも多いので順調に移植作業が進んでいました。
・オシロっぽい表示が出来るようになった

電源の誘導ノイズを見ているところです。
ここまでは順調だったのですが、アナログポートの挙動がなんだか変なことに気付きました。信号源のインピーダンスが高い(500kΩ程度)場合に感度がおかしくなるみたいです。他にもおかしな挙動(ex:コンデンサをパラに接続すると電位が上昇)があるのですが正確に把握出来ないでいます。
・シリアルプロッタで調査

矩形波を入力しているのに、じわりと電圧が変化していて、どう考えてもおかしいです。
・計測器を接続して調査

あれこれやって調べています。
◆まとめ
挙動のおかしいところはソフトで補正して、このままオシロとしてまとめてしまう手はあります。しかしそれでは問題点が明確にならないばかりか、対症療法で逃げていると後になってもっと苦労することになりかねません。
そんなことで、ここで一旦足を止め、ESP32のアナログ入力の挙動について詳しく調べてみようと思います。
ESP32のアナログ入力についてはネットにいろいろな情報があるのですが、明らかに不正確と思われるものがあったりします。また、入力インピーダンスまで踏み込んだ情報は見つかりませんでした。こういう時はデバイスのデーターシートを読むべきなのですが、そういう細かい特性まで書かれているドキュメントまでまだたどり着けないでいます。まあ、楽しみながらゆっくり探すことにします。
- 関連記事