Guten Abend Zusammen
Heute stiess meine DIY Flatfieldbox auf mehrfaches Interesse. Deshalb dachte ich mir, ich schreibe eine kleine Doku darüber. Das ganze Projekt war eigentlich als Versuch geplant um zu schauen ob die Idee was taugt, also wurde verbaut was noch rumlag. Echte Resteverwertung 😉 Eigentlich wollte ich, falls es sich bewährt, das ganze noch in schön bauen, aber es funktioniert so gut..
Die Flatfieldbox ist Ascom kompatibel zu dem Alnitak Flat Panel Treiber. Die Lichtquelle wird per PWM geregelt mit einer Frequenz von 980Hz. Das Flackern sollte also bei einer «längeren» Belichtungszeit also keine Rolle spielen. Als erstes möchte ich euch die Funktionsweise zeigen. Ich nutze zum Fotografieren Nina, da ist der Alnitak Treiber Nativ unterstützt. In Nina kann man sich also direkt damit verbinden:
Über Toggle kann man Ein / Ausschalten, über Set die Helligkeit einstellen. Das entscheidende ist aber, dass man im Flat Assistenten von Nina anstelle von Dynamic Exposuretime auf Dynamic Brightness wechseln kann:
Nina ermittelt dann bei einer fixen Belichtungszeit die nötige Helligkeit. Initial muss man da dabei stehen und die Startwerte herausfinden (Min.Flat Panel Helligkeit). Danach ist es aber ein absoluter Fire and Forget Prozess. Jeder Filter wird durchbelichtet ohne irgendeine Aktion. Ein Netter Nebeneffekt ist auch, dass wenn alle Flats die exakt gleiche Belichtungszeit aufweisen, man nur einen Satz Flatdarks braucht. Ich möchte das Panel nicht mehr missen, flats aufzunehmen war vorher nicht gerade mein Hobby
So sieht mein fertiges Restepanel aus:
Leider habe ich während des Aufbaus keine Bilder gemacht.. Der Aufbau ist aber ziemlich einfach. Als Grundplatte habe ich eine Holzplatte genommen und einen Rahmen darauf geschraubt (gleich wie der obere Rahmen auf dem Bild). Auf die Grundplatte habe ich Ledstreifen befestigt, Bahn an Bahn. Auf den ersten Rahmen habe ich eine PET Folie auf beiden Seiten mit feinem Schleifpapier angeschliffen, als ersten Diffusor. Als zweiten Diffusor habe ich noch weissen Stoff genommen und mit dem zweiten Holzrahmen zusammengeschraubt. Der dient auch als Schutz vor dem Runterfallen.
Die Holzrahmen sind bei mir rund 20mm dick. Vielleicht würde es auch schmaler funktionieren und vielleicht würde auch ein Diffusor reichen, da es funktioniert habe ich nicht weiter getestet
Materialliste:
- 12V Ledstreifen, Weiss, hell und breiter Abstrahlwinkel. (Wer mit Farbkamera arbeitet, sollte auch darauf achten dass es gleichmässiges/neutrales Weiss ist)
- Holzplatte und Rahmen
- Petfolie
- Weisser Stoff
und etwas Kabel um die Led Streifen zu verkabeln
Steuerung:
Die Steuerung ist äussert einfach und unspektakulär: Ein Arduino Nano und ein FET, das ist alles!
An Pin D5 wird das Gate angeschlossen, Ground auf Source und Drain auf den Ground Anschluss der Led Streifen. Das Plus der Leds muss auf die 12V Versorgung. Ich werde da noch ein Schema Zeichnen und schauen welchen FET Typen ich da genutzt habe, die Bauteilwahl ist aber ziemlich unkritisch.
Der Arduino muss dann über die Arduino IDE programmiert werden, hier der Code:
volatile int ledPin = 5;
int brightness = 0;
int LEDStatus = 0;
int Id = 10;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
analogWrite(ledPin, 0);
}
void loop()
{
if( Serial.available() >= 6 )
{
char* cmd;
char* data;
char temp[10];
int len = 0;
char str[20];
memset(str, 0, 20);
Serial.readBytesUntil('\r', str, 20);
cmd = str + 1;
data = str + 2;
switch( *cmd )
{
//Ping
case 'P':
sprintf(temp, "*P%dOOO\n", Id);
Serial.print(temp);
break;
//light on
case 'L':
sprintf(temp, "*L%dOOO\n", Id);
Serial.print(temp);
LEDStatus = 1;
analogWrite(ledPin, brightness);
break;
//light off
case 'D':
sprintf(temp, "*D%dOOO\n", Id);
Serial.print(temp);
LEDStatus = 0;
analogWrite(ledPin, 0);
break;
//Set brightness
case 'B':
brightness = atoi(data);
if( LEDStatus == 1 )
analogWrite(ledPin, brightness);
sprintf( temp, "*B%d%03d\n", Id, brightness );
Serial.print(temp);
break;
//Get brightness
case 'J':
sprintf( temp, "*J%d%03d\n", Id, brightness);
Serial.print(temp);
break;
//Get status
case 'S':
sprintf( temp, "*S%d%d%d%d\n",10, 0, LEDStatus, 0);
Serial.print(temp);
break;
//Get firmware version
case 'V':
sprintf(temp, "*V%d003\n", Id);
Serial.print(temp);
break;
}
while(Serial.available() > 0 )
Serial.read();
}
}
Alles anzeigen
Ich hoffe das hilft euch, bei fragen schiesst los
CS, Seraphin