teleskop_steuerung_fuer_c8
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
teleskop_steuerung_fuer_c8 [2019/06/24 09:17] – [Bau und Inbetriebnahme der Steuerung] torsten.roehl | teleskop_steuerung_fuer_c8 [2019/06/24 10:28] – [Bau und Inbetriebnahme der Steuerung] torsten.roehl | ||
---|---|---|---|
Zeile 43: | Zeile 43: | ||
==== Bau und Inbetriebnahme der Steuerung ==== | ==== Bau und Inbetriebnahme der Steuerung ==== | ||
- | === erste Schritte: | + | Zuerst wird ein virtuelles Java-Teleskop in den Grundzügen vorgestellt. Da ein reales C8-Teleskop angesteuert werden soll, wird dann auf echte Hardware (Arduino-Nano) umgestiegen und auch hier vorerst ein virtuelles (simuliertes) Teleskop entworfen. |
+ | Dieses virtuelle Arduino-Teleskop dient dann als Skelett für die Software | ||
- | - virtuelle serielle schnittstelle erzeugen | ||
- | - socat -d -d PTY, | ||
- | - rechte setzen | ||
- | - testen] | ||
- | i) auf der konsole mit:echo ": | ||
- | test01.java sollte nachricht anzeigen | ||
- | ii) mit stellarium | ||
- | lx200 teleskop einrichten mit / | ||
- | [4] schnittstelle muss häufig neueingerichtet werden (schritte 1 + 2 ) | + | [[virtuelles Java-Teleskop]] |
- | < | + | |
- | 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, | + | |
- | try { | + | |
- | while (true) { | + | |
- | byte[] readBuffer = new byte[1024]; | + | |
- | int numRead = comPort.readBytes(readBuffer, | + | |
- | + | ||
- | if (numRead > 0) { | + | |
- | plot(numRead, | + | |
- | + | ||
- | if(getRADEC(numRead, | + | |
- | System.out.println(" | + | |
- | writeRADEC(comPort); | + | |
- | } | + | |
- | if (isGetRA(numRead, | + | |
- | System.out.println(" | + | |
- | writeRa(comPort); | + | |
- | } | + | |
- | if (isGetDec(numRead, | + | |
- | System.out.println(" | + | |
- | writeDec(comPort); | + | |
- | } | + | |
- | // | + | |
- | } | + | |
- | Thread.sleep(100); | + | |
- | + | ||
- | } | + | |
- | } catch (Exception e) { | + | |
- | e.printStackTrace(); | + | |
- | } | + | |
- | comPort.closePort(); | + | |
- | + | ||
- | } | + | |
- | + | ||
- | static void plot(int numRead, byte[] readBuffer) { | + | |
- | System.out.println(" | + | |
- | + | ||
- | 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] == ' | + | |
- | return true; | + | |
- | } | + | |
- | + | ||
- | return false; | + | |
- | } | + | |
- | + | ||
- | static void writeRADEC(SerialPort p) { | + | |
- | + | ||
- | String str = " | + | |
- | byte[] buffer = new byte[18]; | + | |
- | byte[] byte_str = str.getBytes(); | + | |
- | for (int i = 0; i < 18; i++) | + | |
- | buffer[i] = byte_str[i]; | + | |
- | + | ||
- | // | + | |
- | // | + | |
- | + | ||
- | p.writeBytes(buffer, | + | |
- | } | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | 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] == '#' | + | |
- | 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] == '#' | + | |
- | return true; | + | |
- | } | + | |
- | + | ||
- | return false; | + | |
- | } | + | |
- | + | ||
- | static void writeRa(SerialPort p) { | + | |
- | + | ||
- | String str = " | + | |
- | byte[] buffer = new byte[9]; | + | |
- | byte[] byte_str = str.getBytes(); | + | |
- | for (int i = 0; i < 9; i++) | + | |
- | buffer[i] = byte_str[i]; | + | |
- | + | ||
- | // | + | |
- | // | + | |
- | + | ||
- | p.writeBytes(buffer, | + | |
- | } | + | |
- | + | ||
- | static void writeDec(SerialPort p) { | + | |
- | String str = " | + | |
- | //" | + | |
- | byte[] buffer = new byte[7]; | + | |
- | byte[] byte_str = str.getBytes(); | + | |
- | for (int i = 0; i < 7; i++) | + | |
- | buffer[i] = byte_str[i]; | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | + | ||
- | p.writeBytes(buffer, | + | |
- | } | + | |
- | + | ||
- | } | + | |
- | + | ||
- | </ | + | |
+ | [[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