CLIPEUM - Interface
Das Interface dient dem RPI zur Kommunikation mit der Umwelt.
Es bietet Analoge und Digitale Eingänge. Eingänge für zwei Positionssensoren und Ausgänge zur Ansteuerung für Motoren.
Es ist nicht Möglich mit dem Interface direkt die Motoren an zu steuern. Hierfür werden noch entsprechende Treiber benötigt. Diese Treiber sind nicht Teil dieses Projekts.
Interfaceboard Layout Interfaceboard Schaltplan

Anschlüsse
Interfaceboard Schema Stromversorgung:
Hohlstecker oder vorhandenes Kabel.
Die Stromversorgung des Interface muss stabile 5V liefern und mit mindestens 1A belastbar sein.
Über den USB-Anschluss des Interfaces kann der RaspberryPi mit Strom versorgt werden.
Der Spannungsstabilisierungs-IC (7805) wird nicht bestückt. Die beiden äußeren Kontakte müssen entsprechend überbrückt werden.

USB-Kupplung:
Die USB-Kupplung dient lediglich dazu die Stromversorgung an den RPI weiter zu leiten. Es können hier keine Daten übertragen werden.

26-Pol Pfostenstecker:
Dieser Anschluss muss mit dem GPIO-Port des RPI verbunden werden. Hierüber findet die Kommunikation zwischen RPI und dem Interface statt.

Digitaleingänge:
RJ45-Buchse für die sechs digitalen Eingänge

Analogeingänge:
RJ45-Buchse für vier analogen Eingänge

Positionssensoren:
Zwei RJ25-Buchsen für die Positionssensoren.
Die beiden Buchsen sind in allen Pins parallel beschalten.

Digitalausgänge:
Drei RJ25-Buchsen mit digitalen Ausgängen. Beispielsweise für die Ansteuerung von Motorendstufen.
Die Ausgänge sind mit 1kOhm Abblockwiderständen versehen.

Firmware
Die Übertragung der Firmware für das Interface erfolgt mit AVRDUDE.

Fusebits:
Es müssen einmalig die Fusebits des Mikrocontroller (ATMega16) gesetzt werden.
sudo avrdude -c linuxspi -p m16 -P /dev/spidev0.1 -U lfuse:w:0xa4:m -U hfuse:w:0xd1:m

Firmwareupdate:
Für ein Firmwareupdate des Interface werden zwei Dateien zur Verfügung gestellt. Eine Codedatei (.hex) und eine EEPROM-Datei (.eep).
Die beiden Dateien wurden mit dem Update bereits auf den RPI übertragen und in ~/clipeum/interface abgelegt.
Zum Übertragen der Daten an das Interface siehe diese Anwendungsbeispiele.
Positionssensoren
Positionssensor HH12 HH-12 von DF1SR: 12 Bit 360° ABSOLUTE ROTARY ENCODER
Dieser Winkelencoder liefert für 360° 4096 Schritte. Dies ergibt eine Auflösung von rund 0,088° (~5,3') pro Schritt.

Bei längeren Leitungen zwischen den Positionssensoren und der Steuerelektronik kommt es zu Störungen bei der Datenübertragung. Grund dafür dürfte ein Rauschen in der Spannungsversorgung des Sensors sein. Hier konnte ein 100nF Kondensator zwischen +5V und GND beim Sensor Abhilfe schaffen.

Lt. Datenblatt sollten auch die Winkelsensoren MAB25 SER der der Firma Megatron funktionieren. Dies wurde aber nicht ausprobiert.

Potentiometer:
Verwendung von Potentiometer zur absoluten Positionsbestimmung.
Die Potentiometer müssen an den Anschlüssen für Kanal 1 und Kanal 2 an einen der beiden Positionssensorports angeschlossen werden. Die Eingänge für CLK und CS bleiben unbeschalten.

Impulsgeber:
Beachte die speziellen Konfigurationsparameter für die Impulssensoren.
Da Impulsgeber grundsätzlich nur zur relativen Positionsbestimmung fähig sind, wird eine Synchronisation benötigt.

Anschluss an einen der beiden Positionssensorports
AZ-ImpulseKanal 1
EL-ImpulseKanal 2
AZ-SyncCLK
EL-SyncCS

Die Zählrichtung wird durch den Drehrichtungsausgang (xx-MotorRichtungPin) bestimmt.
Für ein Signal muss der jeweilige Eingang mit GND verbunden werden.

Bis zur ersten Synchronisation des Impulssensors wird konstant der konfigurierte Wert xx-ImpulsSensorInit geliefert. Durch geschickt gewählte Initialwerte, kann die Montierung dazu überredet werden, sich in Richtung der Synchronisationspunkte zu bewegen.
Mit dem ersten Synchronimpuls, wird der Impulszähler auf xx-ImpulsSensorSync gesetzt. Ab nun werden die Impulse gezählt und die Montierung bewegt sich zum Ziel.

Eine Synchronisierung kann nicht nur über die beiden Sync-Eingänge (AZ-Sync bzw. EL-Sync) sondern auch zeitgesteuert erfolgen. Hierfür werden die Parameter xx-ZwangsSync herangezogen.
Bis zur synchronisation wird immer der Initialwert des Sensors geliefert. Bei durchgehend aktivierten Antrieb wird nach Ablauf der angegebenen Zeit eine Zwangssynchronisation durchgeführt.

Transformationstabellen:
Unabhängig von der Art des Sensors müssen die Sensorwerte in Winkel übersetzt werden. Dies geschieht mithilfe der Transformationstabellen.
Gespeichert werden diese unter /opt/clipeum/etc/transform.* Die Dateierweiterung gibt die Achse an.

Die Liste muss für jeden möglichen Sensorwert einen Eintrag haben. Jeder Wert muss in einer eigenen Zeile stehen. Der Sensorwert 0 entspricht dabei dem ersten Eintrag in der Tabelle. Der Sensorwert 1 dem zweiten Eintrag, usw. Ist der Sensorwert höher als die Anzahl der Einträge, so wird der letzte Eintrag der Tabelle herangezogen.

Das Clipeum Monitoringtool bietet unter anderem auch ein Werkzeug zum Erstellen dieser Transformationstabellen.
Letzte Änderung: 26.05.2018