Benutzer-Werkzeuge

Webseiten-Werkzeuge


teleskop_steuerung_fuer_c8

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
teleskop_steuerung_fuer_c8 [2019/06/24 09:39] torsten.roehlteleskop_steuerung_fuer_c8 [2019/06/24 10:23] – [Bau und Inbetriebnahme der Steuerung] torsten.roehl
Zeile 42: Zeile 42:
        * <color #ed1c24>↓</color> Nachteil: Gute Linux Kenntnisse sowie solide C++ Kenntnisse sind für die Treiberdentwicklung notwendig. Kann auch als Vorteil gesehen werden, da mit sich in die Materie einarbeiten darf ;-)        * <color #ed1c24>↓</color> Nachteil: Gute Linux Kenntnisse sowie solide C++ Kenntnisse sind für die Treiberdentwicklung notwendig. Kann auch als Vorteil gesehen werden, da mit sich in die Materie einarbeiten darf ;-)
 ==== Bau und Inbetriebnahme der Steuerung ==== ==== Bau und Inbetriebnahme der Steuerung ====
 +
  
 ===  Simulation mit Java === ===  Simulation mit Java ===
-Die grundsätzliche Arbeitsweise kann man auch ohne Elektronik (& Teleskop) studieren. Die drei großen Clients (KStart, Skychart und Stellarium) können mit der Indi-Schnittstelle kommunizieren und 
-virtuelle Teleskopmontierungen einbinden. Diese Teleskopsimulatoren sind technisch gesehen INDI-C++-Treiber. Ich erzeuge hier z.B. mit Java eine virtuelle serielle Schnittstelle und benutze "täusche" eine 
-LX200 Montierung vor um dann mit Stellarium dieses viertuelle Teleskop zu verwenden. 
- 
-Die auf diese Weise angelegte  Schnittstelle muss häufig neu eingerichtet werden (Schritte 1 und 2) 
-) und soll nur die grundlegende Kommunikation aufzeigen. 
- 
- 
-1. Virtuelle serielle Schnittstelle erzeugen 
- 
-  socat -d -d PTY,link=/dev/ttyUSB60 PTY,link=/dev/ttyUSB61 
- 
-2.Rechte setzen 
- 
-  # chmod 777 /dev/ttyUSB6* 
- 
-3. Testen 
- 
- i) Konsole 
- 
-  echo ":GD#" > /dev/ttyUSB60 
-   
-Simulator.java sollte Nachricht anzeigen! 
- 
- ii) Stellarium 
- 
-lx200 Teleskop einrichten mit /dev/ttyUSB60 als Device 
- 
- 
- 
- 
- <code java> 
-package test; 
- 
-import com.fazecast.jSerialComm.SerialPort; 
- 
-public class Test01 { 
- 
- public static void main(String[] args) { 
- SerialPort comPort = SerialPort.getCommPorts()[2]; 
- comPort.openPort(); 
- comPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 100, 0); 
- try { 
- while (true) { 
- byte[] readBuffer = new byte[1024]; 
- int numRead = comPort.readBytes(readBuffer, readBuffer.length); 
- 
- if (numRead > 0) { 
- plot(numRead, readBuffer); 
- 
- if(getRADEC(numRead,readBuffer)){ 
- System.out.println("received radec messgage"); 
- writeRADEC(comPort); 
- } 
- if (isGetRA(numRead, readBuffer)) { 
- System.out.println("received ra messgage"); 
- writeRa(comPort); 
- } 
- if (isGetDec(numRead, readBuffer)) { 
- System.out.println("received dec messgage"); 
- writeDec(comPort); 
- } 
- // 
- } 
- Thread.sleep(100); 
- 
- } 
- } catch (Exception e) { 
- e.printStackTrace(); 
- } 
- comPort.closePort(); 
- 
- } 
- 
- static void plot(int numRead, byte[] readBuffer) { 
- System.out.println("Read " + numRead + " bytes."); 
- 
- for (int i = 0; i < numRead; i++) { 
- char c = (char) readBuffer[i]; 
- System.out.print(c); 
- } 
- System.out.println(""); 
- } 
- static boolean getRADEC(int num, byte[] readBuffer) { 
- char c[] = new char[num]; 
- if (readBuffer.length < 1) 
- return false; 
- 
- for (int i = 0; i < num; i++) { 
- c[i] = (char) readBuffer[i]; 
- 
- } 
- 
- if (c[0] == 'e' ) { 
- return true; 
- } 
- 
- return false; 
- } 
-  
- static void writeRADEC(SerialPort p) { 
- 
- String str = "34AB0500,12CE0500#"; 
- byte[] buffer = new byte[18]; 
- byte[] byte_str = str.getBytes(); 
- for (int i = 0; i < 18; i++) 
- buffer[i] = byte_str[i]; 
- 
-// buffer[9] = 0x0D; 
-// buffer[10] = 0x0A; 
- 
- p.writeBytes(buffer, (long) buffer.length); 
- } 
-  
-  
-  
-  
-  
-  
-  
-  
- static boolean isGetRA(int num, byte[] readBuffer) { 
- char c[] = new char[num]; 
- if (readBuffer.length < 4) 
- return false; 
- 
- for (int i = 0; i < num; i++) { 
- c[i] = (char) readBuffer[i]; 
- 
- } 
- 
- if (c[0] == '#' && c[1] == ':' && c[2] == 'G' && c[3] == 'R' && c[4] == '#') { 
- return true; 
- } 
- 
- return false; 
- } 
- 
- static boolean isGetDec(int num, byte[] readBuffer) { 
- char c[] = new char[num]; 
- if (readBuffer.length < 4) 
- return false; 
- 
- for (int i = 0; i < num; i++) { 
- c[i] = (char) readBuffer[i]; 
- 
- } 
- 
- if (c[0] == '#' && c[1] == ':' && c[2] == 'G' && c[3] == 'D' && c[4] == '#') { 
- return true; 
- } 
- 
- return false; 
- } 
- 
- static void writeRa(SerialPort p) { 
- 
- String str = "14:15:00#"; 
- byte[] buffer = new byte[9]; 
- byte[] byte_str = str.getBytes(); 
- for (int i = 0; i < 9; i++) 
- buffer[i] = byte_str[i]; 
- 
-// buffer[9] = 0x0D; 
-// buffer[10] = 0x0A; 
- 
- p.writeBytes(buffer, (long) buffer.length); 
- } 
- 
- static void writeDec(SerialPort p) { 
- String str = "+19*10#"; 
- //"%c%02d%c%02d:%02d#" 
- byte[] buffer = new byte[7]; 
- byte[] byte_str = str.getBytes(); 
- for (int i = 0; i < 7; i++) 
- buffer[i] = byte_str[i]; 
-// 
-// buffer[7] = 0x0D; 
-// buffer[8] = 0x0A; 
- 
- p.writeBytes(buffer, (long) buffer.length); 
- } 
- 
-} 
  
-</code>+[[virtuelles Java-Teleskop]]
  
 +[[virtuelles Arduino-Teleskop]]
  
 [[DIY Teleskop-Steuerung]]  [[DIY Teleskop-Steuerung]] 
teleskop_steuerung_fuer_c8.txt · Zuletzt geändert: 2020/11/22 16:19 von 127.0.0.1