● 実験テーマ50
「自作オシロ_V5aの実験」
(自作オシロ_V5に、X-Yモードを追加しました。バージョン:V5aとしました。これで、リサージュ図形を表示できるようになりました。)
■ 2014.5.3
・まずは、X-Yモード(リサージュ図形表示)実験を行おうと思ったきっかけについて書いてみたい。
この日に、私のHPの、問合せメールフォーム(「Nobosan_HPに関する連絡の件」)
経由で、JA1WBYさんから、以下の内容の連絡が届いた。
オシロ_V5を見てのコメントで、
その中に、「XY機能があったらいいな〜」という、つぶやきが書かれていた。
それまで、自分では、XY機能追加など眼中になかったが、このつぶやきに、感化
され、実現できるか判らないが、とにかく実験を始めてみようと思い立ちました。
実験ハードには、自作2現象オシロ初号機を使い、実験ソフトを書いて進めようと思います。
まあ、その前に、X-Y動作の原理を、WEB検索で調べないといけないかな・・・
■ 2014.5.9
・X-Y動作(リサージュ図形表示)の原理を、WEB検索で、調べ始めた。
あるサイトでは、「直交する2つの単振動を合成したものを、リサージュ曲線という」(実に教科書的だが・・)
と書かれていた。
この合成という意味がよく理解できなかったが、「木村の数学小ネタ」というサイトに貼ってあった
「Lissajous curve」という、pdfファイルを見て、目からうろこという感じがした!!
つまり、振動軸が互いに垂直な
x= Acos(ω1t + α)
y= Bsin(ω2t + β)
を合成すると、(x, y)を座標として、xy軸にプロットした曲線となる。
ということである。
これを、自作2現象オシロ初号機で実験するとしたら、今のX方向の座標線(目盛)を細かくする必要
がある。
もともと、X-Yモード機能は想定してないので、X軸は時間軸となってるが、X-Yモードの時は
X軸も、電圧軸(サイトで言う振動軸)になる。
よって、従来のY軸と同じ、電圧軸分割(1目盛16dot)が必要になる。
何だか、割と簡単に、XYプロットして、リサージュ図形を表示できそうな気がしてきた。
まあ、そんなにあまくはないか・・・
とりあえず、GLCDライブラリの、lcd_Pixel関数をつかって描画してみることにした。
■ 2014.5.10
・リサージュ図形表示実験を、よく解らないままに実施。
まず、座標表示を、X-Yモード用に変更。
最初はよく解らなかったので、通常モード(DUALモード)での電圧軸は、Yなので、1CH入力を
Y入力にし、2CH入力を、X入力に対応させて、X, Yプロットして、リサージュ図形をドット描画
するように、実験ソフトを考えた。(プロジェクト名:Scope_XY_Lissajous_TEST)
早速、ソフトを記述し、ターゲットにHEXを書込み動作チェックを行った。
以下に、その結果を示す。
・何とか、リサージュ図形を表示できたものの、いくつかの問題点がある。
<問題点>
@ X電圧軸のZEROアジャスト範囲が、MAX中央までしか
いかず、画面中央にリサージュを描くこと
ができない。 (画面左半分にしか描けない)
ソフトで座標補正をしたりしてみましたが上手く行かなかった。
終段アンプのハードを変更しないとダメなのかな?
A オシロ入力をオープンにした状態では、以下のように座標表示がバラける。
B 最初から解っていたが、やはりドット表示では、楕円表示のような時に、散布図のようにドット間
が空いてしまって、ちょっと気になる。
これは、後で、ライン表示にするなど修正したいと考えている。
とりあえず、このまま実験は進める。
■ 2014.5.11
・昨日確認した問題点の内、A オシロ入力をオープンにした状態で、座標表示がバラける症状
が、どんなきっかけで起こるか探ることにした。
どうも、バラケル時は、1CHに対して、2CHの同期が取れない時であることが判った。
この時、細かくTRIGポテンショを回していくと、同期が取れた時は、バラケが止まり正常な画面
になる。
考えてみると、今迄X軸を時間軸として使っていた場合(通常モード)では、AUTOトリガなので
トリガ成立の場合は、成立したポイントからサンプルデータを取り始めるが、トリガ不成立の場合
は、とにかく最初のポイントから取り始める。
それでも、0.5秒毎の表示更新で、トリガ成立、不成立に関わらず、X軸:t,
Y軸:Vで波形表示
されていた。
ただ今回のX-Yモードでは、X軸が電圧軸になる為、トリガ不成立の時に、そのサンプルを
有効にしてしまうと、位相差を見る座標としては、デタラメな座標になる。
つまりは、X-Yモードの時は、NORMALトリガにしなければいけないはず。
なので、トリガ成立時のみデータを取得して表示を繰返せばよいはず。
※ この考え通りソフトを直したら、バラケル問題は解決し、さらにセンター表示にできない
問題も、最初考えた座標変換で基本的に問題ないことが判り解決した。
(そもそも、同期がずれると、表示がバラケテいたので、正しく動作確認できていなかっただけだ)
■ 2014.5.12
・ここで気になっている点を、直すことにした。
まずは、入力CHと、X, Y入力の対応である。
今は、オシロの、CH1が、Y入力、CH2が、X入力となっているが、これでは対応付が素直でなく
分かりにくいので、CH1が、X入力、CH2が、Y入力に、ソフトを変更した。
こうすると、CH1:X入力に信号を入力して、CH2:Y入力をオープン又は、ZERO入力の場合
現在の座標表示では、中央のX軸が実線になっているので、CH1:X入力のZEROが取れている
場合、中央のX軸ラインと重なって、X信号の入力レベルが判らなくなる。
なので、中央のX軸も、ドット表示にした方がベターと考え、このソフト修正も行った。
ここまでのソフト修正をした後の、サンプルを以下に示します。
■ 2014.5.13
・もう一点気になっていた、リサージュ図形の描画方法であるが、ドット表示から
ライン表示に変更した。
GLCDライブラリの、lcd_Line関数を使えばよい。
以下に、ライン表示サンプルを示す。
・これで、自作2現象オシロ初号機を使っての、「Scope_XY_Lissajous_TEST」プロジェクト
は、ほぼ完了したので、自作オシロ_V5にも、X-Yモードを追加してみることにした。
プロジェクト名は、「Scope_V5a」とした。
ハード的には、手持ちの、小型スライドSW(秋月)を、ライトアングル実装し、X-Yモード
と、DUALモードを切替えるようにしたい。
PIC24HJ64GP206の、RG9(CN11)ポートが空いているので、そこに接続すればよい。
■ 2014.5.14
・プログラムの方は、Scope_V5.cに、追加切替SWのリードルーチンを追加して、
切替状態をチェックし、従来のDUALモードか、X-Yモード処理に分岐するだけでよい。
尚、X-Yモードで、X軸中央ラインを実線から、ドット表示に変更したのに伴い、
DUALモードも、同様に変更しました。
詳細は、最後に添付した、ソースファイルを参照してください。
実験機で十分チェックしたので、本番は問題なく行きました。
サンプルは、このページトップの、見出し写真を参照してください。
<最終回路図>
・こちらから、どうぞ→ 「自作オシロ_V5a(1/2)」 (デジタル部)
※ アナログ部の回路は、「自作オシロ_V5(2/2)」と同じです。
<最終ソース>
・こちらから、どうぞ→ Scope_V5a.c