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
teleskop_steuerung_fuer_c8 [2019/06/24 09:29] torsten.roehlteleskop_steuerung_fuer_c8 [2020/11/22 16:19] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 43: Zeile 43:
 ==== Bau und Inbetriebnahme der Steuerung ==== ==== Bau und Inbetriebnahme der Steuerung ====
  
-===  erste Schritte: Software ===+Zuerst wird ein virtuelles Java-Teleskop in den Grundzügen vorgestellt (Projekt A). Da es das Ziel ist,ein reales C8-Teleskop anzusteuern, wird anschließend auf echte Hardware (Arduino-Nano) umgestiegen. Allerdings entwickeln wir auch hier vorerst ein virtuelles (simuliertes) Teleskop (Projekt B). 
 +Das im Projekt B entworfene virtuelle Arduino-Teleskop dient als Skelett für die eigentliche Software der Steuerelektronik (Projekt C). Außerdem wird noch ein INDI-Treiber zur Verfügung gestellt, so dass alle INDI-Client Programme verwendet werden können.
  
-1. Virtuelle serielle Schnittstelle erzeugen 
  
- socat -d -d PTY,link=/dev/ttyUSB60 PTY,link=/dev/ttyUSB61 +  Projekt A: [[virtuelles Java-Teleskop]] 
- +  * Projekt B: [[virtuelles Arduino-Teleskop]] 
-2.Rechte setzen +  Projekt C: [[DIY Teleskop-Steuerung]] 
- +
- # chmod 777 /dev/ttyUSB6* +
- +
-3. Testen +
- i) auf der konsole mit:echo ":GD#" > /dev/ttyUSB60 +
-test01.java sollte nachricht anzeigen +
- +
-ii) mit stellarium +
-lx200 teleskop einrichten mit /dev/ttyUSB60 als device +
- +
-[4] schnittstelle muss häufig neueingerichtet werden (schritte 1 + 2 ) +
- <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> +
- +
- +
-[[DIY Teleskop-Steuerung]] +
    
  
teleskop_steuerung_fuer_c8.1561368554.txt.gz · Zuletzt geändert: 2020/11/22 16:51 (Externe Bearbeitung)