google-site-verification: google3bd66dd162ef54c7.html

Arduinoで作るパルスジェネレーターの改良(ソフト入れ替え)

 前回の記事でvabenecosi さんが作られた高精度版のパルスジェネレーターのソフトの動作確認が完了しましたが、今回はこれを以前私が作ったハードに組み込みます。

 まずは回路図から、

▼高精度版パルスジェネレーターの回路図(クリックで別窓に拡大)
Arduinoで作ったパルスジェネレーターの回路図
 これは、vabenecosi さんが 簡易パルスジェネレータの製作(ハード編) で公開されている修正内容を私の回路図に反映させたものです。(水魚堂さんのBsch3V用のファイルも置いておきます。回路図(bsch3v用ファイル)

【変更点】
 1) Timer1を使うために、出力ピンとロータリーエンコーダーのピンアサインを変更
 2) 周波数調整用にTC1追加、C3容量変更(22→10pF)
 3) R6、C7追加

▼基板
基板
 トリマコンデンサの調整ネジがGND側になるように取り付けます。

▼配線面
配線面
 青色の線が今回修正した部分です。

▼基板を本体へ取り付け
取付完了
 ファームはv4r7を入れました。

▼周波数調整穴
周波数調整穴
 ケースの底に穴を開けてトリマコンデンサが調整できるようにしました。freq.ADJ.と書いておくと、なんだかかっこいいです。

 なお、トリマの調整範囲を調べると、パルス幅100μsに設定した状態で下記の結果でした。
 TC1最大 : 100.0008μs ( +8ppm)
 TC1最小 : 99.9898μs ( -102ppm)
 調整可能な範囲がマイナス気味なので、C3の容量をもう少し大きくしておいた方が良かったかも知れません。なおこの結果は私が使った部品と配線方法に強く依存しているはずなので、参考程度にお考え下さい。また、前の記事で「あちゃんでいい」のを使って大きな誤差が出ていましたが、その時とは違う水晶発振子を使っています。

▼精度確認の様子
周波数微調整と精度確認
 パルス幅10msに設定してユニバーサルカウンタで精度を確認している様子です。 

 測定に使ったユニバーサルカウンタ(アドバンテスト TR5822)は上に乗っているルビジウムオシレーターで校正しています。またこのルビジウムはGPSと比較して誤差を補正しているので測定の確度は大丈夫だと思います。

◆まとめ
 以前私が作った物は、ジッタが大きくてパルスジェネレーターとしてははなはだ頼りない物だったのですが、今回 vabenecosi さんが作られたソフトに入れ替えることで、見違えるように高精度のパルスジェネレーターに変身しました。すばらしいソフトを公開してくださっている vabenecosi さんに感謝します。

 改良版のソフトを使うことでパルスの周波数は500kHzまで出せるようになりました。このあたりの周波数の信号が出せると、受信機のマーカーとして使うことが出来ます。ちなみに旧ソフトでは12.5kHzが限界、しかもジッタまみれです。
 出力端子にアンテナ代わりにミノムシクリップの線でもつないでおいて、受信機で受信すれば正確な周波数間隔でキャリアを確認出来て面白いです。変調かけるともっと面白そうですが、遊びすぎでしょうね。

Arduinoで作るパルスジェネレーターの高精度化ソフト

 アキバ通いと旅のサイトの vabenecosi さんが、以前私が作ったパルスジェネレーターの高精度版のソフトを作られました。

▼以前作ったパルスジェネレーター
以前作ったArduinoで動くパルスジェネレーター

 高精度版ソフトに関する vabenecosi さんの記事はいくつかに別れていますが、下記URLとその周辺の記事で詳しく解説されています。
 最初の記事はこちら→ 簡易パルスジェネレータの製作(速報版)
 ソフト解説がこちら→ 簡易パルスジェネレータの製作(ソフト編)

 詳しくは vabenecosi さんの記事を参照していただくとして、改良のポイントとしては、
 私のプログラムではタイマー割り込みのキャッチボールでパルスを発生させていたのに対し、vabenecosi さんのプログラムではCPUに内蔵されているタイマー (timer1) でパルスを発生させています。

 私のやり方では、タイマー割り込みの処理時間がオーバーヘッドになるため、周期1ms以下では誤差が目立ってきます。またArduinoの環境の制約から、時間の粒度が4μsと粗いため最小パルス幅は40μsまでしか設定できませんでした。一方で、vebenecosi さんのプログラムではハードウェアタイマーを使っているので、小さなパルス幅まで正確なタイミングでパルスの発生が可能になっています。

 ということで、公開されているプログラムを動かしてみました。

▼まずは Arduino UNOで動かしてみた
Arduino UNO でテスト
 上は液晶シールドで、その下にArduino UNO があります。

 この状態でとりあえずソフトのテストは出来ます。でも、Arduino UNO のクロックオシレーターはセラロックなので周波数精度が悪く、ユニバーサルカウンタでパルスを測定しても中途半端な値が出て気持ち悪いです。

 そこで、水晶オシレーターで動く「あちゃんでいいの」で動くように組み替えました。

▼あちゃんでいいのでテスト
あちゃんでいいのでテスト
 現時点で3種類のファームが公開されているので、それぞれ3つのCPUに焼いてテストしているところです。

▼周波数カウンタの値と比較
周波数精度の確認
 この写真はパルス周期 100μsに設定した状態です。ユニバーサルカウンタの測定結果は、99.9849μsなので、誤差は0.015%しかありません。私の作ったプログラムでは誤差が0.8%もあったので、すばらしく改善されています。ちなみに、この誤差はあちゃんでいいのの基板の水晶の周波数精度が原因です。
 それと、ユニバーサルカウンタの値は1LSBがちらちら」と変化するだけなので品質の高い波形が出ていると思います。ちなみに、私が作った割込み方式だと、下3桁くらいは値がフラフラしていました。

◆まとめ
 いろいろ条件を変えて試してみましたが、素晴らしい精度でパルスが出ていることが確認出来ました。ということで、この記事の最初の写真の私のパルスジェネレーターのプログラムは、vabenecosi さんの書かれたものに入れ替える予定です。すばらしいプログラムを書いてくださったvabenecosi さんに感謝します。

 あと、ソフトは v3 v4 v5 の3種類が公開されていますが、私はv4系で行こうかと思います。理由はvabenecosi さんのブログに書くのが正しい作法かと。

 それとソフトの入れ替えのためにはハードの配線も少し変更しないといけません。せっかく精度の高いパルスが出せるので、周波数を微調整出来るように、トリマを追加するのも悪くないかなと思います。このあたりは進展があったらまた記事で紹介したいと思います。

アナレンマの作図状況 2017年冬至

 太陽電池パネルの電圧を監視することでアナレンマを描く試みの最終回です。開始から1年経ち、二回目の冬至を迎えましたが、これで作画完成です。

▼Ambientで公開中のアナレンマのグラフ元のデーター(2017/12/23現在)
Ambientのグラフ

 左上から順に、日の出時刻、日の入り時刻、昼の長さ、南中時刻で、左下がアナレンマのグラフです。日の出、日の入り時刻が変化していく様子がよく判ります。
 秋分の日の記事ではアナレンマのプロットの左下が開いていましたが、今回の図ではきっちりと閉じていて見事に (?) アナレンマの8の字が完成しています。

▼同じデーターをエクセルで作図
元データ

▼エクセルで描いたアナレンマ(vs理論値)
エクセルのグラフ(理論値との比較)
 赤いプロットが天文台が発表している日の出/日の入り時刻で描いたアナレンマ、つまり理論値です。

 1年分のデーターが揃ったので、プロットの色を月別に分けてみました。

▼アナレンマの月別カラープロット
アナレンマの月別カラープロット
 こうするとプロットが交差している部分の構造が判り易いです。このグラフは手っ取り早くエクセルで12色に分けて描いていますが、VBAなどのプログラムで色を滑らかに変化させればもっと判り易くなると思います。

◆まとめ
・どうなるか判らないのでとにかくやってみたのですが、何とかアナレンマ(らしきもの)の作図が出来ました。必要な物は、太陽電池パネルとIOT環境だけなので、チャレンジし易いと思います。

・私の環境はマンションなので、太陽電池パネルから全天の半分しか見通すことが出来ません。これがもし、全天を見渡せる屋根の上に設置された太陽電池パネルだったら、もっと綺麗なアナレンマの8の字が描けたのかも知れません。また経緯度が違えばアナレンマの形も微妙に変わってくるはずです。どなたかチャレンジしてみませんか。特に学校の地学部や科学部などでみんなで取り組むと良い経験が出来るはずです。これ、大げさに言うと天体観測なので、天文部の人にもお勧めしたいです。

・この仕掛けを今後どうするかですが、特に手を掛けないでもAmbient側にデーターが溜まっていくので、当面はこのまま動かし続けて2年目のプロットに入りたいと思います。
 但し、現在のプログラムは1分間隔でパネルの電圧を送信しているのですが、これではAmbientに負荷を掛けてしまって申し訳ないので大幅に間引く、もしくは電圧の送信は中止してしまおうかと思っています。
 なお、使わないデーターを保存していただくのでは心苦しいので、電圧測定家結果は逐次削除しています。(この記事を執筆時点のパネル電圧のグラフはこちら)

・最後になりましたが、Ambient様のサービス無しにこの試みは実施できませんでした。ありがとうございました、感謝いたします。

 この試みについては、「アナレンマを描く」というカテゴリーに関連記事をまとめています。興味のある方はご覧ください。
カレンダー
01 | 2018/02 | 03
- - - - 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 - - -
プロフィール

ラジオペンチ

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

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