Stand: 13. Januar 2023

Wie das immer auch bei laufenden Projekt-Entwicklungen so ist, so ist das Ziel zwar immer noch das Gleiche, jedoch haben sich Bedingungen und Erkenntnisse auf dem Weg zum Ziel zwischenzeitlich geändert.
Der Azimuth-Rotor ist weiterhin der Stolle 2010. Es ist nun aber auch ein Elevations-Rotor hinzugekommen; ein Kenpro KR-500, wie es ihn baugleich auch von Yaesu gibt. Und auf der Steuerungsseite werde ich nun auch manche Dinge anders machen. ARDUINO UNO, mit 4-zlg. LCD-Anzeige und einer Sainsmart 4er-Relais-Platine bleibt auch. Und so teilt sich bis heute die Entwicklung in mehrere Einzel-Etappen auf.
Los ging es mit der Auswahl der Tracking-Software für den PC. War ich zunächst von ‚SatPC32′ begeistert, so musste ich dann doch (erst einmal) davon Abstand nehmen. Die Alternative war dann ‚Orbitron‚. Ebenfalls eine kostenfreie Software aus dem Internet. Der Grund für die Umorientierung bestand schlicht darin, dass ich nicht wusste wie ich denn die aufbereiteten Positions-Daten der einzelnen Satelliten aus dem PC auslesen soll. So arbeiten beiden Programm immer noch mit dem alten Verfahren ‚DDE‘, welches in der Vergangenheit in Verbindung mit RS232-Schnittstellen verwendet wurde  –  aber eben diese Schnittstelle gibt es heute kaum noch. Wozu auch ? – Wir haben USB !  Und um nun eben doch die Daten auslesen zu können, gibt es für Orbitron ein kleines VBA-Programm, welches die DDE-Signale in Signale für die USB-Schnittstelle umkonvertiert. Und damit erst lassen sich die Positionsdaten, oder auch SOLL-Vorgaben, mit dem ARDUINO vom PC kommend auslesen. Denn jetzt gebe ich im (VBA-)Programm an ‚an welchem Port denn der ‚UNO‚ angeschlossen ist‘ und dann werden die Daten via Serial.read  im Sekunden-Takt empfangen. Vermutlich wird es ein ähnliches Konvertierungs-Programm auch für die Software ‚SatPC32‘ geben – Ich habe nur noch keines gefunden.
Die 2. Etappe ist dann eben der Empfang und die Verarbeitung der Daten vom PC. Dieses sind dann ja die SOLL-Vorgaben für die spätere Steuerung. Zusätzlich soll in dieser Etappe auch gleich von Beginn an die Anzeige der Positionen erfolgen.
Stichpunkte: String-Variable (Zeichensatz), substring(Wert1, Wert2) = Teil-String, automatische Positions-Erkennung von Zahlen und Zeichen Suche4=String.indexOf(„z“), Umwandlung von String nach Integer = el.substring(0, Suche4).toInt() 
Im 3. Schritt folgt dann die Hinzunahme der Relais, sowie deren Test-Lauf
Stichworte: Anschluß der jeweils beiden Relais-Mittenkontakte mit Verriegelungs-Funktion
In der 4.Etappe sollen die IST-Werte – zunächst nur von dem Elevations-Rotor – auf dem Arduino eingelesen und ausgewertet werden.
Stichworte: Umwandeln der empfangenen, bzw. anliegenden Spannungswerte, die sich aus der rückgemeldeten Position der Rotor-Stellung ergibt. 6-adrige Steuerleitung – 5-adrig, oder 4-adrig ?  ‚Stolle 2010‘ mit den originalen 20VAC betreiben, oder auch mit den 29VAC einer Kenpro-Steuerung ? Verteilung der 5V, sowie des GND auf dem Breadboard, einschl. der 1KΩ-Spannungsteiler-Widerstände für die Rückmelde-Spannung vom jeweiligen Rotor.
Die 5.Etappe ist dann die Einrichtung der automatische Steuerung für die Elevation, aufgrund der SOLL-Vorgabe und des aktuellen IST-Wertes.
Stichworte: SOLL/IST-Vergleich, Korrektur-Richtung, Wartezeiten zwischen dem Aus-/Ein- und Umschalten, Anschlagpunkte, Ruhe-Position

Stand: 20. November 2022

Hier folgt das nächste Projekt für Herbst/Winter 2022/2023 – begonnen am 20.08.2022. Dabei geht es darum für zwei (!) Stolle-Rotoren 2010, aus den Mitte-70ern, eine Arduino-Steuerung aufzubauen, die die bestehende/n ‚manuelle/n‘ Steuerung/en ersetzen soll. Und das dann am Ende für die Azimut-Steuerung (Horizontal), wie auch zusätzlich für die Elevations-Steuerung (Vertikal). Zudem soll dann testhalber anfangs ein automatischer Sonnen-Nachlauf erfolgen, um darauf aufbauend einen automatischen Satelliten-Mitlauf entwickeln zu können.

(20.11.2022) Dieser ursprüngliche Aufbau-Plan (mit zwei Stolle 2010) ist schon wieder weiter optimiert worden. Weiterhin ist ein ‚Stolle 2010‘ für die horizontale Richtungswahl (Azimut) eingeplant. Die Elevation übernimmt aber zwischenzeitlich ein ‚Kenpro KR500‘, den ich kürzlich erworben habe.

Erster Schritt ist es zunächst, die vorhandene manuelle Steuerung durch Drehen des Reglers auf der Oberseite des Steuergerätes, durch eine Arduino-Steuerung zu ersetzen. Geplant ist in dieser ersten Ausbaustufe möglichst auch der Einsatz eines speziellen Chips aus einem meiner vorherigen Bau-Projekte – dem 10MHz-Oszillator, mit dem sich in 256 Schritten ein Widerstand bis 100KOhm einstellen lässt. Dabei handelt es sich um den MCP4261.   –> (23.08.2022) Der letzte Gedanke hat sich schon erledigt – So benötige ich ein normales 1KOhm-Poti und werde damit bei der bestehenden Variante bleiben. Nachdem ich nun die Bestandsaufnahme bei dem Aufbau und der Funktionsweise des bestehenden Rotor und der Steuerung abgeschlossen habe, wird die Vorgehensweise beim Umbau wie folgt sein:

Wie schon DL6DCA in seinem Bericht_über_Rotorumbau.pdf (darc.de) beschrieben hat, werde auch ich an sich nur noch den Trafo und den Koppel-Kondensator aus dem Original-Steuergerät verwenden.
Der gravierende Unterschied zu DL6DCA besteht aber bei mir darin, dass ich eine Steuerung aufbauen will, die nicht nur manuell über zwei Drucktasten zu bedienen sein wird, sondern eben ‚ARDUINO-gesteuert‘ sein soll. Dazu habe ich im Rotor-Gehäuse die beiden Leitungen am Schleifer des dortigen 1KOhm-Widerstandes abgelötet – die Leitungen aber wieder miteinander verlötet. (Klingt etwa kryptisch, daher …  am Poti-Schleifer waren zwei Kabel angeschlossen; die Verbindung der beiden Kabel habe ich bestehen lassen, den Schleifer-Kontakt am Poti jedoch aus dieser Verbindung entfernt und separat verdrahtet). (17.09.2022  Wobei, ……  an sich benötige ich doch nur den Kontakt vom Schleifer und einen einzigen Aussenkontakt. Der zweite Aussenkontakt wird doch gar nicht benötigt ???!  –> Muß ich mal ausprobieren !!) Der Grund: Es werden die bisherigen drei Leitungen zum Rotor-Motor, für den Rechts- und Linkslauf, benötigt (Klemmen 1,4,und 5). Und dann werden nochmals drei Leitungen für die drei Poti-Anschlüsse benötigt. Denn bei den bestehenden beiden Kabeln handelt es sich um den Mitten-Anschluß zum Motor, der weiterhin benötigt wird. Der allerdings bisher auch der Mitten-Anschluß des Poti war. Für den nun frei gewordenen Schleifer-Anschluß des Poti muß nun noch eine zusätzliche, weitere Steuerleitung verwendet werden. Damit sind es dann auch in Zukunft nicht mehr 5 Adern zum Rotor, sondern es wird eine 6-adrige Steuerleitung.  (20.11.22) Jetzt nehme ich zwar weiterhin einen Außenkontakt vom Poti (bestehender Anschluß 2) und dann kommt als zweiter Anschluß (Anschluß 3) nicht der zweite Außenanschluß am Poti infrage, sondern jetzt ist es ersatzweise der Mittenkontakt (Schleifer) – der ja frei geworden ist. Dieser Mittenkontakt wird dann im Steuergerät mit Masse (GND) verbunden. Der Außenkontakt des Poti im Rotor-Gehäuse wird über einen 1KOhm-Widerstand an +5V (Arduino-Level) angeschlossen. Der ARDUINO wird dann mit Pin ‚A0‘ über die Steuerleitung an ‚Anschluß 3‘ des Poti im Rotorgehäuse verbunden. Dadurch erhalte ich wieder eine Referenz-Spannung, von der aus ich im Programm die aktuelle Beam-Richtung umrechnen, bzw. ermitteln kann.
Bei dieser Lösung hat mir Burkhard Kainka, DK7JD, ‚mal eben‘ einen Schaltungsvorschlag erstellt. Da wäre es sogar möglich gewesen, die Steuerung über ’nur 4 Leitungen‘ zu realisieren. (Von wegen neues 6-adr. Steuerkabel ! Jetzt bleibt es zwar beim bestehenden 5-adr. Kabel; aber sogar ein 4-adr. Kabel hätte funktioniert.)

Damit habe ich nun exakt die gleiche Situation geschaffen, wie das auch in der Skizze von DL6DCA der Fall ist. Jetzt schließe ich den Masse-Anschluß vom Arduino an den einen Mittenkontakt (Klemme 2) des Poti an, den +5V-Anschluß vom Arduino schließe ich am anderen Außenkontakt (Klemme 3) an und dieser eine Aussen-Kontakt  mittige Schleiferkontakt (zusätzliche Leitung) wird zum Arduino-Pin ‚A0‘ geführt. Diesen Pin frage ich im Sketch ab – lese also den Meßwert aus  – und rechne den dann um auf eine Gradzahl von 0°- 360°, den ich dann letztlich über ein zweizeiliges LCD-Display anzeige.

Die eigentlichen Ansteuerungen des einen -, wie auch später zweiten Rotors,  wird über eine Relais-Platine von ‚Sainsmart‘ umgesetzt, bei der sich vier 5V-Relais auf einem Breakout-Board befinden, die jeweils für eine Schaltleistung von 10A, bei 250V ausgelegt sind. Das dürfte bei 20V großzügig genug dimensioniert sein.  😉 Zudem erfolgt der Schaltimpuls ‚galvanisch getrennt‘, oder ‚potentialfrei‘ über auf dem Board befindliche Opto-Koppler. Und es ist auch an jeweils eine ‚Freilauf-Diode‘ je Relais gedacht, mit denen sich induktive Spannungsspitzen vermeiden lassen. So eine 4-Kanal-Einheit kostet gerade mal 5,50 €.

Und hier sind die wesentlichen Bauteile schon mal zusammengesucht. Auf der rechten Seite der Trafo und Koppel-Kondensator aus dem alten Steuergerät. Darunter einen Schalter, sowie eine Netz-Sicherung. Und auf der linken Seite das zweizeilige LCD-Display, die 4-Kanal-Relaiseinheit, wie auch ein ‚UNO‘. Fehlen noch die Bauteile für die 5V-Spannungsversorgung für den Arduino. Hier werde ich auch möglichst den übernommenen ‚alten‘ Trafo nutzen. Der hatte bisher auch die 2x 10V  für die Steuerung geliefert (rote Kabel). Dafür plane ich einen Brückengleichrichter – oder vier Dioden, einen Elko und einen SN7405 einzusetzen.
Und dann ist mir bei den weiteren Überlegungen noch die Idee gekommen, sämtliche Bauteile wieder in das alte, bisherige Steuerungs-Gehäuse, einzubauen. Das hat wohl ohne Zweifel seinen ganzen besonderen Charme (siehe 2.Foto). Das werde ich mit einer zusätzlichen Träger-Platine umsetzen. Ob das dann auf Dauer sinnvoll ist, kann ich noch nicht sagen – aber für den Anfang, bei dem es erst einmal nur um den Azimut-Rotor gehen wird, sollte das eine gute Lösung sein. Später – bei sehr häufigem Einsatz – wird es wohl eher auf die Version von K3NG hinauslaufen, bei der zwei große Zeiger-Instrumente die jeweiligen Position anzeigen.

Es ist – software-gesteuert – ein ‚Not-Aus‘ an den beiden äußeren Anschlag-/Endpunkten des Rotors geplant, damit das Getriebe nicht zerstört wird. An sich gibt es dafür im Rotorgehäuse auch einen rechten – und linken Anschlag. ob der aber nur einen mechanischen Stopp darstellt, oder auch einen (elektrischen) Endschalter auslöst, kann ich im Augenblick noch nicht sagen. Zunächst plane ich daher den Azimut-Rotor software-seitig nur von 190° über 0° bis hin zu 170°laufen zu lassen. Später, wenn auch der Elevations-Rotor mit eingebunden ist, plane ich den Azimut-Rotor nur noch von 270° bis 90°laufen zu lassen – also nur den gesamten nördlichen Bereich. Den südlichen Bereich steuere ich über die Elevation von 180°an, bei der die Antenne quasi ‚auf den Kopf gestellt wird‘, in dem ich sie über ‚Senkrecht‘ hinaus kippe. Damit ist dann bei beiden Rotoren für ausreichend Sicherheit vor dem ‚Überdrehen‘ gesorgt.  Und es wird von Beginn an die Option geben, den Rotor nicht nur automatisiert laufen zu lassen, sondern wahlweise auch über zwei Kippschalter ohne Einrastung manuell zu steuern. Damit ist dann sichergestellt, dass es nicht zu gleichzeitigem Relais-Ansteuern für rechts- und Linkslauf kommen kann. Bei der Anzeige werde ich nicht nur die Grad-Zahl ausgeben, sondern auch eine der 16 verschiedenen Richtungsnamen (N, NNO, NO, ONO, O, …..).  Womöglich ist auch die Anzeige des Widerstandswertes von Vorteil.  – „Mal sehen !“
Je mehr ich mir im Vorfeld Gedanken über Steuerungs-Details mache, desto mehr Stolpersteine entdecke ich. Beispiel:  ‚manuelle Steuerung‘ übersteuert ‚automatische Steuerung‘. Wenn man aber manuell den Rotor nur allein über eine Wipp-Taste drehen kann, kann es auch schnell passieren, dass man den Punkt des rechten- oder linken Endanschlages überfahren könnte. = Nicht gut für Motor und Getriebe. also bedarf es einer Schutzschaltung auch für den manuellen Betrieb. So könnte der Mittelkontakt des Wipp-Schalters mit der 5V-Spannung vom Arduino versorgt werden, der weiterhin (auch bei manueller Bedienung) darauf achtet, dass der voreingestellte Bereich von 190-170 Grad nicht überfahren wird. Wenn das dann doch passiert, schaltet das Programm schlicht die 5V-Spannung zum Schalter ab. Damit ist sichergestellt, dass nicht weitergedreht wird. Nun ist aber der Schalter stromlos ! Damit kann ich auch nicht mehr mit der Wippe in die andere Richtung steuern. Was nun ?  Eine Lösung könnte ein zusätzlicher  ‚Entsperr-Druckknopf‘ sein, der in einem solchen Fall zusätzlich parallel zu drücken ist und so manuell für den Moment doch noch die nötigen 5V auf den Wipp-Taster bringt. so wie der Rotor wieder ‚frei‘ ist, ist auch das Drücken des ‚Entsperrknopfes‘ nicht mehr nötig.
Mir fallen noch mehr solcher kleinen Stolpersteine auf. Und mir ist klar: Das werden einige sehr kurzweilige lange Wintertage nötig sein.

11. Sept. 2022

Hier sieht man jetzt eine vollständige Konfiguration – und das im alten Steuergerät-Gehäuse; so wie ich es von Beginn geplant hatte. Es ist also möglich !

Der Aufbau soll so sein, dass neben einer prozessor-gesteuerten, automatisierten Betriebsart, auch eine manuelle Steuerung (parallel) möglich ist. Und ….  manuell funktioniert der Aufbau hier auf dem Bild schon fehlerfrei.

Zu sehen ist unten links der Haupt-(Netz-) Schalter. Rechts davon ist der Wipp-Schalter (ohne Einrast-Funktion !!), der für den manuellen Rechts- und Linkslauf zuständig ist. Der Schalter ist parallel zu zwei Relais verdrahtet, sodass auch das Programm später automatisch die Relais ansteuern kann.
Ebenfalls links unten im Gehäuse sieht man den Koppel-Kondensator für den Rechts- und Linkslauf. Den habe ich mit auf die separate Netzeingangs-Platine gelötet. Ansonsten ist auf dieser Platine das 220V-Kabel vom Hauptschalter kommend angeschlossen, gefolgt von einer Sicherung. Von dort wird der Primärkreis des Trafo versorgt.
Der Steuerteil liegt auf der großen Lochraster-Platine, rechts daneben. Dort habe ich zunächst die 5V-Gleichstrom-Versorgung aufgebaut. Dabei nutze ich den üblichen, bewährten Aufbau mit Brückengleichrichter, 0,47uF Elko, 100nf-Tantal-Kondensator, LM7405 (Spannungsregler), parallel zum LM7405 geschaltete 1N4148-Diode. Es folgen noch ein weiterer Elko, wie auch noch ein Tantal-Kondensator. Das Ergebnis ist dann eine ’saubere‘ Gleichspannung von 5V, die für die Versorgung des Arduino, wie für das Relais-Board. Letztlich ist diese (untere) Platine dann noch die ‚Träger-Platine‘  für den ‚UNO‘  und die Relais.

Jetzt kann ich an sich schon alles zusammenbauen. Dabei bleibt dann der USB-Anschluß  des Arduino von außen zugänglich. Und so kann ich nun mit der Programmierung beginnen.

„Freue mich drauf !“

Es gibt 7 verschiedene Literatur-Hinweise, auf die ich hier hinweisen möchte:

[1] Ist der Artikel von Wilhelm, DL6DCA, bei dem es um den Umbau des Steuergerätes zum Stolle 2010 geht.
[2] Dann gibt es die Web-Seite von HB9WDF, der sich mit den dazugehörigen Links für die Version von K3NG auseinandersetzt. Das ist dann auch die absolute Vollversion dessen, was man im Steuerungsbau auf die Beine stellen kann. Da wird auch die Sonnen- und Mondnachführung im Steuer-Programm umgesetzt.
[3] Hier ist eine Seite, die beschreibt an sich genau das, was ich auch mein Projektziel ist, eine ARDUINO-Steuerung mit Ausnahme dessen, dass ich auch eine automatisierte Steuerungs-Nachführung zusätzlich neben der manuellen – haben will.
[4] Dann ist da der Artikel von DH8AG, der in der CQ-DL 04/22, Seite 22 ff.,  beschreibt wie man den Stolle-Rotor 2010 einmal komplett zerlegt, wartet und wieder zusammenbaut. Viele Bilder sind dabei, als auch die Hinweise, auf was bei  wettergeschützten Horizontal-Betrieb an diesem Rotor zu beachten ist.
[5] DK9ZY beschreibt in der CQ-DL 01/2022, Seite 26 ff.,  wie die Richtungsanzeige eines Antennenrotors funktioniert und aufgebaut ist.
[6] Im Artikel der  Make 02/2021 steht auf Seite 55 ff. ein Artikel, bei dem der Arduino-Sketch sicher interessante Details offenbart. Dort geht es um einen ‚Satelliten-Finder‘, der die automatische Antennen-Nachführung auf Wohnmobilen, für den TV-Satelliten-Empfang auf Reisen beschreibt. Da wird per GPS die aktuelle Position bestimmt, wie auch die momentane Azimut-Ausrichtung der Antenne, und die wird dann per Motorsteuerung für einen DiSEqC-Motor genau zu der Position des gewünschten Satelliten gebracht.
[7] Der Artikel von DL6MHW in der Funkamateur 09/22, Seite 716 ff.. Hier wird der identische Aufbau beschrieben, wie ich ihn zuvor für mich ausgearbeitet hatte (Arduino, 4-Kanal-Relais, LC-Display). Einzig der Rotor ist ein anderer. Ändert aber nichts – der Aufbau ist an sich gleich. Hier kommen zusätzliche neue Gesichtspunkte zum Aufbau mit hinzu.