Go Down

Topic: Vorstellung (Read 27745 times) previous topic - next topic

bohne

Super!
Bedenke aber, dass der Sensor bei Segor höchstwahrscheinlich diese Möglichkeit nicht bietet!

Vielleicht ist der Sensor aber in der Automatik sogar besser... Man kann das erst wissen wenn man es probiert hat.

Ich wette, dass noch niemand mit einem Maussensor einen Stern oder Planeten getrackt hat!
Alles Verrückte hier im Forum :)
http://www.dorkbot.de
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236434254
http://www.luminet.cc

Poldi

Hallo!

Nun muss ich auch mal meinen Senf dazu geben ;-)

Bin ebenfalls total begeistert über diesen Beitrag! Respekt!

Bin auf weitere Ergebnisse gespannt.

Lieben Gruß
Poldi

neubi

#62
Dec 09, 2009, 11:48 pm Last Edit: Dec 09, 2009, 11:54 pm by neubi Reason: 1
Hallo,

mittlerweile habe ich festgestellt, dass der Maussensor nicht empfindlich genug ist, um schwächere Sterne zu erfassen. Ich verwende jetzt meine hochempfindlichen Videokameras und kann damit auch sehr lichtschwache Sterne zum Tracken verwenden. Die Bilderfassung und -auswertung mache ich mit Visual Basic Express 2008.  Das Ergebnis der Auswertung, d.h. die gemessene Abweichung des Sterns von der Ursprungsposition sende ich in Form von seriellen Steuersignalen an den Arduino, der diese entgegennimmt und zwei Schrittmoren ansteuert.

Beim Testen habe ich festgestellt, dass der Arduino zahlreiche Steuersignale ignoriert, was dazu führt, dass das Zielobjekt nicht sauber getrackt wird. In C/C++ bin ich nicht besonders bewandert und vermute, dass der Sketch einige Macken hat. Vielleicht kann mir hier jemand weiterhelfen? :'(

Arduino-Code:
Code: [Select]

void lauschen()
{

 i = 0;
 if(Serial.available() > 0)
 {
   while(Serial.available() > 0)
   {
     charArray[i] = Serial.read();
     i++;
   }

   charArray[i] = '\0';

   char a[12];
   int n;
   char rest[128];

   sscanf(charArray, "%[^:]%d %[^\0\n]", a, &n, rest);


 if (atoi(a) == 1)
   {
     DEC_Motor.step(1, FORWARD, MICROSTEP);
     Serial.println("    <-- -DEC");
   }

   if (atoi(a) ==2)
   {
     DEC_Motor.step(1, BACKWARD, MICROSTEP);
     Serial.println("    <-- +DEC");
   }

   if (atoi(a) == 3)
   {
     RA_Motor.step(1, BACKWARD, MICROSTEP);
     Serial.println("    <-- -RA");
   }

   if (atoi(a) == 4)
   {
     RA_Motor.step(1, FORWARD, MICROSTEP);
     Serial.println("    <-- +RA");
   }
 
 }
 else
 {
   // Serial.println("No data.");
 }
 delay(200);
}



VB Code:

Code: [Select]


 If dY > 1 Then
               writeSerial("1")
               Log.Items.Add("--> -DEC")
               Log.SelectedIndex = Log.Items.Count - 1
 End If

If dY < -1 Then
               writeSerial("2")
               Log.Items.Add("-->+DEC")
               Log.SelectedIndex = Log.Items.Count - 1
End If

If dX > 1 Then
               writeSerial("3")
               Log.Items.Add("--> -RA")
               Log.SelectedIndex = Log.Items.Count - 1
End If

If dX < -1 Then
               writeSerial("4")
               Log.Items.Add("--> +RA")
               Log.SelectedIndex = Log.Items.Count - 1
End If



Public Sub writeSerial(ByVal command As String)
If guiding = True Then
       Try
               If Not mySerialPort.IsOpen Then
                   mySerialPort.Open()
               End If
               mySerialPort.WriteLine(command)
           End If
       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try
End Sub


Gruß Jürgen

neubi

#63
Dec 27, 2009, 12:12 am Last Edit: Dec 27, 2009, 12:15 am by neubi Reason: 1
Hallo,

heute abend hatte ich endlich Gelegenheit, die Steuerung zu testen.

Anbei zwei Screenshots vom Versuchsaufbau und der Steuersoftware, die ich mit VB 2008 zusammengebastelt habe (Die Maske sieht noch recht chaotisch aus ). Im kleinen schwarzen Quadrat auf dem Negativbild ist der Stern, der getrackt wird. Jeweils das hellste Objekt im Quadrat wird verwendet.  Die Kamera ist eine Mintron mit 50mm Objektiv, angeschlossen an eine TV-Karte am PC im Keller.  Die eigentliche Arbeit macht das VB-Programm, das das Kamerabild auswertet und anschließend die Steuerbefehle an den Arduino sendet. Der quittiert nach der Drehung der Schrittmotoren mit einer Antwort, die im Statusfenster rechts oben erscheint. Bewegen kann man die Kamera entweder über die Software oder alternativ über vier Pushbuttons.

Für normale Astroaufnahmen brauche ich nicht mal ein Leitrohr, weil ich die einzelnen Video-Frames nicht nur zum Guiding verwenden, sondern auch als Bildsequenz abspeichern und anschließend weiterverarbeiten kann.

Die ganze Sache scheint zu funktionieren (Der Screenshot wurde nach ca. 25 Minuten Tracking bei Halbmond und leicht bewölktem Himmel gemacht). Daher werde ich jetzt mein Teleskop umrüsten. Ich will neben der Steuerung der beiden Achsen zusätzlich noch einen Autofokus, also eine automatische Scharfstellung der Optik realisieren. Mal sehen, ob das klappt.

Wenn ich damit fertig bin, werde ich hier wieder darüber berichten.

Herzlichen Dank für die vielen Tipps und Euere Hilfe!

Gruß Jürgen




Go Up