Benutzer-Werkzeuge

Webseiten-Werkzeuge


virtuelles_arduino-teleskop

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
virtuelles_arduino-teleskop [2019/06/29 19:49] – angelegt torsten.roehlvirtuelles_arduino-teleskop [2020/11/22 16:19] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 3: Zeile 3:
 ===== Übersicht ===== ===== Übersicht =====
  
-== Software ==+Zwei (virtuelle, d.h. simulierte) Teleskope werden entwickelt. 
 +  - einfaches Teleskop mit Stellarium als Client 
 +  - virtuelles Teleskop mit INDI-Treiber 
 +Verwendet wird jeweils ein Arduino-Nano. Die erste Variante zeigt wie man das Java-Beispiel (Projekt A) auf ein Arduino überträgt. 
  
-  +Die zweite Variante ist dann der Skelett-Treiber, der  mit der INDI-Schnittstelle kommuniziert. Dadurch können alle INDI-Clients (Stellarium, Skychart, KStars,...) verwendet werden. 
-===== Details =====+
  
 +===== einfaches Teleskop mit Stellarium als Client =====
  
- 
- 
-==== Software ==== 
  
  
  
 ==== Installation und Inbetriebnahme ==== ==== Installation und Inbetriebnahme ====
 +Öffnen der //Arduino-IDE// (einstellen des Nano und des verwendeten USB-Ports). Das Programm auf einen //Nano// übertragen. Die IDE kann geöffnet bleiben. Jetzt in //Stellarium// ein Teleskop hinzufügen und den von der IDE verwendeten USB-Port eintragen. Damit steht ein minimales (virtuelles da keine weitere Hardware verwendet wird) //Arduino-Teleskop// zur Verfügung.
  
 == Details == == Details ==
  
 +Im Vergleich zu dem Java-Programm (Projekt A) wird das Meade-Protokoll hier exakt verwendet. Stellarium verwendet allerdings wird in zwei Befehlen ein zusätzliches Leerzeichen, welches im Protokoll nicht vermerkt ist. Da im Java Programm (Projekt A) mit //Strings// und //Trim// (entfernen von Leerzeichen ) gearbeitet wird, im Arduino C-Programm aber mit Byte-Array muss man hier sehr sorgfältig vorgehen.
  
 +Beim Schwenken in //Stellarium// werden gleich die Zielkoordinaten auf die aktuellen  Koordinaten übertragen, um den Code einfacher zu gestalten. 
 +==== Quellcode Arduino-Stellarium Teleskop ====
  
  
-===== Quellcode Projekt B =====+<code c>
  
- 
-<code c> 
 /* /*
  * driver demo Stellarium-Arduino  * driver demo Stellarium-Arduino
Zeile 42: Zeile 43:
 const byte PROTOCOL_GD =  55; // :GD#   get DEC const byte PROTOCOL_GD =  55; // :GD#   get DEC
 const byte PROTOCOL_Q =  56;  // :Q# Bewegung stoppen const byte PROTOCOL_Q =  56;  // :Q# Bewegung stoppen
-const byte PROTOCOL_SR =  57; // setze RA FORMAT  :SrHH:MM:SS# +const byte PROTOCOL_SR =  57; // setze RA FORMAT  :Sr HH:MM:SS# 
-const byte PROTOCOL_SD =  58; // setze DEC FORMAT :SdsDD*MM:SS#+const byte PROTOCOL_SD =  58; // setze DEC FORMAT :Sd sDD*MM:SS#
 const byte PROTOCOL_MS =  59; // :MS# Bewegung zum Ziel starten const byte PROTOCOL_MS =  59; // :MS# Bewegung zum Ziel starten
  
Zeile 79: Zeile 80:
  
       case PROTOCOL_SR:       case PROTOCOL_SR:
-        // RA empfangen :SrHH:MM:SS# bestätigen mit 1+        // RA empfangen bestätigen mit 1
         buffer[0] = 49;         buffer[0] = 49;
         send(buffer, 1);         send(buffer, 1);
Zeile 85: Zeile 86:
  
       case PROTOCOL_SD:       case PROTOCOL_SD:
-        // DEC empfangen :SdsDD*MM:SS#  bestätigen mit 1+        // DEC empfangen bestätigen mit 1
         buffer[0] = 49;         buffer[0] = 49;
         send(buffer, 1);         send(buffer, 1);
Zeile 161: Zeile 162:
  
   if (input[0] == ':' && input[1] == 'M' && input[2] == 'S' && input[3] == '#') {   if (input[0] == ':' && input[1] == 'M' && input[2] == 'S' && input[3] == '#') {
- 
     return PROTOCOL_MS;     return PROTOCOL_MS;
   }   }
Zeile 175: Zeile 175:
  
 } }
 +</code>
  
  
  
-</code> +===== virtuelles Teleskop mit INDI-Treiber ===== 
-<WRAP center round info 90%>+ 
 +Der INDI-Treiber ist in C(C++) geschrieben, diese Treiber sind standardisiert. Das bedeutet man muss sich zuvor in die INDI-Treiber-Entwicklung  https://indilib.org/ einlesen. Und die mitgelieferten Beispiele und Tutorials durcharbeiten. Voraussetzung sind neben Linux gute Kenntnisse von C/C++ ansonsten kann es etwas holprig werden.  
 + 
 +Sind die voraussetzen erfüllt ist es relativ einfach die mitgelieferten Beispiele zu verstehen und sich nach einigen Tagen einen Überblick über die Materie zu verschaffen. 
 + 
 +Der grundsätzliche Aufbau entspricht dem folgenden Schema: 
 +{{ :arduino-skelett.png?600 |}} 
 + 
 + 
 + 
 + 
 + 
 +==== Installation und Inbetriebnahme ==== 
 + 
 +Im INDI //Developer Manual// ist beschrieben, wie eine Entwicklungsumgebung eingerichtet werden kann und wie Software (Eigene, Third-Party oder Beispiel-Programme) übersetzt werden. 
 + 
 +  * https://github.com/indilib/indi/tree/master/libindi/drivers/skeleton Startpunkt für den eigenen Teleskoptreiber ist: //mount_driver//. Dieser Treiber wird in ein eigenes Verzeichnis kopiert und angepasst. 
 +== Details == 
 + 
 +== Software == 
  
-</WRAP> 
  
  
virtuelles_arduino-teleskop.1561837746.txt.gz · Zuletzt geändert: 2020/11/22 16:52 (Externe Bearbeitung)