google-site-verification: google3bd66dd162ef54c7.html
fc2ブログ

私のOLEDオシロを実際に作った人のYouTubeの動画を調べてみた

◆まえがき
0.96インチのOLEDとArduinoを使った小さなオシロを作り、回路とプログラムを公開していて、このブログではOLEDオシロスコープのカテゴリーに情報をまとめています。

その概要はYouTubeの動画でも公開しているのですが、それを見た方が同じ物を作って楽しまれているようで、その様子をYouTubeに投稿されています。その動画を見ると、回路とプログラムは私の作った物と同じようですが、実装はそれぞれ工夫されていてなかなか面白いです。

ということで現時点でどんな物がYouTubeに公開されているか出来る範囲で調べてみました。

◆私の投稿
先に私の投稿をまとめておきます。
画像はYouTubeのサムネイル画面を切り取ったものです。また、出典を明らかにするために 動画のURLを画像の下にリンクの状態で記載しておきました。また公開日と現時点での動画の閲覧数も記載しています。(以下共通)

1) Oscilloscope by Arduino
20211202RunOnUNO
https://youtu.be/SwaZkHX7DKU
・2019/02/13公開、15,120 views

これが私がOLEDオシロを最初にYouTubeに公開した動画です。Arduino UNOとブレッドボードを使ったので、ジャンパーワイヤをたくさん使った実装になっています。基本的な機能はこの時点で完成していました。この頃の動画は日本語の字幕になっています。

2) Pen style oscilloscope made of Arduino
penStyle
https://youtu.be/7QI9CRNEi2w
・2019/02/28公開、2,802 views

小さな画面を生かし、ペン型ケースに入れた物です。CPUはATmega328Pの単独動作で単四電池2本を昇圧して動かしています。同じ物を作るのは難易度が高いためでしょうか、この動画の閲覧数はあまり多くありません。
この回から海外の閲覧者を意識して字幕を英語にしました。

3) Arduino oscilloscope build on breadboard
buildOnbreadBoard
https://youtu.be/jYrJMimdrWY
・2020/04/24公開、12,566 views

Arduino NANOを使いブレッドボード上に全回路を収容したバージョンなので、コンパクトで作り易くなったと思います。要望が多かった周波数とデューティの測定機能を追加しています。

4) Arduino oscilloscope. AC couple mode added
AcCoupleModeAdded
https://youtu.be/HWAHdTgJmNM
・2020/07/31公開、2,078 views

要望が多かった交流波形の測定機能を追加したバージョンです。部品数が増えるので個人的にはあまり気に入っていません。

◆同じ設計と思われる作品
以下に私の作品を参考に製作したと思われる動画を登録日の順に紹介します。なお参考にしたかどうかの判断は、主に画面のデザインで行ったので、たまたま一致しているだけかも知れません。でもおそらく、スタート画面をちょっと変えただけで私の回路とプログラムをそのまま使っていると思います。

1) How to make your own oscilloscope at home
CiferTech
https://youtu.be/uk_1730W200 ・Auther:CiferTech
・2019/04/23公開、13,341 views
この記事を書くまで気付かなかったのですが、この動画が最初でした。古いだけあって参照数も多いです。なお動画の説明文で私のサイトをreferenceしたことを明記して頂いています。

2) DIY Mini Oscilloscope with Oled Screen - PART 1
HackTube
https://youtu.be/-3RHMWrfA58 ・Auther: Hacktuber
・2019/10/11公開、16,489 views
大きなレンズを付けて画面を大きく見せる工夫や、ベニヤ板で作ったレトロなオシロ風の外観が面白いです。Part2で回路図とコードを公開予定と書いてありますがそのままになってます。

3) How to make oscilloscope 0.96"OLED Display Step by Step
20211202ForbideenBit.jpg
https://youtu.be/1ElVA__yQn0 ・Auther:Forbidden Bit
・2020/03/07公開、11,644 views
Filitzingで書いた実体配線図があったりして判り易く解説されています。こういう動画作成に慣れた方が作られているのだと思います。

4) Membuat Mini Arduino Oscilloscope | Fareed Clarity
FareedClarity
https://youtu.be/rQQPdXSQ0yA ・Auther;Fareed Clarity
・2020/10/14公開、1,389 views
両面のプリント基板化しています。中身はACモードがあるので最新版の状態のようです。余計なお世話なんでしょうが、力作なのに閲覧数は少なくて気の毒な気が。

5) How to Make a Mini Oscilloscope Using Arduino & OLED Display || ZerOne Tech
ZeroOneTech
https://youtu.be/JjpK95kDF7I ・Auther:ZerOne Tech
・2020/11/25公開、821 views
詳しい解説入りの動画でケース作りまで行っています。説明文読むと何かのWebコンテンツの説明用の動画みたいです。

6) How To Make Mini Oscilloscope
EasyTech
https://youtu.be/9Xs5Y_byyvk ・auther:EASY TECH
・2020/12/03公開、22,301 views
ケースに入れてちゃんとした完成形に作り上げています。四隅に操作スイッチを置いたレイアウトが面白いです。

7) Mini oscilloscope using Arduino and OLED LCD screen
Nick
https://youtu.be/OTKGVhi0lNM ・Auther:nick sbilliris
・2021/03/11公開、216 views
かなり大雑把な作り、動画を見るとあまり道具も無い中で頑張っています。中学生の頃の自分を見ているような気がします。

8) How to Make Oscilloscope | Using Arduino
Makeidea
https://youtu.be/R-A1E96cBv4 ・Auter:MakeIdea
・2021/04/23公開、4,593 views
OLEDの幅が全体の幅になっていて、ものすごくコンパクトな作りになっています。片面基板で仕上げていて完成度は高く、この実装は好きです。ACモードなんて無くても良いんです。

9) Oscilloscope DIY 4 in 1 | How To Make Arduino Oled Display Oscilloscope | Make Cheap Oscilloscope
CreativeInv
https://youtu.be/exiWoeLm4Wc ・Auther:Creative Inventor
・2021/07/03公開、7,819 views
なかなか綺麗にまとめられています。

10) How to Make a Usable Oscilloscope Within 500-Rupees
EtDiscover
https://youtu.be/Bk_njq5iIks ・Auther:Et Discover
・2021/07/08公開、12,102 views
ケースが格好良くてデザインが最高です。このデザインにするためにコイン電池で動かすという割り切りが凄いです。こういうセンス、私には無いのであこがれちゃいます。
あまりにも格好いいので、この記事のアイキャッチ画像にはこれを使わせてもらいます。

11) DIY Arduino Nano Portable Oscilloscope
HomeMadePrj
https://youtu.be/ASWjXUUgHrk
・Auther:HomeMade Projects
・2021/08/14公開、1,447 views
下にもう一枚基板があって、そこにリチウムイオン電池が実装されているので外部電源無しで動くようになっています。これくらいのサイズが作り易いと思います。両面ノンスル基板を起こしています。

12) how to make mini oscilloscope, using Arduino nano ,dfrobot
InventorKR
https://youtu.be/v6sXNLbN14I ・Auther:inventor KR
・2021/09/01公開、139,833 views
ユニバーサル基板で組み立てています。3ケ月前公開された動画なのに閲覧数が凄いことになっています。ものづくり系の情報サイトと連携して作られた動画のようです。

◆感想
ほとんどの動画は、回路図もプログラムも動画の作者が自分で開発したような感じに書かれているので、どうだかなーと思います。まあこちらは、条件無しで情報をインターネットに放流しているので仕方ないんでしょう。ということで、どうこう言うつもりはありません。

プログラムの日本語コメントが文字化けするので修正した。あるいはスタートアップ画面を修正した、回路図はちょっと修正して書き直している、とか言い分はあるのでしょうね。

感度調整に半固定抵抗を使っている事例が多いです。これは最初にどこかのサイトでやった回路図が伝染して行ったのではないかと思います。ただ半固定抵抗にした場所が間違っていて、R3を調整しているので電圧の高いレンジでしか調整が効かないようになっているのが残念です。

私の設計思想は半固定抵抗は使わず、そのような調整はソフトの定数を変えて行うことを想定しています。そのような調整用のマジックナンバーは #define で定義して判り易くしておいたつもりなのですが、ソフトになじみのない人にはとっつき難かったのかも知れません。

◆まとめ
面白い物が出来たのでYouTubeにも投稿したのですが、思いがけず多くの方に作ってもらうことが出来ていて嬉しいです。YouTubeに動画を投稿されない方も多いでしょうから、実際にはこの何倍もの方が作られたのでは無いかと思います。

動画の作者はインドや中東た東欧の方が多い感じで、日本人がいないのがちょっと残念です。まあ、ブログのコメントなどでこれを作ったよう、と言う連絡はいくつか頂いているので日本人がゼロでは無いのですが、やはり全体から見ると少ない感じがします。

このオシロを作るのは結構ハングリー精神が必要だと思うのですが、そういう気持ちがもはや日本人には薄れてしまっているのかも知れません。ただ、日本人は人口比で1.26億/78億人しかいないので、そう考えれば投稿者が少ないのは当たり前なのかも知れません。

Arduino で作るオシロ、ACモードを追加(実装編)

◆まえがき
前の記事の回路、ソフト編で話はほぼ終わっているのですが、実装関係で説明不足なところがあるのでこの記事で解説しておきます。

◆実装全般
・全体
arduino オシロ V300

・背面
背面
裏側のシールドへの配線がありますが、そこは後で解説します。
OLEDは接続用のコネクタを使って接続することで、面積を節約しています。

・OLED接続用コネクタ
I2C OLED接続アダプタ
二段積みになっています。上段は足長のピンソケットで、下段はブレッドボード上の NANO への接続用に作っておいた接続アダプタです。なおこのアダプタは、前の記事に掲載している YouTube の動画に使い方の手順が出て来ます。

◆裏側のシールド
ブレッドボードの裏側のシールド
感度を上げるとノイズが目立ったので、ブレッドボードの裏面に銅箔テープでシールドを作りました。このシールドは回路のGNDに接続しています。

シールドの効果を比較したのが以下の写真です。

・シールド無し
シールド無し
わさわさとノイズが乗っています。

・シールド有り
シールドあり
ノイズが減っています。ただゼロには出来ませんでした。

なお、ノイズの原因はUSB電源からの誘導のようです。USBの電源アダプタはAC電源からは直流的には絶縁されていますが、容量的な結合があるので、コモンモードで大きなノイズが乗っていて、オシロの回路全体の電位が揺れてしまうのがノイズの発生原因のようです。

◆応答速度
レスポンス
今回50μsレンジを作ったので、オシロとしての応答速度が見えてきました。この写真は20kHzの矩形波を観察したものですが、明らかに一次の応答遅れが発生しています。最高サンプリング周期は8μですが、ほぼそれに相当するレスポンスの遅れが発生しているようです。

◆入力コンデンサ
AC入力コンデンサ
回路図では C2 0.1μF(1μF)と書いてあって特に種類は指定はしていません。ただ、セラコンを使うと僅かですが変な問題(誘電体吸収、DCバイアスに伴う容量低下、機械振動に伴うピエゾ電圧の発生)を起こす可能性があるので、1μFのフィルムコンデンサを使いました。

◆OLED
プログラムは1.3インチOLED(SH1106)と0.96インチOLED(SD1306)を選択可能になっています。実はSH1106用のプログラムを書き込んだ状態でSD1306を挿すと、以下の写真のように画面が2画素右にずれ、左端には右からあふれた2画素が表示される状態になります。
SH1106 と SD1306
この状態でも、とりあえずオシロとしての動作確認は可能です。OLEDを交換した時にどんな具合に表示されるか確認したい場合は、この手を使うと便利だと思います。なお逆、つまりSSD1306用のプログラムでSH1106に表示させた場合は、画面がめちゃめちゃになって、意味のある表示は出ません。

◆まとめ
以上でArduino NANO (UNO) を使ってオシロスコープを作る一連の記事はおしまいになると思います。

今後はESP32にプログラムを移植しFFTなどもやってみたいと思っていますが、どうなることやらです。結果がまとまったら、また記事で紹介したいと思います。よろしければ気長にお待ちください。


【2021/02/24追記】

siliconvalley4066さんが、スイープ速度アップ(20usレンジ追加)とFFT機能を追加したバージョンを作られました。詳しくは下記リンク参照下さ。

siliconvalley4066 : Arduinoでオシロスコープ

Arduinoで作るオシロ、ACモードを追加(回路、ソフト解説)

◆まえがき
前回の記事で回路の検討が終わったので、今回はいよいよソフトを修正して完成形に持っていきます。

まずは全体写真から、

▼ArduinoとOLEDを使ったオシロ
全体写真と各部説明
ブレッドボードで動かすスタイルは変わりません。表示は1.3インチのモノクロOLED(SH1106)です。 
▼回路図 (図をクリックで別窓に拡大表示)
2022/07/06版



ACモード付Arduinoオシロの回路図V04

 
old virsion below 

 
OLEDオシロの回路図(ACレンジ追加)


ブレッドボードの実装状態に合わせて書き直しましたが、中身は以前の記事とほとんど同じです。

◆プログラム (program code can be downloaded from following link)
20200728_OLEDoscilloScopeSh1106_V300E(JIS).txt
20200728_OLEDoscilloScopeSh1106_V300E(utf8)

海外の読者用にutf8 エンコードのファイルも置いておきます。どちらか使い易い方をお使いください。なお、ファイルの拡張子は.ino に要変更。(both the same except character code)

コンパイルするとArduino IDE から赤字で、
スケッチが使用できるメモリが少なくなっています。動作が不安定になる可能性があります。」というワーニングが出ますが、とりあえず大丈夫です。

プログラムはOLEDのSH1106用に書かれていますが、コメントアウトを変更することで、SD1306でも動きます(動作確認済)。SH1306の状態ではコンパイラからのワーニングは出ませんが、メモリーがギリギリである状況は変わりません。

◆機能説明
1) DCモード
DCモード
これは従来からあったDCモードの画面で、写真のようにマイナス側の波形を表示することが出来ませんでした。なお、画面からモードが判るようにするために、左上に「DC」という表示を追加しています。

DCモードでゼロボルトの位置は波形表示エリアの下端になります。(緑色矢印)

ACモード
ACモード
これが今回追加した画面で、スライドスイッチをACモードに切り替えるとこの画面に切り替わります。垂直軸の中心がゼロになり正負の波形が見えるようになります。

左上の表示が「AC」に変わっています。ACモードでは電圧の実効値を表示しているため、画面右上の電圧表示の前に rm と表示しています (rmsの略)。

2) Auto50V、5Vを廃止
これまでは、50Vレンジの外側に自動スケール機能がある Auto50Vと Auto5Vレンジがありました。しかし、AC測定でこの機能を実装するのは面倒だったこと。あと、レンジを切り替えていくと突然波形が大きくなって直感的な操作の妨げになっていたこと。これらの問題を回避するため、Autoスケール機能は廃止しました。まあ、ちゃんと直すのが面倒になったということです。

3) ワンタッチゼロ調整機能を追加
ACレンジでは画面の中央がゼロボルトになりますが、いろいろな理由(特に電源電圧の違い)で波形の中心がゼロから外れている場合があります。これを簡単に補正する機能を用意しました。つまりワンタッチのゼロ調機能です。

・波形のオフセットがある状態
オフセット
入力をGNDにショートさせているのにも関わらず波形がぴったりゼロになっていません。
こういう時は、「HOLD」を押して波形の表示を中断し、その状態から「SELECT」ボタンを押すと自動でゼロ調が行われます。

オフセット補正
zero(SELECTボタン)を押すとゼロ調が行われ波形がぴったりゼロの位置に合うようになります。ゼロ調実行後は波形表示モードに戻るので、オセット調整の結果をすぐに確認することが出来ます。なお、内部処理の都合でゼロ調は5V以下と5V以上の二つに別れています。つまりどのレンジでもオフセットが合っている状態にするには感度を変えて2回ゼロ調を行う必要があります。

なお、ゼロ調の結果はEEPROMに保存されるのので、次回電源を入れた時は最後に行った調整が反映されます。

4) 水平レンジの拡大
50usレンジ
これまでは水平軸の最高速度は200μsでしたが、今回のアップデートで100μs と50μs レンジを追加しました。これにより、従来は高い周波数の波形が見づらかったのを改善しています。写真は20khzの波形を表示しています。なお、追加した100と50μsレンジは表示する時にi横軸を拡大しているだけなので、情報量としては200μsのままです。また表示のジッタが多くなります。アナログオシロには横軸を拡大するMAG10Xボタンがありましたが、あれと同じ感じです。

5) DVMにAC測定機能を追加
ACレンジを追加したので、デジタル電圧計機能にもAC測定モードを追加しました。

・DC レンジ
デジボルモード(DC)
これは従来通り。

・AC レンジ
デジボルモード(AC)
入力の切り替えスイッチをAC にするとこの画面になります。内容は写真のように、交流電圧の実効値(rms) とP-P電圧を表示します。

なお、DVMモードに入るには下記の操作を行います。DC/ACは入力モードスイッチで切り替え
リセット時にUPボタンを押しっぱなし  : 5Vレンジ
リセット時にDOWNボタンを押しっぱなし:50Vレンジ

リセット時にSELECTボタンを押しっぱなしにするとバッテリー電圧測定モードが起動します。これはペン型オシロ用の機能で、ソフトの互換性維持のために残しているものなので気にしないでください。

◆仕様
入力モード:DC+, AC (DCの負電圧は観察不能)
垂直感度:0.2 - 50V (1-2-5 step)
水平感度:50us - 200ms (1-2-5 step)
サンプリング周期:8us max (125kHz)
トリガ  :50% p-p 自動、スロープ指定可能
その他:波形周波数表示、波形デューティ比表示、ゼロオフセットキャンセル機能、設定状態リジューム機能

◆動画


◆まとめ
Arduino UNO や NANOで出来るオシロとしては限界に近い物が出来たと思います。今回のバージョンではAC測定が可能になったので、トランスの出力波形やオーディオアンプの波形など観察可能範囲が広がりました。

DC電圧のマイナス側の測定が出来れば万全なのですが、そうするためには回路が複雑になり過ぎます。3000円くらい出してDSO-SHELLあたりを買った方が良いと思います。

この回路は写真のように小さなブレッドボード(400穴)に実装しています。これを作るに当たっては多少ノウハウ的な話があります。ということで、そのあたりの話は実装編でもう一度解説したいと思います。

一連のオシロ作りの話は、以下のカテゴリにまとめています。興味のある方はご覧ください。
 ペン型オシロスコープのカテゴリ

カレンダー
05 | 2023/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。
記事の内容のご利用は読者の自己責任でお願いします。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード