日食撮像システム 2019年 Ver.
PIC2(クライマックス)のファームとデジイチの設定
2019.02.10改
駆動する機材:α5000+BORG60ED+エクステンダーX1.4
(F8.2, f=490mm:35mm換算735mm)
 
ファームウェアについて
○食の最大から5分前に10秒間隔で撮像しはじめ、C2前10秒前からC3後10秒迄1.5秒間隔で撮像し、その後再度10秒間隔で撮像を開始する
○回路図はこちらにあります。プルアップしたGP2が0になった時に10秒間隔で撮像を開始しGP3が0になると1.7秒間隔で撮像を開始します。再度GP2が0になると10秒間隔で撮像を開始します。ファームウェアのダウンロードはこちらから。或いはページの一番下に全コードを提示しています。
○自動で撮像はストップしないので、適当な時にカメラの電源を切ることで終えます。
デジイチ(Sony α5000)の設定
±3EVのブラケティングをかけて、最速SSが1/1000秒(セットは1/125秒)で部分食で最適な露出になるISO感度は200として置く。太陽フィルターはBAADERのアストロソーラーフィルターND200とND500を重ねて使用します。これはコロナと太陽の明るさの違いを測定するための基礎データを得るためです。セッティングの勘所は下記2017年アメリカ日食の結果を参照しました。連写にかかる時間から、1.5秒/1セットから1.7秒/1セットの連射にしました。

参考:2017年の結果
・D5フィルターを付けた上で太陽の適正露出:1/1000秒・F8・ISO200
 
α5000のレリーズケーブル製作の注意点
 〇これまでに使ってきたニコン、今回使うオリンパスE-PL5は、共通端子がアース(Vss)になっていますが、ソニーα5000は、共通端子が正極(Vdd)になっています。今回はPIC2と3は同じ回路を使い、ステレオプラグの先端極がシャッターレリーズ、中間極がフォーカス、一番手前極がVssになるように作られていますが(なので、フォトカプラのエミッタを連結してVssに来るようにしています)、これが逆でなくてはいけません。何とかならないか?という事で、ステレオプラグの結線で中間極をVdd、一番手前極をフォーカス、先端極をシャッターレリーズとしました。キヤノンのEOS Kissシリーズでも途中で正負の逆転をしたモデルがある、と聞いていましたが、これほど凶悪ではないもののメーカーの考え方により、正負が逆になっている事もあるのは発見でした。海外でもこの手の改造工作の愛好者は居るようで、日食愛好(罹患?)者の集まりで、メーカーによるレリーズの手順、極の設定を集めたHPがある事を見ていましたが、世の中はググってみるもの…なのですね。
 回路を揃えたかったので陥った事態ですが、やってみたらシャッターレリーズ端子と共通端子を繋ぐだけでシャッターが切れるデジイチ(手持ちであったか?ならオリンパスとなるが良いのか!?)もあるし、パナソニックは抵抗が組み込まれた4極端子ですし、メーカーにより色々なので、あくまで自作は自分の機材により違うモノ…と考えて取り組む必要がある、と思いました。
 元より、自分の作ったハード・ファームetcの公開メモですので…
 
  1 /*
2 * File: main.c
3 * Author: M_shi_Lab 4 * ForPIC-2+D5500 5 * Createdon 2018/04/22, 19:42
6 */
7
8
9 #include <xc.h>
10 #include <stdlib.h>
11 #include <stdio.h>
12
13 #pragma config WDTE = OFF
14 #pragma config PWRTE = ON
15 #pragma config MCLRE = OFF
16 #pragma config CP = OFF
17 #pragma config CPD = OFF
18 #pragma config BOREN = OFF
19 #pragma config IESO = OFF
20 #pragma config FCMEN = OFF
21 #pragma config FOSC = HS
22
23 #define _XTAL_FREQ 4000000 24
25 void Interval();
26 void Continus();
27
28 int i, c;
29
30 void main()
31 {
32
33
34 TRISIO = 0b00101100;
35 ANSEL = 0b00000000;
36 WPU = 0b00001100;
37 CMCON0 = 0b00000011;
38
39
40 GP0 = 0;
41 GP1 = 0;
42
43 i = 0;
44 c = 0;
45
46 while(1)
47 {
48 if (GP2 == 0) 49 { 50 i = 1; 51 c = 0; 52 } 53 elseif (GP3 == 0)
54 {
55 c = 1;
56 i = 0;
57 }
58
59 if (i == 1 && c == 0) 60 { 61 Continus(i, c); 62 } 63 elseif (i == 0 && c == 1)
64 {
65 Interval(i, c);
66 }
67 }
68 return;
69 }
70
71 void Interval(i,c)
72 {
73 int j, k;
74
75 while(1)
76 {
77 GP0 = 1;
78 __delay_ms(50);
79 GP1 = 1;
80 __delay_ms(1300);
81 GP1 = 0;
82 __delay_ms(50);
83 GP0 = 0;
84 if(GP2 == 0)
85 {
86 i = 0;
87 c = 1;
88 break;
89 }
90 __delay_ms(600);
91
92 for(j=1; j<=800; j++)
93 {
94 __delay_ms(10);
95 if(GP2 == 0)
96 {
97 i = 0;
98 c = 1;
99 break;
100 }
101 }
102 }
103 return;
104 }
105
106 void Continus(i,c)
107 {
108 int k;
109
110 while(1)
111 {
112 GP0 = 1;
113 __delay_ms(50);
114 GP1 = 1;
115 __delay_ms(1300);
116 GP1 = 0;
117 __delay_ms(50);
118 GP0 = 0;
119 if (GP3 == 0)
120 {
121 i = 1;
122 c = 0;
123 break;
124 }
125 __delay_ms(400);
126 if (GP3 == 0)
127 {
128 i = 1;
129 c = 0;
130 break;
131 }
132 }
133 return;
134 }
inserted by FC2 system