「DSO Quad」という小型のオシロスコープを購入しました(「DSO Quad」の購入レビューは こちら)。
早速、以前から調べたかった信号を測定してみます。
調査するのは、M5Stackの電源です。
外付けセンサをつけた時など、たまに挙動がおかしい時があり、電源が不安定なのではないかと疑っています。
M5Stackから、ジャンパー線で「3V3」と「G」を取り出し、「DSO Quad」のプローブとつなぎ、電源-グランド間の電位差を測定します。
調査結果1 〜スケッチによる電源ノイズの変化
空のスケッチ
M5Stackに空のスケッチ(Arduino IDEで「新規ファイル」を選んだ時に開くもの)を書き込みます。
オシロスコープで測ると、以下のとおり、電源はそれなりに安定しています。
「M5.begin」を追加
次に、このスケッチの先頭に「#include 」を、setup内に「M5.begin();」だけを追加して、M5Stackに書き込みます。
オシロスコープで測ると、以下のとおり、電源は先ほどに比べて大きくゆれています。
「M5.begin();」は、M5Stackを使う限りは、どんなスケッチでもまず間違いなく使うものですが、これにより、電源が不安定になっているようです。
ちなみに、「5V」-「G」間を測ったところ、「M5.begin();」があっても、それなりに安定していました。
調査結果2 〜電源ノイズの詳細調査
M5Stackの電源ノイズが気になったので、もう少し調べてみることにしました。
「3V3」-「G」間の電源ノイズを測定します。電源はPCから給電しています。
空のスケッチ →22mV
setupに「M5.begin();」を追加 →114mV
setupにてLCDに文字列表示を追加 →118mV
setupにてWi-Fi接続の処理を追加 →118mV
setupに「M5.begin();」を追加することによって、ノイズが大幅に増大しました。
次に、「5V」-「G」間についても、同様に調査しました。
なお、電源はPCから供給しています。
空のスケッチ →12mV
setupに「M5.begin();」を追加 →10mV
setupにてLCDに文字列表示を追加 →10mV
setupにてWi-Fi接続の処理を追加 →26mV
setupにてWi-Fi接続の処理を追加することによって、以下のようなスパイクノイズも発生するようになりました。
調査結果3 〜電源供給の違いによる5V系電源ノイズの調査
上記はPCから給電したときの結果ですが、5V電源については、電源供給方法の違いによっても差がでると思われるので、上記と同じ、Wi-Fi接続の処理を追加したスケッチで、供給電源だけを変更して測定しました。
内蔵バッテリーで駆動 →46mV、スパイクノイズなし
ACアダプターで駆動 →78mV、スパイクノイズなし
電源供給方法の違いによって、電源ノイズは全く異なる形状になりました。
2台のM5Stackで調査しましたが、概ね同じ結果になりました。
私がM5Stackを使う時には、ほとんどの場合はWi-Fi接続を使っているので、5V、3V3ともに、結構大きなノイズが発生していることになります。
外付けセンサをつなぐ場合は、あまり電源電圧に敏感な使い方はしないよう、注意しなければいけなさそうです。
なお、私がM5Stack、M5StickCの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
ごく基本的なところから、かなり複雑なスケッチや、ネットワーク接続など、比較的高度なものまで、つまづかずに読み進めていけるような構成になっており、大変わかりやすい本です。