Beschreibung des Steuerungsprogramms Version 1.2.5
Ich veröffentliche die zweite Version des Steuerungsprogramms für HW 1.0. Obwohl umfangreicher, ist es immer noch nur eine Testversion. Nehmen Sie das Programm hauptsächlich als Informationsquelle für diejenigen, die meine Arbeit fortsetzen möchten. Ich werde wahrscheinlich keine andere Version des Programms zur Steuerung von HW 1.0 schreiben. Die Basis des Programms ist weiterhin der Webserver node.js und die Kommunikation mit ihm über Javascript.
Die Haupterweiterung des Programms ist das Hinzufügen von 20 voreingestellten Tasten. Nach dem Füllen mit Daten ist es möglich, die Schale automatisch in vorgegebene Positionen zu drehen. Diese Version des Programms enthält jedoch keine benutzerdefinierten Voreinstellungen. Dies muss manuell mit einem Texteditor erfolgen.
Die Einstellungsdaten werden in der Datei config.ini gespeichert. Jeder Abschnitt enthält drei Elemente:
- PosAZ - Anzahl der Azimutzählerimpulse
- PosEL - Anzahl der Höhenzählimpulse
- Name - voreingestellte Nummer und Satellitenname
Der erste Abschnitt [Default] enthält die aktuelle Position. Es wird nach jeder Positionsänderung gespeichert. Es wird zum Zeitpunkt des Programmstarts geladen. Die folgenden Abschnitte [mem01] bis [mem20] sind einzelne Voreinstellungen. Ihre Werte sind anfänglich Null. Dies verhält sich so, als wären sie ausgeschaltet und nichts wird gestartet, wenn die voreingestellte Taste gedrückt wird. Erst nach dem Ausfüllen der Daten werden die Tasten aktiviert und das Zurücksetzen des Gerichts auf die neue Position beginnt.
Nach dem Verbinden des Webbrowsers mit dem Server wird der folgende Bildschirm angezeigt:
Durch Drücken einer beliebigen Pfeiltaste wird der entsprechende Motor gestartet. Beim Loslassen stoppt der Motor wieder. Wenn Sie die Taste drücken, die Maus nach außen bewegen und die Maus loslassen, läuft der Motor weiter. Klicken Sie auf dieselbe Schaltfläche, um sie zu stoppen. Vorsicht vor diesem Fehler. Wenn Sie den Pfeilmotor längere Zeit laufen lassen müssen, müssen Sie die Maus über die Taste halten.
Wenn der Motor abgestellt ist, wird die aktuelle Position in den Fenstern unter "Azimuth" und "Elevation" angezeigt. Not Set wird im oberen Fenster angezeigt, das für den Satellitennamen festgelegt ist. Die aktuelle Position wird beim Zurückspulen nicht angezeigt. Es gibt also keine Möglichkeit zu wissen, dass die Motoren laufen. Das Programm muss jedoch im Terminalfenster ausgeführt werden und die Positionsänderung wird dort kontinuierlich angezeigt.
Klicken Sie einfach auf die voreingestellten Schaltflächen mem01 bis mem20. Wenn die Azimut- und Höhenwerte Null sind, passiert nichts. Wenn sie einen Wert ungleich Null enthalten, startet der Positionierer die Motoren und stellt die Schüssel auf die neue Position. Während der Bewegung ändert sich nichts auf dem Bildschirm, so dass wiederum nicht bekannt ist, dass die Motoren aktiv sind. Dies kann bei größeren Entfernungen mehrere zehn Sekunden dauern. Selbst in diesem Fall wird die Positionsänderung jedoch im Terminalfenster angezeigt. Nach dem Anhalten werden die Werte der neuen Position in den jeweiligen Fenstern angezeigt. Der Satellitenname wird im oberen Fenster angezeigt. Alle drei Daten werden in der Datei config.ini im Abschnitt [Default] gespeichert.
So programmieren Sie Presets:
In der Datei config.ini sind Azimut- und Höhenwerte für alle Voreinstellungen Null. Dadurch wird sichergestellt, dass das Programm nicht auf diese Einstellungen reagiert, bevor es richtig eingestellt wird. Im Abschnitt [Default] werden die aktuellen Positionen auf 50000 eingestellt. Infolgedessen können die Positionswerte beim ersten Starten der Motoren keine negativen Zahlen erreichen, da der maximale Bewegungsbereich ungefähr 30.000 Impulse beträgt.
Zuerst müssen Sie beide Nullpunkte setzen. Halten Sie die linke Pfeiltaste gedrückt, um den Nullpunkt des Azimuts festzulegen. Der Wert der Azimutposition in der ersten Spalte nimmt im Terminalfenster ständig ab. Die dritte Spalte signalisiert, dass der Nullpunkt erreicht wurde, indem der Wert "True" in "False" geändert wird. Zu diesem Zeitpunkt muss der Motor abgestellt werden. Aufgrund der Trägheit des Motors überschreitet der Positionierer den korrekten Nullpunkt. Daher müssen Sie immer noch mit der rechten Pfeiltaste zurückkehren. Wenn der Wert in der dritten Spalte im Terminalfenster von "False" auf "True" wechselt, hat der Positionierer den korrekten Nullpunktwert erreicht. Auch wenn der Motor nicht genau zu diesem Zeitpunkt gestoppt werden kann, setzt das Programm den Azimutwert auf 0 und berechnet dann die richtige Position. Dies setzt die Null-Azimutposition.
In ähnlicher Weise ist es notwendig, die Nullhöhenposition einzustellen. Halten Sie zuerst die Abwärtspfeiltaste gedrückt. Der Höhenwert nimmt im Terminalfenster in der zweiten Spalte ab. In der vierten Spalte wird das Erreichen des Nullpunkts durch Ändern des Werts von "True" in "False" angezeigt. Zu diesem Zeitpunkt muss der Motor abgestellt werden. Mit dem Aufwärtspfeil kehren wir wieder etwas zurück. In dem Moment, in dem der Wechsel in der vierten Spalte des Terminalfensters von "False" zu "True" vom Programm als Erreichen des richtigen Nullpunkts aufgezeichnet wird, wird der Höhenwert zurückgesetzt und von nun an die richtige Position berechnet.
WICHTIGER HINWEIS: Mein EGIS-Positionierer ist nicht dafür ausgelegt, sich über Nullpunkte hinaus zu bewegen. Daher ist es sehr wichtig, sich den Nullpunkten sehr vorsichtig zu nähern und die Motoren nach Erreichen so schnell wie möglich abzustellen. Andernfalls kann der Stellungsregler mechanisch beschädigt werden.
Nach dem Setzen der Nullpunkte können wir uns auf die einzelnen Voreinstellungen konzentrieren. Verwenden Sie die Pfeile, um zum ausgewählten Satelliten zu gelangen. Wir notieren den Wert seines Azimuts und seiner Höhe zusammen mit dem Namen des Satelliten auf Papier. Wir können dies für alle erforderlichen Satelliten wiederholen. Sobald wir die erforderlichen Daten gesammelt haben, schreiben wir sie mit einem Texteditor in die Einstellungen in der Datei config.ini. Nach jeder Änderung in dieser Datei müssen wir das Programm node.js neu starten, um die neuen Daten zu laden. Ändern Sie die Werte im Abschnitt [Default] niemals manuell. Dies würde die Integrität der aktuellen Positioniererposition verletzen und die Nullpunkte müssten erneut gesetzt werden.
Nach einiger Zeit der Verwendung dieser Testversion des Treibers wurde mir klar, dass nicht klar ist, welcher Satellit unter welcher Voreinstellung gespeichert ist. Daher habe ich nach dem Programmieren der Einstellungen die Namen der Satelliten zur Datei index.html hinzugefügt. Am Ende werden die voreingestellten Tasten als button mit dem Wert id = "memory01" bis "memory20" geschrieben. Wenn wir diesen Schaltflächen im Titelele die entsprechenden Satellitennamen hinzufügen, werden sie angezeigt, wenn Sie mit der Maus über die Schaltfläche fahren.
Aus professioneller Sicht weist das Programm viele Mängel auf. Es ist jedoch immer noch nicht für den normalen Gebrauch vorgesehen. Es geht nur darum, die Funktionalität der Hardwareversion 1.0 zu testen. Trotzdem muss ich darauf hinweisen, dass ich nicht für alle Fehler verantwortlich bin, die während des Betriebs auftreten können. Das Programm basiert auf der Ausführung von Javascripts. Und es hängt sehr davon ab, wie welche Webbrowser auf Javascripts zugreifen. Während des Tests stellte ich schnell fest, dass sich das Programm bei Verwendung von IE11 sehr abnormal verhält. Aus diesem Grund habe ich während der Entwicklung schrittweise auf Google Chrome umgestellt. Damit verhalten sich alle Funktionen des Programms korrekt. Ich habe keine anderen Browser getestet.
Die Quelltexte des Programms können Sie hier herunterladen.