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.

Es müssen entsprechende Übersetzungstabellen zwischen Sensorwert und Drehwinkel zur Verfügung gestellt werden.
/usr/local/etc/clipeum_translate.*

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.

Übersetzungstabellen:
Mit den Übersetzungstabellen können Sensorwerte in Winkelwerte umgewandelt werden. Diese Tabellen kommen immer dann zum Einsatz, wenn es keinen linearen Zusammenhang zwischen den Sensorwerten und den Winkeln gibt.

Gespeichert werden die Übersetzungstabellen unter /usr/local/etc/clipeum_translate.*
Die Dateierweiterung muss mit dem Konfigurationsparameter xx-SensorUebersetzung übereinstimmen.

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.
Letzte nderung: 04.11.2017