Motorsteuerung

Steuergerät für den Schubstangenmotor mit Arduino

 

Für die Motorsteuerung wird auch Arduino verwendet. Eine genauere Ausrichtung der Antenne ist jetzt möglich, weil man mit höherer Präzision ihre Position ermitteln kann. Die erste Version beinhaltete einen analogen Accelerometer, einen digitalen Kompass und ein Motor Drive Shield. Nach einem Elektronikbrand wegen eines falsch programmierten Motor Shields ist nun die zweite Version entstanden. Hierfür ist ein 10DOF GY80 zum Einsatz gekommen. Damit sind einige Probleme der vorherigen Version gelöst. Weil der Eisen- und damit magnetisch beeinflussende Anteil an dem bisher verwendeten Platz zu hoch ist, war die nötige und seit langem geplante Soft- und Hard Iron Compenssation sehr schwierig. Wenn man auf zuverlässige Headings Wert legt, sollte der HMC5883L soweit wie möglich entfernt von magnetischen Metallen eingebaut werden.

AntennaMovings

Aktuelle Bewegungshistorie (PHP)

 

parabolica

Antenne Online Steuerung

 

Erste Version

ADXL335 Accelerometer

Es handelt sich um einen analogen Accelerometer, der an den Arduino ADC angeschlossen werden muss. Damit werden alle Achsenwerte nur mit 8 Bit Auflösung gelesen. Das ergibt eine kleine Ungenauigkeit in den Werten, deswegen wird diese durch den MPU-6050 ersetzt. Ausreichende Information für seine Beschaltung findet man auf der Seite http://www.electronicsblog.net/simple-angle-meter-using-adxl335-accelerometer-arduino/

 

HMC5883L Digitale Kompass

Auf der Seite https://www.loveelectronics.co.uk/Tutorials/8/hmc5883l-tutorial-and-arduino-library findet man ein sehr interessantes Tutorial. Dieser Sensor wird an die I2C Schnittstelle von Arduino angeschlossen und bietet eine ausreichende Genauigkeit. Voraussetzung für eine praktische Verwendung der Daten ist die nötige Kompensation für Neigung und hard iron. Bei Neigung stimmen die Werte ohne Kompensation nicht mehr und ab einem bestimmten Winkel lassen sich die Daten nicht mehr verwenden.

Die sogenannte “Hard Iron Compenssation” ist immer notwendig, wenn der Sensor sich in der Nähe vom Eisen befindet und diese Position sich nicht großartig ändern soll. Drei Offsets werden ermittelt und immer berücksichtigt bei der Berechnung der aktuellen Position.

 

L298N Motor Drive

Die Bewegung der Antenne lässt sich damit per Software regeln. Der Motor wird an den dafür vorgesehenen Pins verbunden, die je nach eingestellter Richtung die  entsprechende Spannung und Polarisation aus der ausreichend dimensionierten Spannungsquelle bekommen. Mit dem passenden Processing Sketch wird die Ausrichtung der Antenne grafisch und genau (aber nicht genauer als der Accelerometer Sensor ermöglicht) gemacht.

 

Ciseco XRF Radio Xbee (Antenne Seite) + Ciseco URF Radio USB (PC Seite)

Das XRF Radio Übertragungsmodul wandelt ohne weiteres eine herkömmliche serielle Verbindung in eine kabellose Verbindung mit einer Reichweite von 3 km. Dieses wird auf der Seite „Antenne“ mit Arduino verbunden, bekommt wie gewöhnlich einen COM Port zugewiesen und dient dadurch als Sender sowie Empfänger. Das passende Teil auf der Seite „PC“ ist das UHF Modul, welches gleich arbeitet und direkt am PC per USB angeschlossen wird. Kaufen kann man beide bei http://shop.ciseco.co.uk/xrf-wireless-rf-radio-uart-rs232-serial-data-module-xbee-shape-arduino-pic-etc/ . Für eine OnAirProgramming ist die aktive Version erforderlich, wobei sich mit wenigen Widerständen, Kondensatoren und zwei kleinen LEDs einfach die passive in die aktive Version umwandeln lässt.

AntenneSteuerungSketch

Abbildung 1: Screenshot vom Processing Sketch für die Kommunikation mit den Sensoren

images
images

Processing Sketch

Arduino Sketch

 

Zweite Version

Erweiterungen mit einem 10DOF GY-80 und einer Infrarot Fernbedienung

Die Anschaffung eines GY-80 hat mit enormen Aufwand mehr Auflösung gebracht. Jetzt sind Magnetometer und Accelerometer digital, allerdings ist bei der Programmierung klar geworden, dass das Ganze nichts ohne eine richtige Kalibrierung bringt. Verbunden wird der GY-80 am I2C Port mittels der SCL und SDA Pins. Mit dem GY-80 hat man auch einen Gyrometer (ohne Verwendung hier), Temperatur- und Luftdruck Sensor.

Die IR Fernbedienung ist nur gedacht, um bequem die Position der Antenne zu variieren. Da die mit dem Infrarot Sensor gelieferte kleine Fernbedienung genügend Tasten hat, lässt sich ihre Funktion beliebig erweitern.

 

ADXL345 Accelerometer

Die Benutzung ist absolut unkompliziert, allerdings ist zu beachten, dass die zu verwendende Library keine Offset-Werte beinhaltet, die für jemand anders gedacht waren. Also lieber ADXL345.cpp öffnen und schauen, wie der Code aussieht. Es gibt mathematische Verfahren, um die geeigneten Offset-Werte zu bestimmen aber ein wenig herumprobieren an diesen Werten kann in wenigen Minuten ein zufriedenstellendes Ergebnis liefern. Für die gedachte Anwendung hier als Neigungssensor war es ausreichend, die richtige Neigung bei 0°, 45° und 90° zu bekommen. An diesen Offset Werten wurde nach und nach angefangen mit (0,0,0) die verschiedene Achsen mit +1 oder -1 auszuprobieren. Jede Veränderung wurde wieder bei 0°, 45° und 90° ausprobiert und die besten Ergebnisse kamen mit (7,4,0).

 

HMC5883L Magnetometer

Dieser und vermutlich alle Magnetometer sind eine Wissenschaft für sich. Ohne Kalibrierung bekommt man nie richtige Ergebnisse und wie weit man mit der Kalibrierung geht, hängt von der vorgesehenen Anwendung ab. Es gibt genug Informationsquellen im Internet über Soft- und Hard Iron Calibration, dass es nicht sinnvoll ist, hier irgendwas zu erklären. Das erste, was man herausfinden muss, ist, unter welchem Einfluss das eigene Magnetometer steht und dann dementsprechend kalibrieren. Zusätzlich sind die verschiedenen möglichen Lagen und Ausrichtungen des Sensors  zu überlegen, wodurch eine Neigungskompensation erforderlich sein kann (die berechneten Headings sind nur im besten Fall bei einer liegenden Position des Chips richtig). Welche Kalibrierung- und Kompensierungsmethode für die Antenne benutzt wurden, ist auf der Seite Kalibrierung des HMC5883L beschrieben.

Bedingt durch die Schwierigkeiten bei der Kalibrierung durfte der Sensor nicht mehr an seiner ursprünglichen Position eingebaut werden. Der Neigungs-Offset zwischen Antenne ALT und Sensor ALT wird berücksichtigt.

 

Info LED’s

Damit die Funktion des Gerätes nach Einbau zumindest grob überwacht werden kann, sind 4 LED’s eingebaut, die nach einem festgelegten Code je nach Aktivität unterschiedlich blinken bzw. leuchten. Mit der passenden Processing Applikation kann man Befehle senden, die zu der gewünschten Bewegung der Antenne führen. 

Als Unterstützung für den Einbau des Gerätes an der Antenne ist das Blinken der grünen LED programmiert. Beabsichtigt wurde hier, eine Information darüber zu geben, wie viel seitlich geneigt (roll Winkel) das Gerät ist. Unter optimalen  Bedingungen bei einer azimutalen Montierung ist bei der Veränderung der Altitude der Antenne nur eine Veränderung des Neigungswinkels (Pitch) zu erwarten, während der seitliche Neigungswinkel 0 bleibt (siehe Bild).

tiltcompass-calc2

Abbildung 2: Variation von Pitch und Roll Winkel mit Veränderung der Lage

Die Frequenz des grünen LEDs beim Blinken ist proportional zum Neigungswinkel.  Ist das Gerät 100% gerade, blinkt das LED nicht mehr und leuchtet ununterbrochen.

LED

Blink

Bedeutung

 

 

 

 

 

WAITING: Arduino ist bereit und wartet auf Befehle

 

 

 

 

 

UP: Antenne hoch

 

 

 

 

 

DOWN: Antenne runter

 

 

 

 

 

WISHED ANGLE:  Gewünschte Altitud empfangen. Zum einstellen muss Antenne hoch.

 

 

 

 

 

WISHED ANGLE:  Gewünschte Altitud empfangen. Zum einstellen muss Antenne runter.

 

 

 

 

X

ROLL > 0.5°. Frequenz vom Roll direkt proportional abhängig.

 

 

Infrarot Schnittstelle

Fast die gleichen Befehle, die in der Processing Applikation vorhanden sind, wurden für die Infrarot Fernbedienung implementiert. Hiermit ist zusätzlich möglich, eine Veränderung in dem konfigurierten Antennen- ALT Offset zu realisieren. Anbei die Tastenbelegung und Reaktion:

RemoteControl

Taste

Funktion

-

DOWN:  runter

+

UP:  hoch

TasteAus

STOP

TasteMode

Reset Inputs

Taste2Taste0Taste100+Taste5Taste0TasteZurueck

Offset = 20,50°

Taste5Taste0Taste100+Taste2Taste0TasteEQ

GoTo ALT 50,20°

 

 

Processing und Arduino Sketches

ProcSketchAntenna

Abbildung 3: Processing Sketch fürs Motorsteuerungsgerät. Für die Bewegung der dargestellten Antenne ist 180° (Süden) der Richtungsvektor, der aus der Seite in Richtung des Ablesers rauskommt. Für den einfach dargestellten Kompass gekennzeichnet mit SOUTH ist Süden ganz unten.

images

images

Arduino Sketch

Processing Sketch

 

antennesteuerung

 

Home   Astronomie   Astronomía   KinderBlogs   Kontakt