家で開発しようと思ったら、うちにオシロスコープがないんですよね。値段が高くてサイズが大きくて買いにくいです。
だから、机の上の材料で自分で作ってみました。
ウェブページで使用できる最小のオシロスコープを作りたかったので、
WIZnetのW5100S
とRP2040をベースにしたSeeed StudioのXIAO-RP2040
を使用してみました
Hardware
このモデルはSeeed Studioのリファレンスデザインに採用されるほど人気がありました。
最近、XIAO-RP2040とEthernetチップW5100Sを組み合わせたモジュールを開発しました。
ハードウェア構成は次のとおりです:ADCを使用してデータをEthernetで送信する簡単な方法です。
P26に単純に2つの抵抗とプローブを接続するだけで、セットアップは完了します。
抵抗の計算に少し戸惑いました。 小数点第2位までの電圧を測定したいです。
Raspberry Pi RP2040 ADCの分解能は12Bit
です。つまり、0から3.3V
の値は4096で割ることができます。
私は0.01V単位で電圧を測定したかったのです。
<0.01V * 4096 = 40.96V> ということは、
約40Vまで測定できれば、0.01V単位で読み取れます。
3.3Vが最大値であるため、抵抗値は40B / (A + B) = 3.3です。
3.3A = 36.7B つまり、の比率で設定できます。
私は36k:3.3kで設計しました
抵抗値が下がらないように、シリコンで固定しました。
SoftWare
WIZnetのRP2040専用Gitを使用して、快適に開発できました。
https://github.com/Wiznet/RP2040-HAT-MicroPython/tree/main/examples/HTTP
Web page
HTTPで値を表示するため、HTMLコードを作成する必要があります。
X
軸は時間に設定され、Y
軸はアナログ値で、最大値は40に設定されています。
リアルタイムでデータを受信し、配信しました。詳細なコードを確認してください。
ADC
RP2040のADCの分解能は12ビットですが、表示は16ビット に変更されます。
つまり、adcで読み取る値は65535で割って3.3Vをかけて実際の入力を出力する必要があります。
そして、正確な抵抗値は36k + 3.3k = 39.3kです。
表現できる実際の電圧値は40Vではなく39.3Vです。
39.3 / 3.3 = 11.90909 したがって、上記の値を11.91倍にします。
3.3Vの入力が来た場合、計算された値は39.3Vとなります。(0.2Vはオフセット値です。)
Demo
さあ、テストの時間です。
電源供給に電力を供給してください。残念ながら、私が持っている電源供給装置は最大で 31.5V しか出力できません。
Videoはこち!
https://www.youtube.com/watch?v=G7Kt-2-oFAY
非常にスムーズで素晴らしく動作します。
RP2040のADCは最大で500 kHzまで読み取れます。
詳細な実験は行っていませんが、このデバイスは複数の遅延のため500 kHz
で読み取りませんが、
それに匹敵する速度で読み取ります。
電源ラインは非常に面倒くさいので、次回はPoEモジュールを作成する予定です。
少し大きく見えるかもしれませんが、思っているよりもはるかに小さく作られます。
ボードが完成したら、このように非常にコンパクトな形で何でもできるようになります。
多くのオシロスコープがありますが、こんなに小さくて効率的なオシロスコープはありません!
非常に、非常にシンプルに作っています!とても快適です!
More Project
Picoとして動作するPoEモジュールはすでに作成されており、それを使ってもテストしました。少し大きいですが、接続ははるかに簡単です。
これはPoEで動作するため、電源線がないため非常にシンプルです。
うまく動作します!!
ここまでです
詳細な情報はこちらのウェブサイトで確認できます。
https://maker.wiznet.io/Alan/projects/the-worlds-smallest-oscilloscope/