電子工作用のオシロスコープ
FlukeのDMM(87Ⅳ)と定電圧電源STP3005が手に入ったので、あとはオシロスコープがあれば電子工作三種の神器がそろう。いろいろ作ったり実験したいと考えているのだが、まずはその前に、オシロスコープを準備したい。 そんなことを考えて、九州工業大学のArduinoオシロスコープ Kyutech Arduino Scopeを試してみた。
Arduino 簡易オシロスコープ | 国立大学法人 九州工業大学 情報工学部【飯塚キャンパス】
Kyutech Arduino Scopeを試した
ブレットボード上に固定抵抗とコンデンサーを配線して試してみた。1uFのコンデンサーが無かったので、0.47uFのコンデンサーを2個並列にした。写真の右端の黄色ジャンパー線は別の回路なので無視してほしい。

九州工業大学のサイトだけだと実体配線がイメージしづらかったので、以下のサイトのFritzingの配線図が大変参考になった。
arduinoによるオシロスコープ2 (4/17) : 体重と今日食べたもの
問題なくPULSE出力の矩形波信号を測定することができた。設定変更もキーボード、マウスから直感的に行えるし、デフォルト設定へのリセットもショートカットキー[r]や[Shift + r]でできて嬉しい。スクリーンショットも右上の[Go]ボタンで簡単にできる。*1以下の画像はスクリーンショットの保存結果。PC上で画面表示しているので、普通にスクショすれば良いのだが、ソフト上でスクリーンショットを保存すると余計な右画面の設定値が載らなかったり、毎回同じピクセル数で保存されるので、やはりアプリ上での画像保存機能は便利。


等価時間サンプリング?というのがわからなかったが、Arduino Uno Rev.3のボードを見ると16MHzの水晶発振器が載っているので、1MHzくらいの帯域幅は確保できるのだろう。(水晶発振器の周波数が直接サンプリング周波数に関係するわけではなく、オシロスコープとしてはADCとDigital I/Oを使用しているので、ICの応答などもあるのだろうけれど。)signal MODEをCH1に設定すると1MHzのサンプリングが実施できた。signal MODEをDUALに設定するとサンプリング速度が半減して500kHzサンプリングになった。写真にそれぞれの設定時の測定結果を示す。わかりやすくするためにサンプリング点をdotsで表示した。


Arduinoで作る簡易オシロスコープが400円でできた | Webシステム開発/教育ソリューションのタイムインターメディア
オシロスコープでの波形観測が必要なときに毎回ブレットボード上に配線するわけにもいかないので、指すだけ基板(HAT?)にしたいのだが、どうせならいろいろつけたい。0V-5Vで負電圧で測定できない、電圧測定の上限が5Vまで、というのがアナログ信号用のオシロスコープとしては使用しづらいので、+/-50V程度までの耐圧はほしい。
そんなこんなでいろいろインターネットを探していたら、基板タイプとしてはRaspberry pi picoを利用したScoppyというオシロのほうが便利そうだとわかった。
Scoppyについては、実際には、PL2407AFEという基板(2000円くらい)を使用して電圧範囲を拡大して使用する必要がありそう。
Raspberry Pi Pico用オシロスコープ基板2 PL2407AFE | picoLABO
ScoppyとKyutech Arduino Scope
RP2040(Raspberry pi pico)を使用したScoppyとArduinoを使用したKyutech Arduino Scopeを比較すると以下の通り。Arduino Scopeのほうが高速かと思っていたが、RP2040でも2MHzサンプリングできるよう。Arduinoは5VDCまで対応可能で、Scoppyは3.3VDCまでしか測定できないのが強いて言えば劣っているが、どうせPL2407AFEを使用するのなら30Vまで拡張可能なので問題なさそう。Androidに繋いでハンディオシロとしてPCレスで使用できるのがとにかくScoppyの魅力。ロジックアナライザが3.3Vまでで、5Vロジックに対応していないが少し気になるが、必要になればレベルシフターを使用すれば良い。Scoppyを使用するにしても、Raspberry pi pico 2がリリースされたので、せっかくならRaspberry pi pico 2 Wがリリースされてから購入したい。
Scoppy
RP2040 Maximum Sample Rate Setting | Scoppy - Oscilloscope and Logic Analyzer
- チャンネル数:2CH
- 電圧範囲:0-3.3VDC
- 矩形波発生機能あり(100Hz-1.25MHz)
- FFT機能あり
- XYモードあり
- ロジックアナライザ機能あり(3.3Vレベル, 8CH, 25MSymbol/s)
- Androidと接続して使用(OTG:On the Go機能対応スマホ)
- 無料バージョンのScoppyアプリだと広告と1CHに制限。3ドル程度の課金により2CHと広告なしへ拡張。
PL2407AFE使用時の仕様
- アナログ帯域幅:500kHz
- サンプリング:2Msps/ch(1ch単独使用時)
- 測定分解能:入力電圧範囲の1/200
- 絶対最大入力電圧:±40V
- 入力電圧範囲:±30V, ±6V, ±1.5V
- 入力カップリング:DC/AC 注意:BNCコネクタは別途必要
Kyutech Arduino Scope
- サンプリング:1MHz (等価時間サンプリング、1CH時)
- チャンネル数:2CH
- 電圧範囲:0-5VDC
- FFT機能あり
- 矩形波発生機能あり(31Hz-2MHz)
- PCと接続して使用
- 入力インピーダンスが1kΩ程度と低い・定義されていない
*1:最初はなぜか[Go]ボタンが有効にならず、色々見ていたら、running中だと有効にならず、stoppedのときのみ有効になった。考えてみると確かにその通りかもしれない。波形更新中に画像取得するのは不定になるから確かにその通り。
*2:余談だが、Arduinoからマイコンに入ったものとしては、Raspberry pi picoを比べてハードウェア性能が高いのを実感する。I/Oの速度もそうだし、Digitalピンのドライブ能力が20mA程度あるので直接LEDを駆動できる。IoT機器として外部機器と無線通信することを考えるとRaspberry pi pico W一択になるが、センサーやアクチュエーターを直接制御するマイコンとしてはArduinoが適切なのだろう。