2018年08月12日 | 公開。 |
Arduino Dueを使ったオシロスコープを試作しましたので紹介します。2チャネルのオシロスコープでサンプリング周波数は160ksps(1チャネル時および2チャネル時)です。おおむね直流~20kHzの周波数帯域で使用できます。
また、試作したオシロスコープは、Youtubeの動画でも紹介しています。そちらもご覧ください。
なお当記事は、RSコンポーネンツの協力で執筆致しました。
オシロスコープは、しばしば「オシロ」と省略されますが、時間的に変化する電圧の波形を画面に表示する計測器です。電子回路の動作を理解するのに、ほぼ必須の計測器で、また、電子工作入門者の憧れの測定器でもあります。
写真1ににオシロスコープの例を示します。左側の液晶ディスプレイを見ると、2チャネル分の電圧波形が表示されています。
オシロスコープで電圧波形を観察する事の意味を分かりやすく説明するために、ここで正弦波の電圧波形を測定する場合を例に挙げて説明します。
例えば、振幅3V、周波数100Hzの正弦波交流電圧をグラフに表わすと、図1の様になります。この図から、電圧が-3V~3Vの範囲で変化している事や、周期が10ms(0.01秒)であることなどが読み取れます。
一方で、同じ振幅3V、周波数100Hzの正弦波交流電圧を発振器で発生し、それをオシロスコープで測定すると、図2の様な画面表示になります。図1と比較すると、そっくりの波形が表示されている事が分かります。
ただし、オシロスコープの画面の場合は、図1のグラフの様に、時刻や電圧の目盛に数字を書き込んでくれている訳ではありません。代わりに、0Vの位置の表示(図2左側の"GND"の表示)があったり、縦軸(電圧軸)が1目盛りあたり1Vである事の表示(図2右上の"CH1:1V/DIV")があったり、横軸(時刻軸)が1目盛りあたり2msである事の表示(図2右側の"t:2ms/DIV")があったりするだけなので、オシロスコープの画面から電圧や時刻を読み取るには、少しの慣れが必要です。
しかし慣れてくると、図2の画面から、観察している信号が、振幅3Vで周波数100Hzの正弦波交流である事が一瞬で分かる様になります。
オシロスコープを使って理論上の電圧波形と、実際の回路の電圧波形を比較している内に、電圧波形が頭の中でイメージできる様になってきます。
また、理論上の波形と、実際の回路の波形が異なった場合には、回路の異常や、その理論の適用範囲の限界に気付くきっかけになります。
以上の様に、オシロスコープは、電子回路の特性を調べたり、異常を調べたりする道具であると同時に、電子回路の振る舞いを学ぶ際の大きな助けになる装置である事が分かります。
Arduinoを使って、自分でオシロスコープを作ろうと思った理由には、当サイトの読者の潜在的な需要に応えるためという側面と、自分自身がそのオシロスコープを使いたいと思ったからという側面の2つがあります。
最近はかなり安価にオシロスコープが手に入る様になりましたが、それでもまともな性能のオシロスコープ(例えば20MHz程度の周波数の信号をきちんと観察できる機種)を買おうとすると、何万円もします。電子回路の勉強を始めたばかりの入門者、特に学生の人たちなら、躊躇せずに購入できる金額ではないと思います。
また十分な資金があり、数万円を投資しても良いと考える人の場合でも、最初はどのオシロスコープが良いのか判断できないと思います。
一方で、オシロスコープを持っていると、先ほど説明した通り、電子回路の動作の理解がかなり進みやすいというのも事実です。オシロスコープで測定をしながら学ぶと、電気信号が単に概念上の存在ではなくなり、感覚的に把握したり、頭の中で具体的にイメージしたりする事ができる様になります。「交流」という言葉の意味が分かり始めた方なら、ぜひ使っていただきたい測定器です。
このサイトに興味を持たれている読者の場合、インターネットや書籍に載っている回路をまねして作るだけでなく、動作原理を理解したり、さらには自分で電子回路の設計をしたりできる様になりたいと思っておられる方も多いのではないでしょうか?
電子回路の勉強のためにオシロスコープを使ってみるなら、最初はそれほど高性能のオシロスコープは必要ありません。簡単に言って、高性能のオシロスコープほど高い周波数の測定ができるのですが、電子工作初心者向きの電子回路はそれほど高い周波数を扱わない事が多いですし、単に勉強をするだけなら、低い周波数で回路を動作させればいいのです。
それに、このサイトの読者の場合、高確率でArduinoを持ってらっしゃると思います。それに部品を加えてオシロスコープになるとすれば、素敵だと思いませんか?
もちろんArduinoで作ったオシロスコープは、専用機の様に高性能ではありませんが、オシロスコープの使い方を覚えたり、電子回路の基礎的な勉強をするには十分です。Arduinoのオシロスコープを使って勉強している内に、どういう回路を作る場合には、どの程度の性能のオシロスコープが必要になるのかや、オシロスコープの数ある性能の指標や機能の内、どこに注目すればいいのかが理解できる様になります。その時点でオシロスコープ専用機にステップアップすればいいのです。
そういった読者の潜在的な需要(と筆者が想像している事)に応えるために、Arduinoを使った簡易型のオシロスコープを作る事には意味があると考えました。
現時点では、比較的高価なArduino Dueを使ってオシロスコープを作っていますが、測定周波数を落とせば、より安価なArduino Unoでもオシロスコープができるはずです。これは、将来的な課題としています。
筆者は写真1で紹介したオシロスコープをすでに持っています。それにも関わらず、自分で設計した小型のオシロスコープが欲しいのです。
アナログオシロスコープからデジタルオシロスコープに移行して、奥行きが深くて重いブラウン管を使わなくてもオシロスコープが作れるようになりました。そのため、最近のオシロスコープは、20~30年前のオシロスコープよりも、かなり薄型になっています。
注:幅や高さに関しては、それらを小さくするには、画面を小さくしたり、ボタンやつまみを減らすなどの工夫が必要で、操作性が犠牲になります。そのため、幅や高さは、昔のアナログオシロスコープと比較しても、現在のデジタルオシロスコープがそれほどに小さくなった訳ではありません。とはいえ、一部では操作性と性能を犠牲にして小型化したデジタルオシロスコープも販売されています。それらの小型オシロスコープは、このページで紹介しているオシロスコープ試作機と、似たコンセプトのオシロスコープだといえます。
薄型になったとはいえ、狭い机で、測定したい電子回路とオシロスコープを両方を置いて使うのは、つらい事があります。
そのため図1に示す様に、オシロスコープを机から下ろし、足元に置いて使う事も多いのですが、プローブ(写真2参照)の重量に引っ張られて、測定したい回路が机から落下する事があります。
オシロスコープはたいてい、この図で示した通り、画面が上になる様に床に置いて使う事も想定して作られています。オシロスコープの背面には、背面を床に付けても通気口などをふさがない様に、大型の足が付いている事が多いです。
オシロスコープをこの図の様に立てて使う場合は、デジタルオシロスコープよりも、奥行きのあるアナログオシロスコープの方が、オシロスコープの画面の高さと机の作業面の高さに差が少ないため、使いやすかったと記憶しています。
この写真に写っているのは、写真1に示したGDS-1062というオシロスコープに付属しているプローブです。
プローブとは、測定したい回路に取り付ける2種類の電極、およびそれらの電極をオシロスコープに接続するための同軸ケーブルからなる付属部品の事です。
ただしこの写真では、同軸ケーブルの一部が左側に写っているのみです。実際の同軸ケーブルは1.5m程度の長さがあります。
写真右上のワニ口クリップは測定したい回路のGNDに接続します。またプローブ先端のとがった部分には、かぎ状の電極があり、それを電圧を測定したい部分に引っ掛けます。
回路がプローブに引っ張られて落下しない様にするため、写真3に示す様に、プローブを机にガムテープなどで貼りつけて測定をする事もあるのですが、いちいちガムテープを張るのも面倒ですし、このサイトで写真を紹介する時に不格好です。
オシロスコープのプローブだけではなく、安定化電源から電源線を引っ張ってくるのも煩わしいです。最近は、配線が短くて済む電池を電源にして実験を行う事も多くなりました。
簡単な実験をする時にでも、ブレッドボードに電源やオシロスコープをつなぐと、長い配線をたくさん引っ張る必要があります。実験をしながらパソコンで記事の原稿を書くと、机の面積が不足してしまいます。実験を始めると、いちいちキーボードをのけなければならないですし、記事を書き始めると、回路をのけなければなりません。
そこで図4の様に、電源回路と、オシロスコープと、できればファンクションジェネレータを内蔵していて、なおかつ、パソコンにつながずにスタンドアローンで動作する小型のオシロスコープが、ブレッドボードに直接挿して使えれば、便利だと思うのです。
ブレッドボード上の短い配線なら、同軸ケーブルを使った本格的なプローブは不要で、ブレッドボード用のジャンパ線を使えます。元々GNDをオシロスコープと被測定回路が共有していますので、GNDの配線をする必要がありません。
さらに、自分自身で設計したオシロスコープなら、その仕組みが良くわかっていますので、必要に応じて機能を追加していく事も可能です。
いきなり図4の様なオシロスコープを作るのはハードルが高いので、プロトタイピングにArduino Dueを使おうと思いました。Arduino Dueなら1Mspsの高速A/D変換器を内蔵しており、オシロスコープを作った時に、そこそこの性能が出そうです。またD/A変換器も内蔵しており、ファンクションジェネレータも同時に実現できる可能性があります。
そこで今回作ったのが、Arduino Dueを使ったオシロスコープの試作回路という訳です。
現状では写真4に示す様に、理想に比べればかなり大きなオシロスコープですが、専用の基板を起こして、全部品を表面実装すれば、かなり小型化できるはずです。
次のページでは、今回試作したオシロスコープのハードウェアについて解説します。
商品名 | 128×64モノクログラフィックLCDシールド | |
税抜き小売価格 | 3600円 | |
販売店 | スイッチサイエンス | |
サポートページ | 128×64モノクログラフィックLCDシールドサポートページ |