見出し画像

Arduino based オシロスコープ

300円に設定していますが、最後まで読めます。
よかったら投げ銭の感覚でご購入いただければもっと頑張ってこういうコンテンツを作ります!
Arduinoをベースとしたシンプルでコンパクトなオシロスコープを作成しました。その使い勝手がどれほど便利かについてご興味があるかもしれません。本日のnoteでは、その作成過程を紹介し、このオシロスコープの特徴を解説していきます。
お忙しい人はまずこちらの動画をご覧ください!


始まり


ネット上やYouTubeで検索すると、Arduinoを使った簡単なオシロスコープの作り方がいくつか見つかります。その中でも、ラジオベンチさんのブログで紹介されたものが最もシンプルですhttp://radiopench.blog96.fc2.com/blog-entry-1027.html

http://radiopench.blog96.fc2.com/blog-entry-893.html



ラジオベンチさんのブログを参考にして作られたYouTube動画も多数存在します。

私の動画もその一つですが、ただブログの回路図に沿って線をつなげるだけの動画だとちょっと退屈だと思い、私なりに工夫してみました。他の動画との一番の違いは、今回専用のPCBを設計して作成したことです!

ArduinoオシロスコープのPCBデザイン


Arduino UNOとArduino Nano

せっかくなので、既成のArduino UNOやArduino Nanoなどの開発ボードを使わずに、「生」のATMEGA328を使うことにしました。

ATMEGA328 U

Arduinoの開発ボードを1、2年使った経験から、ある程度慣れてきて、動作原理も理解できるようになると、自分で回路を組んでPCBを作ってみたくなりますよね。
そのような思いから、Arduino FMラジオを作成し、その動画もYouTubeにアップロードしました。動画をまだご覧になっていない方は、ぜひこちらをご覧ください。


動画内で初めて、Arduinoの開発ボードではなく、ATMEGA328を使用した独自の回路を組み、PCBをデザインしました。RDA5807Mモジュールを使用したFMラジオが期待通りに動作し、非常に良い成功体験となりました。最小限のATMEGA328回路構成を理解したため、今回のプロジェクトでも前回の回路を流用して、Arduino側の部分を使うことにしました。

そのため、今回のPCBの左半分は、前回のPCBの左半部とよく似ています。

左半分は構成が同じ

なお、この二枚のPCBはともにJLCPCBさんによって製作されたもので、両方とも非常に綺麗に仕上がっており、私たちは大変満足しています。また、JLCPCBさんは本プロジェクトのスポンサーとしてご支援いただいたこともあり、心から感謝しております。

回路


左側に改良を加えた箇所があります。具体的には、水晶振動子の下を通っていたルートを変更しました。

水晶振動子の下にルートが通らないようにする


この回路では水晶振動子の下に通るルートがあっても、問題なく動作します。しかし、より高い周波数を扱う回路では、このルートによりノイズが混入する可能性があるため、慣習的には回避することが望ましいです。

また、RGBのLEDを1つ追加し、必要に応じてユーザーに光でフィードバックすることができます。

RGB LED

オシロスコープの機能とは直接関係はありませんが、今回の改良で外部電源の使用が可能になりました。電圧レギュレーターLM2596の採用により、外部電源を4.5Vから40Vまで使用できますが、実際には約9V程度で使用しています。

LM2596


LM2596は最大で3Aの負荷を駆動できますが、今回のプロジェクトではその上限を超えることはなく、十分な余裕があります。その他の部分については、ラジオベンチさんの回路を参考にして作成しました。

PCBデザイン

回路が完成した後は、次はPCBのデザインに取り掛かります。

PCPCBデザイン

前回のプロジェクトで得た経験を生かして、今回は特に難しい箇所はありませんでした。ただ、オシロスコープのプローブの接続部分については、今回はAudio jackを採用しました。これにより、外部のワニ口クリップワイヤーを接続することができます。

また、前回同様に、あえてなるべくスルーホール部品を選択しました。表面実装部品を使えばよりコンパクトに仕上がりますが、スルーホール部品はレトロな雰囲気を出すことができ、愛着もわきます。また、はんだ付けがしやすいのも魅力です。

PCBの発注

今回もJLCPCBを使いました!いつも早いスピードで生産、配達していただいてとても満足しています。
品質もいつものハイクオリティです。

オシロスコープ専用のPCB

ハンダつけ

PCBも無事に到着したため、半田付けを行いました。私はいつもこのプロセスを楽しみにしています。半田付けの時間は癒しの時間ですね。ほとんどの部品はスルーホールタイプで、いくつかは表面実装タイプですが、どの部品も大きめなので、はんだ付けは特に難しくありませんでした。

完成後のテスト

はんだ付けが完了して、まず最初にやらなければいけないのは、生のATMEGA328にbootloaderを焼くことです。
問題なく、bootloaderを焼いたら次は、ATMEGA328を自作の基板に移します。
そのあとは、自作基板を「Arduino」ボードのように使えます。Arduino IDEから、ラジオペンチさんのブログで公開しているプログラムをアップロードします。
そのプログラムのリンクも動画の説明欄に貼っておきます。そちらをご覧ください!
問題なく、プログラムが動作したようですね!
最高です!

オシロスコープとしてちゃんと動作するかどうかは、信号源が必要ですね。正弦波を見たい場合は、定番の信号源として正弦波発生器が必要です。

実は手元にいくつかの波形発生器があるが、今回はそれを使用します。この信号発生器は、9〜12ボルトの電源が必要です。9Vで電源を供給しましょう。

その後、信号発生器の出力とオシロスコープのプローブを接続すると、波形が表示されます。問題なく波形が確認できました!自作のオシロスコープが正常に動作することが確認できたので、今回のプロジェクトは大成功です。自作のPCBにも問題がなく、素晴らしい結果になりました!

次は、このオシロスコープがどこまで波形を測定できるかを見てみましょう。プログラムの作者が言ったように「最高サンプリング周期が8μsなので10kHz程度の波形までしか観察できない」というところですが、私が実際に試してみたところ、30kHz程度までは測定可能でした。ただし、精度は落ちる可能性があります。

最後に

今回は自分のオリジナル回路とソフトエアではないですが、回路を改造して、自分でPCBをデザインするプロセスがとても楽しかったです、そしてたくさんの勉強にもなりました。

私は大きい目なオシロスコープを持っていますが、こうやって自分で計測機を作れるのがとても勉強になりますね。

この知識と経験を生かして、今後はRP2040を使ってより高速で正確なオシロスコープを作ることができるかもしれません。RP2040は、最大で133 MHzのクロック速度で動作し、最大で12ビットの分解能を持つADCを搭載しています。これらの機能を活用することで、より高速な波形表示やより高精度な波形測定が可能になります。
また、今回は小さいなディスプレーで表示エリアが限られていますが、より多くの情報を表示したり、より正確な波形を描画するためにはより大きい液晶ディスプレーを使ったほうが望ましいですね。これも今後の課題の一つですね。

ではまた次回のnoteで会いましょう!

ここから先は

0字

¥ 300

株式会社虹賢舎 CEO 著書:https://amzn.to/39KwlE4 技術ブログ:https://kokensha.xyz 機械学習 深層学習 Python /JS IoT Raspberry Pi ロボット TOEIC950 https://gosen.world