Zahlavi

Sprache auswählen

Steuermodul für 2 Stellmotoren für HW 1.0

Vor einiger Zeit habe ich erklärt, dass ich die HW-Version 1.0 nicht mehr entwickeln oder unterstützen werde. Meine Bemühungen konzentrierten sich auf die Entwicklung von HW 2.1. Aber die Wahrheit ist, dass das PCB-Design der neuen HW immer noch nicht fertig ist, also muss ich mein altes Design mit Relais weiterverwenden.
Gleichzeitig möchte ich einige neue Dinge mit der Schüssel Laminas 2700 ausprobieren, was mich am meisten einschränkt, ist die Notwendigkeit, Skew zu drehen. Bevor ich auf den mechanischen Aufbau der LNB-Drehung eingehe, steht mir ein CSP 1210 C Servo-Polarisator zur Verfügung. Ich fing auch an, mir das C-Band anzusehen, für das ich einen Corotor Chaparral bereit habe. Es wird auch von einem Servomotor gesteuert. Deshalb habe ich mich entschieden, den Servomotor-Steuerteil aus HW 2.1 als separates Modul für HW 1.0 zu machen.
Ich muss betonen, dass meine Entscheidung, HW 1.0 nicht weiterzuentwickeln, unverändert bleibt. Dieser Artikel dient nur zur Inspiration. Ich erwarte nicht, dass die SW dieses Moduls in Zukunft veröffentlicht wird, was für seinen Betrieb notwendig ist.
Das Moduldiagramm ist der HW-Version 2.1 entnommen. An diesem Abschnitt mussten keine Anpassungen vorgenommen werden.

SchemaThumb

Abb. 1 - Diagramm des Servomotormoduls

Das Signal zur Ansteuerung der Servomotoren wird über softwaregenerierte PWM-Pulse erzeugt. Dieses Signal wird über den Optokoppler PC844 galvanisch getrennt, auf 5V-Pegel gewandelt und dem Steuereingang des Servomotors zugeführt. Wichtig ist die Polarität des Signals, die durch die Widerstände 3k3 und 100R gewährleistet wird. Ich habe zwischen dem Modul und den Stellmotoren ein ca. 17m langes Kabel. Ein 1-nF-Kondensator filtert störende HF-Signale heraus, die in diese Drähte induziert werden.

Die folgende Tabelle listet die verwendeten Teile auf:

 Artikelnummer Komponentenname Stücke
8  Quelle 5V / 1 ÷ 3 A 1
7  Klemmenblöcke ARK500/3EX (Wago W237-103) 3
6  Klemmenblöcke ARK500/2EX (Wago W237-102) 1
5  Kondensator 1nF, keramik, folie 2
4  Widerstand 3k3 2
3  Widerstand  420Ω 2
2  Widerstand 100Ω 2
1  PC844, 4x optokoppler (Vishay ILQ620) 1

 

Das Modul ist recht einfach, sodass selbst das Entwerfen der Leiterplatte nicht viel Arbeit war. Fast alle Gelenke wurden in eine Schicht gequetscht. Am Ende mussten nur noch zwei Drahtbrücken hinzugefügt werden.

SpojThumb

Abb. 2 - Leiterplatte

Da ich das Steuergerät auf dem Dachboden des Hauses in trockener Umgebung stehen habe, hielt ich es nicht für notwendig, das Modul in einer Box unterzubringen. Das Modul wird über drei Adern mit dem Stellungsregler verbunden. Einer wird auf die Masse des Raspberry Pi gebracht und darf nicht mit der Masse eines anderen Teils der Struktur verbunden werden. Die anderen beiden Drähte sind mit dem GPIO-Anschluss verbunden. Die Auswahl bestimmter Ports war einfach. In HW 2.1 werden GPIO05 (Pin 29) und GPIO06 (Pin31) verwendet, um den Servomotor zu steuern. Da in HW 1.0 diese Pins noch nicht verwendet werden, gibt es keinen Grund, sie zu ändern.

Die 5-V-Quelle verdient eine separate Anmerkung. Da es bereits eine solche Ressource im Bau gibt, wäre es verlockend, sie zu nutzen. Aber am Ende entschied ich mich, eine separate Ressource zu verwenden. Denn Servomotoren können ganz schön viel verbrauchen und eine Quelle könnte schon auf Laständerungen reagieren, indem sie die Ausgangsspannung ändert. Und dies könnte den Betrieb des Raspberry Pi-Computers beeinträchtigen. Außerdem ist es nur eine temporäre Lösung, daher wollte ich die Abhängigkeit des Moduls vom ursprünglichen Design auf ein Minimum beschränken.

PrototypThumb

Abb. 3 - Prototyp

Ich möchte für das Steuerungsprogramm schrittweise von Javascript auf Python umsteigen. Ich dachte, dies sei eine großartige Gelegenheit, es selbst auszuprobieren. Python ist eine etwas spezifische Programmiersprache und Sie müssen sich daran gewöhnen.

Da ich mich von Anfang an nicht getraut habe, einen eigenen Webserver zu schreiben, habe ich eine fertige Lösung in Form des Flask-Frameworks verwendet. Es wird empfohlen, es über Pip zu installieren. Aber es ist nicht unbedingt notwendig. Als nächstes müssen Sie die Bibliotheken auswählen, die für den Zugriff auf die GPIO-Ports verwendet werden. Am Ende habe ich mich für PiGPIO entschieden. Es hat die Besonderheit, dass es seinen eigenen Daemon betreibt, d. h. einen Hintergrunddienst, über den es kommuniziert. In der Praxis bedeutet dies, dass die Kommunikation mit den Raspberry-Pi-Ports ein separates Programm ist, dessen Geschwindigkeit nicht direkt mit dem Benutzerprogramm in Python zusammenhängt.

Nun, der Rest des Vorschlags lag bereits bei mir. Ich habe mich nach und nach zu einem Programm hochgearbeitet, das die direkte Ansteuerung von zwei Aegis-Motoren und einem Servomotor erlaubt. Es enthält auch Voreinstellungen, die automatisch die gespeicherten Positionen aller drei Motoren festlegen. In diesen Presets kann die aktuelle Position aller Motoren mit der Store mem-Taste gespeichert oder mit der Clear mem-Taste gelöscht werden.

 SWThumb

Abb. 4 - SW-Benutzeroberfläche

Die Steuerung eines einzelnen Servos reicht für meine Zwecke an dieser Stelle aus. Der Stellmotor ist für die Skew-Einstellung gedacht, also „nur“ für die mechanische Drehung des LNB entsprechend dem gewählten Satelliten. Der CSP 1210 C und der Corotor Chaparral-Polarisator haben jedoch an ihrem Ausgang einen rechteckigen Hohlleiter zum Anschluss eines Single-Polarity-LNB. Sie verwenden auch einen Servomotor, um die horizontale und vertikale Polarisation zu ändern. Daher musste ich zusätzlich zum Skew-Drehen die H/L- und V/R-Tasten ins Programm aufnehmen, die die Empfangsantenne im Eingangswellenleiter um 90° sprungweise drehen. Der eigentliche Skew wird dann als Mittelposition zwischen diesen beiden Positionen eingestellt.

Das Programm zeigt an, wie die Steuerung der HW-Version 2.1 voraussichtlich aussehen wird. Wenn ich seinen Prototyp zum Laufen bekomme, werde ich in einem separaten Artikel einen detaillierten Prozess der Arbeit mit dieser SW schreiben. Es sieht so aus, als würden 60 Voreinstellungen wahrscheinlich nicht ausreichen. Aber nur die Praxis wird diese Details zeigen. Ich bin ziemlich gespannt, wie viele Presets Sie im Positioner verwenden. (Müssen wirklich alle Satelliten von Ihrem Standort aus im Positioner sichtbar sein?)

Keine Kommentare

Kommentar hinterlassen

Als Antwort auf Some User