JJ1WKN Log

自作や移動運用関連のログです。

Tanukino 秋月DDSコントローラーの製作 その1

2012-06-16 | Tanukino
スタンドアローン版用に基板を作りました。

FRMSもどきにするために、」RF入力用にログアンプのAD8307を想定してありますが、今後の拡張用です。

ソケットは最近秋月で発売された分割可能ソケットを使用しましたが、これは便利です。
ソケットの加工が面倒だと半田付けでごまかすのですが、分割可能ソケットだとスマートですね。


LCDは16桁1行にしましたが、内部的には8桁2行なので、スケッチはそのままです。


全景です。
SWは予備を加えて4つにしました。
DBMを使用して周波数の拡張を検討していますが、とりあえず大き目のケースに入れようと思います。


DDSのUPです。
シリアル接続+LPF外付けだとスカスカですね。

Tanukino 秋月DDSの制御テスト

2012-06-10 | Tanukino
数年前に2台目のDDSキットを買ってあったのですが、ようやく組み立てました。

今回はシリアル接続のみで使うので、ディップSWやプルアップ用集合抵抗など、余計な部品は実装していません。
技術資料の【シリアル入力時使用例】の回路になるようにしました。
DDSのアドレス設定のジャンパーも省略しました。
LPFは外付けにするので、出力端子にスルーです。

制御テストはいつものTanukinoです。
LCD、ロータリーエンコーダーとプッシュSWが3つです。
ロータリーエンコーダーは秋月のいつものですが、クリックがあるとゆっくり回すと数ステップのカウントとなって、制御が面倒なので、クリック外しをしました。
クリック外しをすると、4倍の96ステップになるので回しやすくなります。

ロータリーエンコーダーの制御は、1周の間に4つの状態で遷移するので、バイナリ値に変換して、XORを取ると0⇒1⇒2⇒3または3⇒2⇒1⇒0の順で変化するので、前回との差分からどの方向に回転したのかを判断します。
ELMさんのページの「インクリメンタル型ロータリー・エンコーダ 演算により求める (2)」を参考にさせて頂きました。

LCDは8桁2行なので、上段に周波数を、下段にモードと周波数ステップを表示します。
Freq、Low、High、Scanの4モードがあり、ModeSWを押すと順に切り替わります。
Freqモードでは設定した周波数がそのまま出力されます。
Lowモード、HighモードではScanモードの時の下限、上限周波数を設定します。


Freq、Low、Highモードのいずれも現在の周波数ステップで上下します。
周波数ステップはStepSWで設定し、10⇒100⇒1k⇒10k⇒100k⇒1Mの順で切り替わります。

Scanモードは設定した下限周波数から上限周波数に向かってスキャンします。
スキャンのインターバルは現時点では固定ですが、ポートに余裕があるので、LCDを16桁に変更して、インターバル設定SWを増設しようと思います。

まだ実装していませんが、スキャン時の周波数とアナログポートのAD変換値をシリアルでPC向けに出力する予定です。

テスト中の風景です。
Arduinoのシフトアウトは8ビット固定なので、「なんでも作っちゃう、かも。」さんのArduinoで遊ぼう - digitalWrite関数をハックするを参考にして7ビットと26ビットのシフトアウトルーチンを作りました。


ピントが合っていませんが、外付けLPF無しの7.02MHzの信号です。

Tanukino 土壌水分センサーのテスト

2012-06-02 | Tanukino
海外ではArduinoを使用して家庭菜園を楽しんでいる方もいるようです。
土が乾いてきたら水を自動的に給水することができればベランダ菜園に役立ちそうです。

先ずは水分センサーですが、水分保持性が高い石膏を使うことにしました。
プリント基板の切れ端に真鍮線を半田付けしてセンサーの電極にします。


レゴブロックで枠を作って石膏を流し込んで電極をぶら下げます。
石膏が固まったらブロックを外せばいいので、簡単です。


できたセンサーのUPです。


センサー基板です。
タイマーICで1.3KHzくらいを発振させ、センサーの電極に加えて、オペアンプで増幅してTanukinoでAD変換します。
水をたっぷり掛けた状態で50mV、乾いた状態で1.1Vの出力になるように調整しました。


Tanukinoでテスト中です。
10秒インターバルでデータを収集してEEPROMに書き込みます。
2バイトで書き込むので256個のデータをロギングできます。


PCからシリアルでデータ出力命令を送ると、収集した全データを送り返してくれます。
analogReference(INTERNAL);の設定でAD変換のリファレンス電圧は1.1VでAD変換値は1023になるので、ほぼセンサー出力電圧です。


途中でスポイトで水を2ccくらい掛けたので値が下がっています。
グラフにしてみました。
AD変換のばらつきがあるので、移動平均を取りながらロギングする必要がありそうですね。

Tanukino ステッピングモーターのテスト

2012-06-02 | Tanukino
Tanukinoを使用してステッピングモーターを動かしてみました。

使用したステッピングモーターは秋月のSPG20-1362で6本の線があるユニポーラ型のステッピングモーターです。
360度で1周しますので、1度単位で制御できます。

Arduinoにはステッピングモーター用のライブラリが用意されているので、制御は簡単です。
ドライバICとしてTA7774PGを買っておいたのですが、データシートを見てみると4本の線があるバイポーラ型専用のドライバICでした。

そこでPICステッピングモータドライバキットの回路図を参考にしてダーリントントランジスタでドライバを組んでみました。

秋月のATMEGA168/328用マイコンボードを使用したTanukinoですが、TanukinoというよりはAkidukinoですね。




60度ずつ回転します。

その後色々調べたところ、ユニポーラ型のステッピングモーターの中点の端子を無視すればバイポーラ型として使用できるそうなので、TA7774PGで動作させてみました。
だいぶすっきりしました。
ステッピングモーターの青と黒の線は使用していません。


ステッピングモーターを任意に制御できるようになりましたが、機械工作は苦手なので応用先の検討がつきません。