前記事はこちら
スケッチ
モーター回転数は計算値ではなく、実際に動かしながら調整しました。
#include <SPI.h> //ライブラリ読み込み
//ピン番号設定 これは動かせない #define PIN_SDO 11 #define PIN_SDI 12 #define PIN_SCK 13 #define PIN_PORTC 10 //モーター回転速度設定 float speed = -15.9; float speed2 = 0; float speed3 = 0; float speed4 = 0; void setup()//初期設定 { //ピンの入出力を決定 pinMode(PIN_SDO, OUTPUT); pinMode(PIN_SDI, INPUT); pinMode(PIN_SCK, OUTPUT); pinMode(PIN_PORTC, OUTPUT); pinMode(A1, INPUT_PULLUP); pinMode(A2, OUTPUT); pinMode(A3, INPUT_PULLUP); pinMode(2, INPUT_PULLUP); pinMode(3, OUTPUT); pinMode(4, INPUT_PULLUP); digitalWrite(A2,LOW); digitalWrite(3,LOW); delay(2000); //よくわからないけどちょっと待ってみる digitalWrite(PIN_PORTC,HIGH);//ドライバを命令を受け付けない状態にする //SPI通信の初期設定 SPI.begin(); SPI.setDataMode(SPI_MODE3); SPI.setBitOrder(MSBFIRST); } void L6470_run(long speed){//ドライバに命令を送るサブルーチン unsigned short dir; unsigned long spd; unsigned char spd_h; unsigned char spd_m; unsigned char spd_l; //マイナス値を入力したら回転方向を 反転する if (speed<0){ dir=0x50; spd=-1*speed; } else{ dir=0x51; spd=speed; } //回転速度の設定をするための命令を作る spd_h=(unsigned char)((0x0F0000 & spd)>>16); spd_m=(unsigned char)((0x000FF00 & spd)>>8); spd_l=(unsigned char)(0x000FF & spd); //ドライバに命令を送る L6470_write(dir); L6470_write(spd_h); L6470_write(spd_m); L6470_write(spd_l); } void L6470_write(unsigned char command){// ドライバに命令を送るサブルーチン digitalWrite(PIN_PORTC,LOW); //ドライバが命令を受け取れる状態にする SPI.transfer(command); //命令を送る digitalWrite(PIN_PORTC,HIGH); //ドライバが命令を受け取れない状態にする } void loop(){ //本文 if(digitalRead(4)==LOW){//スイッチ2 早送り if(digitalRead(A1)==LOW){ speed3=speed*300;//スイッチ1がオンのときは300倍速 } else { speed3=speed*100; } L6470_run(speed3); } else if(digitalRead(2)==LOW){//スイッチ2 巻き戻し if(digitalRead(A1)==LOW){ speed4=speed*-300;//スイッチ1がオンのときは300倍速 } else{ speed4=speed*-100; } L6470_run(speed4); }else if(digitalRead(A3)==LOW){//通常 L6470_run(speed); }else if(digitalRead(A1)==LOW){//スイッチ1がオンの時(A1に導通して //いるとき)高速回転モード speed2=speed*100; L6470_run(speed2); } delay(300); } |
試写
さてお待ちかねの試写です!
セッティングしたところ
よく見えませんが、トラベル用のしょぼい三脚ですが本体が軽いからか以外に安定しています。
コントローラーが有線なのは邪魔
電池ボックスがでかすぎてもっと邪魔、、、
|
カーチス法というらしい。アメリカ野郎、。。。
モーターを高速回転モードにします。(早送り、巻き戻し、高速回転のどれでもOK)
北極星にカメラを向けます。
5-6秒撮影するとこの写真。
|
カメラの液晶上で上の赤丸のあたりが極軸が向いている方向です。
なので、液晶上のこのあたりに北極星が入るように赤道儀の向きを変えます。
同じように撮影して北極星が動かなくなったら準備万端
|
まずは30秒で。
OM-D E-M5 M.ZUIKO12-100 F4.0 30秒 |
む?
上の写真の拡大図 |
むー。。。かなり流れちゃいますね。
カメラの液晶を拡大表示してみてみると、早くなったり遅くなったり動いているのがわかります。
やっぱりモーターとギアの精度が悪いようですね。。。。がっかり。
しかし10000円を無駄にしたなんて知れたらどんな目に合うか!?
ダメもとで電源につないで2日間高速回転しっぱなしにさせてみたところ。。
キター! OLYMPUS OM-D E-M1 mk2 M.ZUIKO12-100 F4.0 ISO400 60秒 |
拡大したのがこちら。
ちょっと画質落としてしまいましたが、よく追尾できています。
|
考察
ギアードモータを使った簡易赤道儀ですが思いのほか精度よくできました。
奇跡の極軸合わせが必要ではありますが、星景撮影には十分使えそうな精度です。
使ったモーターはギア後のトルクが4N/mのものです。
軸からカメラまでの距離10㎝とすると大体4kgまで載せられる計算になります。
おそらくモーターのトルクよりも軸、カプラー、ブラケットの強度が足りなくなりますが、1㎏程度のミラーレス機なら十分実用になりそうですね。
追尾精度という点ではナノトラッカーと同レベルな印象。安物モーターもすごい!
お値段材料費で1万円。
工賃も含めると売るなら15000円くらいほしいけどそこまで出すとナノトラッカーが見えてきます。
電池三本で動いてもっと小さいナノトラッカーはやっぱりすごいです。