D40冷却改造奮闘記
2008年10月 5日 (日)
2008年5月 2日 (金)
2008年3月 9日 (日)
D40冷却改造奮闘記 その11
迷いに迷っていたレンズ選びですが、結局、
シグマ 10-20mm F4-F5.6
にしました。
本命は、タムロンの新レンズですが、いつ出るか分からないレンズを待っていてもしょうがないので、思い切って買ってしまいました。マップカメラで中古5万円ほどでした。
このレンズにした決め手ですが、やはり広角10mmからですね。トキナーほど重くないし、コンパクトです。周辺減光も思ったより出ないです。レンズには、赤カブリ補正用のブルーフィルターC8をつけています。
で、マップカメラ行ったその足で、霧ヶ峰に遠征してきました。一晩中晴れで、この時期には珍しく透明度も良かったです。皆さんも今日はすばらしい写真撮れたのではないでしょうか。
現地の温度はマイナス6℃でした。全然冷却の必要なかったみたいですが、マイナス15℃に設定しました。このときの湿度レベルは5で、注意レベルの7までまだ余裕があるので、もっと冷やせそうでした。しかし、すでに撮影を開始していたので、今晩はマイナス15℃でやることにしました。(ダークの関係もあるので途中で変更できないのです。)
機材は何のトラブルもありませんでした。すべてをコントローラにまとめたおかげで、取り回しがよく、三脚を肩に担いで、バッテリーを持ちながら、電源を入れたままあちこち移動できました。最強の星景カメラができたと思います。
で、本遠征の成果一枚だけお披露目します。
Sigma 10-20mmF4-F5.6 -> 10mmF5.6
Cooled D40 honmaka-Special -15℃
ISO800 30min ケンコーC8フィルター
今日はテストなので、わりと短時間露出で、数多く撮るようにしましたが、これなら1時間露出でも大丈夫そうです。
2008年3月 5日 (水)
D40冷却改造奮闘記 その10
FFフィルターが到着しました。早速、取り付けて見ました。
後は、レンズだけです。星景写真を撮りたいので、超広角ズームを検討しているのですが、いっぱいありますね。どれにしようか迷ってしまいます。そこで、各社の超広角ズームをまとめて見ました。
●ニコン
12-24mm F4 高い
●シグマ
10-20mm F4-F5.6 10mmからは魅力
12-24mm F4.5-F5.6 特になし
15-30mm F3.5-F4.5 でかいが、マウントアダプタでEOS5Dで使用可
●タムロン
11-18mm F4.5-F5.6 シグマの10-20に比べるとちょっと。。。
●トキナー
11-16mm F2.8 明るい! 新製品なのでちょっと高い
12-24mm F4 評判いい。F4通しも使いやすい。
う~ん。ほんとに迷ってしまう。
D40冷却改造奮闘記 その9
プログラム解説の二回目です。前回説明し切れなかったところを補足説明したいと思います。
アナログ入力
このマイコンは8チャンネル10ビットのAD変換機を内臓していて、0~5Vの電圧をデジタルの0~1023の値に変換してくれます。温度センサーをAD変換機のチャンネル0(AN0)、湿度センサーをチャンネル1(AN1)に接続しています。
どのチャンネルから入力するかの選択はシンボルADCSRの下位3ビットで設定します。たとえばチャンネル1から入力したいなら最初にADCSR = 1;と初期化します。
スイッチ入力
3つのプッシュスイッチを割り込み入力端子(IRQ0~IRQ2)に接続しています。IRQ端子は入力レベルが5V->0Vに変化すると割り込みが発生して、関数irq0()~irq2()が自動的に呼ばれます。
3つのプッシュスイッチは、モード、アップ、ダウンの機能があります。モードスイッチは、どの値を変えるかを選択するスイッチで押すと、液晶のカーソル(>)が移動します。アップスイッチは設定値を上げるスイッチです。ダウンスイッチは設定値を下げるスイッチです。ほんとは、スイッチを4つにして、カーソルの移動を両方向にしたかったのですが、ケースの中に入りませんでした。
スイッチは押すと、チャタリングというON/OFFを繰り返す現象が必ずおきるので、一回押しただけなのに、何回も割り込み関数が起動されてしまうということが起こります。それを避ける処理が関数の先頭に記述されています。まず、2000ループ待った後、スイッチの状態を入力し、指が離れるのを待ちます。それからもう一度2000ループ待ってから処理を始めます。このループ回数はスイッチによって違うので、実際に確認しながら決めます。
もし、もう一個スイッチを増やすなら、IRQ3端子に接続してプログラムを次のように変更します。
460行目を次のように変更
//スイッチ入力IRQ割り込み初期化
PMR1 |= 0xF0;
IENR1 |= 0x0F;
次に、YellowIDEのメニューの(プロジェクト)→(設定)を開き、(割込み)のページをクリックし、ベクタ番号17、関数名irq3として(登録)をクリックします。
割り込み関数は次のように記述します。
void interrupt irq3(void)
{
int i;
for (i = 0; i < 2000; i++) {
; //スイッチのチャタリング防止のため少し待つ
//この間、タイマー割り込みが入らないので、時間がずれる可能性あり
}
PMR1 = 0;
while ((PDR1 & 0x80) == 0)
;
PMR1 = 0xF0;
for (i = 0; i < 2000; i++) {
; //スイッチのチャタリング防止のため少し待つ
//この間、タイマー割り込みが入らないので、時間がずれる可能性あり
}
==ここに処理を書く==
IRR1 &= ~8;
}
液晶表示
液晶表示に関しては少々込み入っていますので説明を省略させてもらいます。回路図どおり作成すればプログラムは問題なく動作します。
2008年3月 4日 (火)
D40冷却改造奮闘記 その8
コントローラのプログラムを公開します。
解凍したフォルダを適当なフォルダに保存してください。デスクトップはだめです。
プログラムの組み込み方
まずは、イエローソフトのホームページからYellowIDEの体験版をダウンロードして、インストールします。
CPUボード(YHN64-1)にインターフェースボード(YHN64-2)を接続し、インターフェースボードとパソコンのCOMポートをRS232Cケーブルで接続します。インターフェースボードのトグルスイッチをLEDが点灯する方向に倒します。LEDが光っていれば書き込みできる状態です。(COMポートのないパソコンの場合はUSB-RS232C変換器を使います。)
YellowIDEを起動したら、メニューの(ファイル)→(プロジェクトを開く)で、ダウンロードしたフォルダの中にあるCoolsystem.yipファイルを開きます。
スピードボタンの青い三角のボタンをクリックすればプログラムがコンパイルされ、フラッシュROMライタが起動しますので、次のように設定して、書き込みボタンをクリックします。
書き込みが終わったら、トグルスイッチを反対側に倒し、リセットボタンを押せば、プログラムが実行します。
今回、プログラムサイズが体験版の制限である16Kバイトをオーバーしてしまったので、湿度センサーの入力部分をコメントアウトしています。このプログラムではsprintf関数を使っていますが、この関数が大きいので、これを使わなければ、もっともっとプログラムを追加できます。
プログラムの解説
C言語はちょっと知っているけど、マイコンプログラムは初めてという方向けにちょっと解説します。というより、ほとんど桃太さん向けの解説なのですが。。。
マイコンプログラミングは、通常のC言語プログラムと変わりありませんが、マイコンはCPUコアのプログラム以外に内蔵周辺機能の操作をしなければならないところが独特です。内臓周辺機能の操作で基本的なのはポートと呼ばれるものです。ポートはマイコンの端子のことで、このポートをON/OFFすることによってポートに5Vまたは0Vを出力することができます。回路図でP81とか書いてあるのがポートです。P81はポート8のビット1ということです。ポートはプログラム側から見れば、番地をもったメモリとまったく同じで、ポート8の番地のビット1をセットすれば、P81から5Vを出力できます。
ポートは番地を持ったメモリと同等ですから、ポインタを使ってアクセスできます。しかし、ヘッダファイルH83664.Hの中にポインタ定数としシンボル定義されていますから、通常はシンボルを使ってアクセスします。ポート8のシンボルはP8DRです。
たとえば、ポートのP81をセットするには
P8DR |= 2;
となります。ポートのP81をリセットするには
P8DR &= ~2;
となります。
ポートは、入力方向と出力方向が切り替えられます。初期状態では入力方向なので、出力方向にしたい場合は最初に次のように命令を記述します。これはP81を出力にします。
P8DDR = 2;
P81、P82、P83をいっぺんに出力方向にしたい場合は、次のようにかけます。
P8DDR = 0xE0;
ほんとは、シンボルP8DRとP8DDRはヘッダファイルH83664.Hの中で、PCR8、PDR8と定義されているのですが、私が使いやすいように次のように再定義してあります。ここは注意してください。
#define P8DDR PCR8
#define P8DR PDR8
あと、このプログラムではタイマー割り込みを使って、周期的に起動する関数を定義しています。timerという関数がそれです。この関数は40msごとに起動されます。起動される周期は、main関数の初期化の部分で
GRA = 12500*4; //0.04秒
この値を変えれば、変えられます。GRA=12500とすれば、10msごとに起動できます。ただし、GRAの値が65535を超えてはいけません。また起動周期があまりにも早いと、処理が追いつかない場合もあります。このプログラムでは液晶の表示とかけっこう時間がかかって、40msの周期でないと正常に動作しませんでした。
以上で簡単な解説は終わりです。分からないことがあったら質問してください。
D40冷却改造奮闘記 その7
冷却D40も完成したので、コントローラ部の解説をしたいと思います。ここらの話は、興味のない人にはまったくつまらない話なのであしからず。
まず、全回路図のPDFファイルを掲載します。
それでは詳細を説明します。
制御用マイコンはH8マイコンを使っています。H8/3664というマイコンです。マイコンはPICマイコンがちょっとした工作には有名ですが、私は仕事でH8マイコンを使っていますので、このマイコンにしました。このマイコンのCPUボードはイエローソフトから入手しました。ネットで購入できます。
必要なのはCPUボード本体であるYHN64-1 と、プログラムを転送するためのインターフェースボードYHN64-2、それとRS232Cケーブルの3点です。製品ページはこちら
開発ソフトウェアは、イエローソフトのYellowIDEの体験版がプログラムサイズ16Kバイトまでなら利用できます。
今回のプログラムは16Kバイトをちょっと超えてしまったのですが、なんとか16Kバイト以内に収まるようにして公開したいと思います。プログラムの組み込み方等についてはまた後日説明したいと思います。
LCDは秋月電子通商から購入したSD1602HUOBです。小型のLCDでオレンジ色のバックライト付きです。(使っていませんが) 今回、ほとんどの部品を秋月電子で購入しました。
温度センサーは秋月電子から購入したS8100Bというもので-8mV/℃というマイナスの係数を持つ温度センサーです。-40℃から測定できます。温度センサーからの入力はオペアンプLM358N(秋月)で増幅してマイコンに入力します。この回路図での増幅率は抵抗の値で決まります。
増幅率=((1K+470) + 1K) / 1K = 2.47です。
この温度センサーの出力電圧は冷却D40の温度範囲内ではだいたい1V~2Vなので、2.47V~4.94Vになります。マイコンの入力上限が5Vなので、5Vを超えないようにします。オペアンプの電源電圧は5Vでは低すぎます。オペアンプの出力電圧は電源電圧-1.5V位なので、4.94Vを出力させようとしたらもっと高い電圧が必要です。そこでオペアンプにはカメラ電源からとった電源(約8V)を供給します。
結露センサー(湿度センサー)ですが、このキットのものを利用しています。センサーの資料が入っていなかったのですが、たぶん、これと同じです。
結露センサーは、湿度によって抵抗値が変わるものです。ですから10Kオームの抵抗と結露センサーで5Vの電圧を分圧し、オペアンプを通して、マイコンに入力します。オペアンプは抵抗を使っていないので増幅率1になります。
ペルチェ素子はデンシ電気店というところから購入しました。15V3Aのタイプのものです。ヒートシンクとファンはCPU用のものでパソコンパーツショップで購入しました。熱伝導グリスも一緒に買いました。
さて、ペルチェ素子をON/OFFさせるのに、MOS FETという素子を使っています。H7N0308CFというもので秋月電子から購入できます。MOS FETはトランジスタの仲間のような素子ですが、電圧の大小で電流をコントロールします。このMOS FETの場合、だいたい4Vの電圧で電流をONさせることができます。マイコンの出力は5Vなので、ちょうど良いです。
今回温度制御は、設定温度を下回ったらOFF、設定温度+0.2℃を上回ったらONするという簡単な制御方法にしました。これだと設定温度を中心に温度が波打つのですが、PWMというパルスを出力して、PID制御というフィードバック制御をすると非常に安定的に温度制御することができます。MOS FETという素子はこのPWM制御に向いた素子であることが選んだ理由です。必要であれば将来PWM制御に拡張できます。
リモートシャッター部です。アナログスイッチと呼ばれるIC(74HC4066)を使っています。このアナログスイッチICは単純で、Eの端子がHIGH(5V)になると、YとZの端子が導通するというものです。このICだけは秋月電子からは購入できず、千石電商から購入しました。
スイッチは4チャンネル入っていますので、一つをシャッターへ、2つをLEDに接続しています。
最後に電源部です。今回必要なのは5Vのデジタル電源と、8Vのカメラ電源、赤外線リモコン用の3.3Vの電源で、合計3つです。すべて3端子レギュレータという安定化電源素子を使っています。5Vと3.3Vの電源は3端子レギュレータとコンデンサ2個を使った非常に簡単なものです。これで十分です。秋月電子からICとコンデンサがセットになったものが売っていますので、それをそのまま利用しました。
カメラ電源だけは、電圧が特殊なので、可変型の安定化電源キットを利用しました。キットの基板を利用すると大きくなってしまいますので、部品だけ利用しています。
次回は、プログラムの公開と簡単な説明をします。
2008年3月 3日 (月)
D40冷却改造奮闘記 その6
完成!
Cooled D40ほんまかスペシャル!まずは正面から。
ファンがでかいです。適当なものがなかったもので。。。次は後ろから。
でかいコントローラ。温度コントローラの他に、タイマーリモートシャッターや、カメラ電源、ヒータ電源まで入っています。撮影に必要なすべてをまとめました。取り回しがいいんです。電源一本つなげれば、はい、撮影準備完了です。上段右端の3という数字は湿度レベルです。0~9まで表示します。7になったら、湿度95%で、それ以上温度を下げませんが、強制的に下げることも可能です。結露レベルは9です。
次は上から。
3つのスイッチで操作します。露出中は赤のLEDが点滅。インターバル中は黄色のLEDが点滅します。
冷却テストしてみました。
最初は17.7度ですが、この温度計校正していないのでかなりいい加減です。
0.4度まで下がりました。冷却能力はマイナス17度ほどです。思ったほど下がりませんでした。湿度レベルが7まで上がっていますが、カメラを露出したまま冷やすと、湿度レベルは4までしか上がらないことが分かりました。これは大発見です。どうせ、露出したら温度上がるので、最初から上げておくほうが安全ということですね。
実際にダークを撮影してみました。まずは冷却なし。ISO1600、30分です。
次に冷却してみました。
一見、差がないようですが、、、、
いつものようにレベル調整255->50にすると。
どうです。これだけ差が出ます。
ほんまかのメイン星野撮影システムはすでにEOS 5Dになっていますので、このカメラは固定撮影の星景写真に使う予定です。つまりサブカメラですね。サブカメラが冷却仕様とは、なんて贅沢なんでしょう。
今週末あたりフィールドテストしたいですが、FFフィルターがまだ届いていません。それから、レンズもまだないんですよね。
2008年2月26日 (火)
2008年2月20日 (水)
D40冷却改造奮闘記 その4
パワーアップ!
新しいペルチェ素子きました。12V2.4A(15V3A)のものです。最初のものより1.5倍のパワーです。ヒートシンクも大きくしました。ちょっとデカすぎたかな。CPUクーラーですが、なかなか手ごろなものがなくて。
さっそく冷却試験。最初は24.7度です。
熱平衡に達したところで8.5度、マイナス16.2度です。前回よりマイナス5度のパワーアップです。カメラ内に組み込めばもう2~3度下がると思いますので、マイナス18~19度くらいの能力でしょうか。目標のマイナス20度にはちょっと足らず。まぁこのへんで妥協しておきましょう。
おそらく、冷却板とCCD金具がワンピースでないのが思ったほど下がらなかった原因のような気がします。でもこればかりは仕方がないです。桃太さんは冷却板を銅板で作成するそうですが、結果がどうなるか気になります。
制御回路も作成中です。温度コントローラの他に、カメラ電源とリモートシャッターも組み込みます。
温度コントローラは温度のキープと冷却速度をコントロールします。そのほか、結露センサーも組み込みます。電気系に関してはそのうち解説記事を書く予定です。
来週中には完成させたいです。
==追記==
湿度45%でしたが結露はなかったです。
より以前の記事一覧
- D40冷却改造奮闘記 その3 2008.02.17
- D40冷却改造奮闘記 その2 2008.02.13
- D40冷却改造奮闘記スタート 2008.02.07
最近のコメント