Macでも使えるUSB接続オシロスコープ

4.5
DIYする

パソコンにUSB接続するオシロスコープを購入しました。PicoScopeシリーズの最安モデル2204Aです。Windows, Mac, Linuxで使えます。

USB接続オシロスコープ

DIYしていると色々な場面でオシロスコープが欲しくなります。今回は、ESP32でエアコン用スマートリモコンを作っている段階で、赤外線変調周波数を確認したくなりました。

測定器はいろいろ欲しいですが、常時設置する広い作業場はありません。なのでコンパクトなUSB接続タイプのオシロが気になってました。調べたところ、最近ではWindowsだけでなく、MacやLinuxでも使えるようです。KiCadの時もそうでしたが、ひと昔はWindowsでしか使えなかった電子工作ツールが、マルチプラットフォーム対応になって嬉しいです。

Windows/Mac/Linux用のソフトウェアが、こちらからダウンドードできました。起動すると接続されたPicoScopeを選択できます。何も接続してんくても、デモ用のダミー機器を選択できるので、動作の雰囲気を把握できます。

とても良さそうだったので、ハードウェアを購入しました。秋月電子やAmazonで売られてましたが、Amazonの方が少し安かったです。

シンプルな段ボール箱に入ってます。

本体サイズは2.5インチ外付けHDDケースとほぼ同じ、重量は140gです。プローブが2本と、プローブ部品、USBケーブル、説明書、CD-ROMなどが入ってます。USB給電なので、電源アダプターも不要です。Macにそのまま接続するだけです。邪魔にならないので、常時接続していつでも使用できそうですし、ノートPCと組み合わせて、出先で使用するのも楽です。

端子の表記を見ると、プローブのグラウンドがUSBに接続されていて、絶縁されていないようです。なので、商用電源を測定しないように注意書きされています。また入力電圧は+/-20Vppまでです。

とりあえずMacに接続しました。ソフトウェアは、説明書を見なくても大体使える感じで、使いやすいです。いつものトラックパッドが使えるので、楽です。ボタンやツマミでメニュー操作する通常のオシロスコープよりも、むしろ使いやすいと思いました。測定データや、測定画面が簡単に保存できるのも、コンピュータソフトならではです。

信号発生機能

この製品は、入力2チャンネルの他に、ファンクションジェネレータ出力があります。正弦波、矩形波、三角波が出せる程度なのかなと思ってたら、それ以上の機能で驚きました。なんとお絵かきソフトみたいに、手書きで波形を作れました。

これを発信させて、プローブを接続して測定すると、ちゃんとその形の信号が出ています。

このほか、プローブから取り込んだ波形をもとにした信号なども作れるようです。

ESP32の赤外線信号を測定

といろいろ遊べて楽しいのですが、そろそろ目的のリモコン信号測定をしてみます。ESP32で作ったスマートリモコンの信号を確認します。

上記の記事で作成したパナソニックエアコンの信号を読みます。ESP32回路の確認用LEDのアノード側の電圧にプローブを接続しました。

ESP32をUSBでパソコンに接続している場合、オシロスコープのグラウンドもUSB経由でESP32のグラウンドに接続されてます。なので、プローブのグラウンドをESP32のグラウンド以外に接続すると危険です。そういう状況なので、プローブのグラウンドを接続しなくても、実は波形が読めます。ただ測定点に近いところにグラウンド接続した方が、ノイズが少なくなります。

シングルショットトリガーにして、一回分のリモコン信号を測定すると、こんな感じの波形が取得できました。赤外線信号の冒頭部分です。保護抵抗とLEDアノードの接続場所での測定なので、発光した場合には電流が流れて電圧が下がります。周波数変調されているので、発光部分は縦縞が見えますが、消灯部分は電圧が高いままです。

冒頭の長い発光部分と非発光部分がリーダです。それにデータが続きます。データは、非発光が狭い部分が0で、広い部分が1です。なので、データ部分は、0100000000000…というビット列だと分かります。パナソニックのリモコンの開始部分は、0x0220…でLSBから送出されるので、このビット列は正しいです。

オシロソフトのルーラー機能で時間の測定もできます。最初のリーダー点灯部分の幅は、3.47msです。IRremoteESP8266ライブラリのソースコードを見ると、ir_Panasonic.cppに、

const uint16_t kPanasonicHdrMark = 3456;
const uint16_t kPanasonicHdrSpace = 1728;
const uint16_t kPanasonicBitMark = 432;
const uint16_t kPanasonicOneSpace = 1296;
const uint16_t kPanasonicZeroSpace = 432;      

という記載があります。単位はマイクロ秒で、HdrMarkという数値がリーダー点灯部分です。プログラムと合ってます。その次の消灯部分は実測で1.7ms, データ信号の短い部分が0.44ms, 長い部分が1.3msでした。これらもプログラム通りに動作していることを確認できました。

ESP32の変調周波数を確認

上のスクリーンショットを見ると、LEDの点灯部分には、細かい縦縞が入っています。高い周波数で変調されていることがわかります。この周波数を選択的に検出するバンドパスフィルタを使うことで、ノイズに強いリモコンを実現してます。赤外線リモコンの変調周波数は、38kHzである場合が多いと聞きました。以下で紹介した秋月電子で販売されている赤外線リモコンセンサーも37.9kHzのフィルターが入ってます。

ESP32の信号と、パナソニックリモコン信号の、それぞれの変調周波数が一致していないと、リモコン感度が落ちる可能性があります。それを調べたいと考えました。そこでまずはESP32の変調周波数を確認します。オシロの時間軸を変更して、リモコン信号の冒頭部分を拡大しました。

密な縦線で見えていた変調が、矩形波で見えるようになりました。このキャプチャ画像では、矩形波の10周期分の時間を、ルーラ機能で測定してます。その時間を周波数に換算すると3.65kHzでした。10周期分なので、実際には36.5kHzの変調周波数ということになります。

これもIRremoteESP8266ライブラリのソースコードを見ると、ir_Panasonic.hに、

const uint16_t kPanasonicFreq = 36700;

との記載があります。正しく変調されているようです。

赤外線信号を確認するために、今までは、赤外線受信モジュールを取り付けたRaspberry Piで測定して、プログラムで加工して、Pagesでグラフを書いてました。こんな感じで綺麗に描けるのですが、手間がかかってました。以下はパナソニックエアコンの信号です。

オシロスコープがあれば信号をすぐに確認できるので、今後は効率的にデバッグできると思います。

実リモコンの波形を確認

次に、実際のリモコンの波形を測定します。これも、今までは赤外線リモコン受信モジュールを使って解析してました。でもそれでは変調周波数までは調べられません。ESP32が発生する変調周波数は36.7kHzでしたが、実リモコンが出す信号も同じなのかどうかを確認したいです。

リモコンケース裏蓋は、ネジ1本でとまっていて、他は噛み合わせになってました。開けると赤外線LEDが見えます。この足の両端にプローブを当てました。リモコンの場合は電池駆動で、オシロモジュールとはグラウンド接続していません。なので、プローブのグラウンドをどこに接続しても問題ありません。

その結果、こんな感じで発光してました。

冒頭の長い山と谷がリーダです。それにデータが続きます。データは、谷が狭い部分が0で、谷が広い部分が1です。なので、データ部分には、

010000000000010000000111001000000000000...

というビット列が見えます。LSBから送信されていると仮定して、16進数に変換すると、

0x0220E0040...

という内容です。こちらで解析した通りのパターンでした。

これも点灯部分には細かい縦縞が入っていて、変調されていることがわかります。冒頭部分を拡大して、変調周波数を確認しました。

これも10周期分の時間を測定すると、3.69kHz相当なので、変調周波数は36.9kHzのようです。ということで、ライブラリで指定した36.7kHzとほぼ一致してます。ライブラリを作成した人が参照したパナソニックリモコンと、手元のリモコンで、同じ変調周波数が使用されていたようです。スマートリモコンが最適に動作していたことを確認できました。

赤外線リモコンはどれも38kHzなのかと思ってましたが、必ずしもそうではないのですね。

まとめ

USB接続のオシロスコープPicoScopeシリーズの最安モデル2204Aを使いました。操作ソフトはWindowsだけでなく、Mac, Linuxにも対応しています。これを使ってパナソニックエアコンのリモコン信号を測定してみました。

最近は、コスパの高いオシロスコープが手に入ります。Amazonで探したら、あと1.5万円ほど出費できれば、卓上型のオシロスコープが買えます。こちらの方がボタンやツマミを多数備えていて、ハードウェアとしての満足感が得られます。

これらの従来型オシロと比較した一番のメリットは、小型軽量でUSB給電なので、気軽に使えて持ち出せて使えることかと思います。

使い勝手はそれぞれ一長一短です。感度調整や走引周波数変更などの基本操作に関しては、物理的なツマミで切り替え・調整できる従来型オシロが優れているかと思います。でも従来型オシロにも、物理的なメニューボタンでメニュー表示して、カーソル移動キー、選択ボタンを使って設定する機能が多数あります。ソフトウェアオシロは、大きなパソコン画面に分かりやすいGUIを表示し、使い慣れたマウスやトラックパッドで操作できます。なのでGUI操作する機能に関しては、ソフトウェアオシロの方が、はるかに使いやすかたったです。測定結果や波形画像を直接コンピュータに保存できる点も、地味ながら便利でした。従来型オシロでもUSBメモリに保存できますが、抜き差ししてのファイル移動が面倒です。

ただ、従来型オシロの方が電気的に堅牢で、測定器として優れてます。PicoScopeは、USB側とプローブ側が絶縁されていない上、入力電圧も+/-20Vppまでに制限されてます。ただPicoScopeシリーズの高価な上位モデルも同じような仕様ですので、コンピュータ接続する程度の電圧の電子回路を対象とした製品群だと理解すべきかと思います。

コメント

タイトルとURLをコピーしました