« 2013年6月 | メイン | 2013年8月 »

2013年7月

2013年7月 9日 (火)

プリント基盤の作成

赤道儀の駆動系をL6470+arduinoマイコンボード+バイポーラ型ステッピングモーターへ変更することで、arduinoマイコンボードとL6470及びLCD、スイッチ類を接続するための基盤を作成することにしました。

たいした配線ではないので、ユニバーサル基盤とハンダ付けでもよかったのですが、もともとハンダ付けが苦手ですので、この際とおもって、プリント基盤で作成することにしました。

そこで入手したのが、サンハヤトPK-10感光基盤製作入門キットです。

以下は、その製作記です。

1) サンハヤトPK-10感光基盤製作キットの内容

・インクジェットプリンター用フィルムA6 2枚

・穴あきクイックポジ感光基板NZh93K(紙フェノール 1.6t×72mm×95mm) 1枚

 
・現像剤(DP-10) 

・EGクランプ 

・エッチング剤入りポリ袋

・現像液廃液処理用ポリ袋

 
・エッチング液廃液処理剤(A剤、B剤)

と、プリント基盤を作成するための用品が一式揃って、2,000円弱で、千石電子で入手しました。

 

2) 配線図の製作

配線図は、「pcbe」というフリーソフトで作成しました。

マイコンやIC等を実装しないので、それほどややこしくなく、また、配線は無理をせず、ジャンパー箇所が増えても気にしない方針で、さっさと仕上げています。

3) 版下の印刷

キットのインクジェットプリンター用フィルムにEP4004で印刷、特に問題なく、黒々とくっきり、はっきり印刷できました。

20130616_15950これが、印刷した版下です。

黒ベタの部分も、真っ黒で光はほとんど通さず、いい感じにできあがりました。

配線の数の少なさをみれば、わざわざプリント基盤にする必要は、ほとんどありませんが・・・・・。

よく、チェックしたつもりだったのですが、こんな少ない配線でも2箇所ほど間違いがありました(大事には至りませんでしたが)。

 

 

 

 

 

2) 焼付け、現像、エッチング

付属のEGクランプ、ただの透明シートを2枚張り合わせたもので、中央が浮きそうで、心もとなかったのですが、一応これを使い、説明書には蛍光灯で、約10分の露光と書いてあったのを、小さめの蛍光灯スタンドを使ったので、10cm程度離し、倍の20分(根拠なし)露光して、現像したことろ、見事に失敗。

20130616_15952

露光時間が長かったことに加え、フィルムの中央部がやはり感光面から浮いており、基盤の中央部は、あっと言う間に、銅板の地がでてしまいました。

そこで、もう一度、感光基盤と現像液だけ買い直し、今度は、買い置きの基盤よりー一回り大きく、5mm厚アクリル板でがっしりと挟み、蛍光灯から10cm離し、10分露出で、やりなおしました。

現像→エッチングは順調で、説明書どおり、とくに問題なく、できあがりました。

ごらんのとおり、大成功です。

やはり、露光時間もですが、版下フィルムを密着させることが、第一のポイントです。

これならば、まだまだ、細い配線もできそうです。

今度は、PICマイコン用の基盤にも挑戦してみたいと思っています。

 

 

 

出来上がりは、下の写真のとおり、なんとも間抜けな基盤ですが、これで、LCD、L6470ともフラットケーブルで接続できるようになりました。

20130709_17006

実装している部品は、LCDのコントラストとバックライト用の可変抵抗と電子ブザーのみです。

電源はarduinoマイコンボード側に12Vで提供すれば、5V電源を供給してくれますので、今回の回路では、電源回路を省略できています。

 

 

 

 

 

 

 

arduinoマイコンボードとは、長ピンを使い、2階建てのようにして、接続しています。

20130709_17014_2
これで、新しい駆動系のコントローラは、できあがりました。

盆休みの撮影に向けて、赤道儀への組み込みを行う予定です。

2013年7月 3日 (水)

天体写真撮影用赤道儀の自作 -その後4-

さて、今日はL6470と言うステッピングモータドライバについてです。

前回でも書いたように、赤道儀の駆動系にしていた、ステッピングモータドライバー STK672-050とユニポーラ型ステッピングモータの組み合わせでの回転が振動が大きく、ドライバーICの外付け回路の出来が悪そうな感じなのですが、原因がつかめない中で、新しいドライバーICと、これをキット化した製品を見つけました。

それが、これです。

20130616_15956これは、ストロベリー・リナックスが販売しているもので、千石電子で入手しました。

ちなみに、千石電子には、このストロベリー・リナックスの製品を置いたコーナがあり、バイポーラ型ステッピングモーターや色々なキット類が購入できます。

このキットに付属する説明書は、概要のみしか記載されていないため、ドライバーICのメーカーであるSTマイクロエレクトロニクス社のdatasheet(英語版のみ)は必須です。

このキットは、コネクタと接続ピンをハンダ付けするだけですので、ほぼ完成品と言えます。

これで、ドライバーICの外付け回路を自作する必要がなく、安心です。

ところが、これを制御するには、SPI通信で行うことになっているのですが、今まで使っていたPIC16F886では、どうしてもうまくいきません。

Webで検索しても、簡単だと書いてあるのですが、全く通信ができません。また、PIC16F886の動作というか、LCDキャラクターディスプレイの動作も不安定で、テストも遅々として進みませんでした。

そこで、見つけたのが、arduinoマイコンボードです。

20130616_15954このマイコン、C仕様の言語で開発できる他、LCDの表示やSPI通信が標準で用意されています。

それこそ、とっても簡単です(・・・そうに思えました)。

書き込み装置もいりません。USBで接続するだけで、書き込みができますし、USB経由の電源で動きます。

電子回路に弱い私にとっては強い見方です。

早速、L6470とSPI通信を試みましたが、簡単なはずが、なかなかでした。

まずは、結線。

SPI通信では、データ出力(SDO)とデータ入力(SDI)の関係、当然SDO-SDI、SDI-SDOと結線するものだと思い込み、これで結線して通信するのですが、うんともすんともいいません。

よくよく、説明書をみるとSDO-SDO、SDI-SDIと結線すると書いてあるではないですか。

説明書を良く読まなければなりません(汗)。

結線を変えて試してみても、まだ、うまくいきません。

Webで検索すると、クロックの極性とデータの読み込みタイミングを合わせる必要があり、4つのモードがあることがわかりました。

タイミングチャートを見て合わせているはずですが、うまくいきません。

こうなると、もう得意の力技です。4つのモードをすべて試みたところ、arduinoマイコンボードのモード3で通信が可能でした、ここまでで、1週間もかかってしまいました。

------------------------------------------------------------------------------------------------

※これは、私の早とちり。

正しくは、ArduinoのSPIリファレンスの読み違いで、SPIのリファレンスでは、MOSI(=Master Out Slave In )、MSIO(=Master In Slave Out )とせっかく正確に書いてあるのを勘違いしただけでした。

このとおりに接続すると、当然問題なく通信できました。

--------------------------------------------------------------------------------------------------

後は、PICマイコンで作ったプログラムを移植するだけです。

このL6470は1/128ステップのマイクロステップで動作可能ですので、今までと比較するとびっくりするくらいスムースに回転します。

でも、電圧や設定項目も多く、これらをキチンと設定しないと、うまく回ってくれません。

特に、ADCINの電圧をバリオームで1.5Vに調整するよう書いてあるのですが、これが出ている端子がなく、これはL6470の5番ピンですので、基盤上でのテストポイントを目を皿のようにして探し出し、調整するとうまく回ってくれました。

確実に回るために必要な設定は、私が使っているモータ(SM-42BYG011)の場合、

モータ停止中の電圧設定・・・0xFF(0x29)

モータ定速回転時の電圧設定・・・0xFF(0x29)

モータ加速中の電圧設定・・・0xFF(0x29)

モータ減速中の電圧設定・・・0xFF(0x29)

()内は、デフォルト値

ADCINの電圧1.5V

以上が必須みたいです。

これで、極めてスムースな回転をする駆動系を手に入れたのですが、私の用途には、このL6470は、ちょっとした欠点がありました。

タンジェントスクリューのエラーを補正するために、回転数を細かいステップで調整する必要があるのですが、L6470の速度調整最小ステップは、

0.015step/secです(このステップはマイクロステップではない)。

よって、200step/回転のモータでは、0.0045p.r.mのステップでの調整となります。

この調整では、1秒程度の誤差が発生しそうです。

もう一つは、回転数をモニターできる、出力がないことです。

STK672-050には、ステップ信号ごとにモニター出力があったので、この周期をカウントすることで回転数を計測できたのですが、L6470には、この手の信号出力がありませんので、回転数をモニターする手段がありません。

外部クロックにより駆動するモードも考えたのですが、arduinoマイコンボードのtone()を使ったパルス発生は、1桁目の増減まで反映できていません。テスターの周波数測定とPICマイコンでのカンウターを使った測定でも、同様の結果が出ましたので、多分間違いないとおもいます。

これらの問題は、実際に星を追尾して、調整していきたいと思っています。

なんとか、赤道儀に載せる段階までになったところです。

この過程で、PICマイコンの知識も深まって、LCDディスプレイの動作の不安定の原因もわかったのですが、これはまた、別の機会に書きます。