|
Dieses Projekt wird eingestellt Platinen und PIC sind ggf. noch in Restbeständen lieferbar!
Es wird keinen Nachfolger für dieses Projekt mehr geben, leider fehlt mir die Zeit, dieses Projekt weiter zu entwickeln. Projekte mit geringer Nachfrage werden daher aufgegeben. |
|
Diese Seite beschreibt die Konfiguration des
SAnD-Ei Dekoders
über ein spezielles PC-Programm,
den
Hex Manipulator.
Um diese Möglichkeiten zu nutzen muss das erzeugte HEX-File in den
PIC übertragen ("gebrannt") werden.
Adressen einstellen
/ Mapping einstellen
/ Servo-Parameter einstellen
/ Kurvenform einstellen
/ Endpositionen einstellen
/ Download
/ Variations-Möglichkeiten
Ein Servo hat naturgemäß eine ganze Menge Einstell-Möglichkeiten. Für die verschiedenen
Ansteuerungen möchte der professionelle Anwender (und wer Servos einsetzen will, den kann
man wohl zu dieser Gruppe zählen..) z.B. die Kurvenform anpassen.
Das Einstellen einer Kurve über CVs oder ähnliches möchte ich mir lieber gar nicht
erst vorstellen (müssen), dies ist einfach nicht praktikabel. Da bei meinen Projekten
ja alles ein bisschen anders ist, habe ich an dieser Stelle auch eine ganz spezielle
Möglichkeit: die Manipulation des HEX-Files, welches dann in den Dekoder-PIC
gebrannt wird. Das geht natürlich nur, wenn man das HEX-File dann auch in den PIC
übertragen werden (sprich "brennen") kann, aber diese Fähigkeit haben wohl
inzwischen die meisten Anwender meiner Projekte.
Nun denn, hier geht es zum PC-Tool (mit dem man übrigens alle meine HEXen anpassen kann):
Hex_Manipu - Manipulieren des HEX-Files
Zunächst muss das entsprechende HEX-File in den Manipulator geladen werden. Es erscheint jetzt dieser Bildschirm:
nach Oben
Adressen einstellen
Der Dekoder hat (bis zu) 4 Adressen. Die Adressen können hier eingestellt werden, aber auch später
"am Gleis" über die normale Adress-Lern Routine geändert werden.
nach Oben
Mapping einstellen
Jetzt wird es schon ein bisschen komplizierter: das so genannte "Mapping" definiert,
durch welche Adresse bei bestimmter Servo mit einer bestimmten Kurve gefahren wird.
Es wird zunächst der Adresse eine Aktion zugeordnet. Diese beschreibt, was mit diesem Servo zu tun ist,
also ob eine Kurve einmalig oder
zyklisch (START LOOP) zu starten ist. Laufende Loops können mit der ABBRUCH-Funktion sofort gestoppt werden,
während ein BEENDEN die Kurve noch beendet und dann die LOOP nicht wieder startet.
jetzt wird noch definiert, welche der 4 Kurven denn nun verwenden ist:
nach Oben
Servo-Parameter einstellen
Es gibt noch ein paar Parameter, die Servo-spezifisch sind:
"
Impuls-Zeit (MIN)" und "
Impuls-Zeit (MAX)" stellen die End-Anschläge des Servos da. Hier können Werte eingetragen werden,
wenn man diese schon kennt. Ansonsten würde man diese Parameter eher durch die
Justage-Funktion (Endpositionen einstellen)
ermitteln.
Es sollte an dieser Stelle als erstes die MIN Grenze eingestellt werden. Die MAX Grenze läuft hierbei parallel mit. Verstellt man also die MIN Grenze, so wird zunächst der komplette
Bewegungsbereich verschoben. Erst wenn anschliessend die MAX Grenze verstellt wird, vergrößert bzw. verkleinert an den Stellweg (bzw. Drehwinkel).
"
Spannung aus" führt dazu, dass nach Ablauf der Kurve die Versorgungs-Spannung
des Servos abgeschaltet wird.
"
Impulse aus" führt dazu, dass nach Ablauf der Kurve die Ansteuer-Impulse
des Servos abgeschaltet werden.
"
keine Unterbrechung" führt dazu, eine der Servo während einer Bewegung nicht durch einen neuen Befehl unterbrochen werden
kann. Dies ist eigentlich meistens sinnvoll, da ansonsten ziemlich wilde Servo-Bewegungen entstehen können.
"
keine Wiederholung" führt dazu, dieselbe Kurve nicht 2x hintereinander gefahren werden darf. Dies ist z.B. bei Weichen
sinnig, denn wenn diese zuletzt von LINKS nach RECHTS gefahren wurde, dann muss sie ja erst wieder von RECHTS nach LINKS gefahren werden.
Eine Wiederholung der Bewegung sähe ziemlich blöd aus.
Die ersten beiden Einstellungen haben folgenden Hintergrund: Wird ein Servo mit
Impulsen versorgt, so versucht er, die Stellung zu halten. Dies kann dazu führen,
dass der Servo ständig brummt, obwohl er eigentlich gar nichts zu tun hat. Also kann
man die Ansteuer-Impulse abschalten. Dies wiederum mag nicht jeder Servo. Es gibt
sog. "Fail-Save"-Servos, die gehen in einen sicheren Grund-Zustand, wenn die
Ansteuerung weggenommen wird. Auch bei digitalen Servos kann das Abschalten der Impulse
nicht helfen, weil diese sich die Soll-Stellung einfach merken und trotzdem nachregeln.
Also hilft hier das Abschalten der Versorgungs-Spannung. Dies jedoch kann bei den Analogen
Servos wiederum problematisch sein, weil diese beim Wieder-Einschalten der Spannung
teilweise wilde Zuck-Bewegungen ausführen.
Fazit: Hier muss jeder je nach Anwendung und Servo die richtige Abschalt-Taktik
rausfinden!
nach Oben
Kurvenform einstellen
Beim Mapping haben wir ja schon davon gesprochen das man
bestimmte "Kurven fahren". Nun wollen wir mal zeigen, wie man so eine
Kurve nun definiert. Zunächst einmal gibt es bis zu 4 Kurven, die man definieren
kann. Die Auswahl, welche dieser Kurven gerade angezeigt und bearbeitet wird,
erfolgt hier:
Dann gibt es noch 2 allgemeine Angaben je Kurve, nämlich die Anzahl der Punkte sowie
ein "Stretch-Faktor", mit dem man den Ablauf einer Kurve langsamer machen kann.
Diese werden hier eingestellt und die daraus resultierenden Zeiten angezeigt:
So, nun aber endlich zur eigentlichen Kurve! Die Kurve wird angezeigt und kann via Maus
(Klick und Ziehen) angepasst werden. Ich denke dass mit dieser Darstellung jeder
klarkommen sollte (wenn nicht: unten und oben in der Grafik entsprechen
den beiden End-Positionen des Servos. Die Kurve wird von links nach rechts abgefahren,
d.h. die einzelnen Punkte werden dem Servo nacheinander als Soll-Position übergeben).
Was gibt es sonst noch? Es können Kurve über einige mathematische Funktionen
vorgegeben werden:
.. es gibt horizontale und vertikale Spiegel-Möglichleiten:
Eine Kurve kann in eine andere kopiert werden:
Eine Kurve und ein komplettes Setup kann geladen und gespeichert werden. Bei einer
Kurve handelt es sich hier nur um die einzelne Kurve, bei einem Setup werden alle
4 Kurven und auch die dazugehörigen Parameter wie der Stretch-Faktor, das Mapping usw. geladen:
nach Oben
Justage-Modus: Endpositionen einstellen
Da die End-Positionen der Servos bei einigen Konstruktionen nach dem Einbau
justiert werden muss, habe ich eine entsprechende Routine eingebaut.
Hierfür muss am Programmier-Stecker eine Justage-Schaltung aus ein paar Tastern
und Dioden angeschlossen werden, mit der die Justage durchgeführt wird:
Sand Justage Platine
Die Routine wird durch Drücken des Programmier-Tasters während des Startens
(also beim Anlegen der Versorgungsspannung für die Platine) aufgerufen.
Hier der Ablauf, um die Endpositionen zu justieren:
- während des Startens der Platine (=Anlegen der Versorgungs-Spannung) wird der Programmier-Taster oder der Taster
SW3 auf der Justage-Platine gedrückt
- Jetzt wird der Servo an die End-Position Nr. 1 gefahren (dies ist die Position, die der Servo
mit dem 1 ms-Impuls anfährt. Ob dies der rechte oder der Linke Anschlag ist, ist Servo-Abhängig).
Die LED blinkt jetzt langsam
- Jetzt kann man mit den Tasten SW1 und SW2 auf der Justage-Platine die Position verstellen, während Servo
entsprechend reagiert. Die Schrittweite beträgt hier 8 us.
- Durch Druck auf SW3 der Justage-Platine kommt man in die Einstellung der 2. End-Position (Vorgabe 2 ms).
LED blinkt jetzt deutlich schneller
- wie Punkt 3
- nach der Justage des Servos (LED blinkt nicht mehr) befindet sich die Platine wieder
im normalen Betriebs-Modus.
Zu beachten ist hierbei, dass ein Verstellen der End-Position 1 (Arbeitsschritt 2) auch die End-Position 2 entsprechend verschiebt.
Also wird die 1 ms-Grenze um +200 us vergrößert, so wird hier auch die 2 ms-Grenze um +200 us vergrößert.
Dadurch ist es möglich, dass man im Arbeitsschritt 2 den kompletten Arbeitsbereich des Servos verschieben kann,
ohne dass man auch die End-Position 2 ebenfalls neu justieren muss.
nach Oben
Download von Kurven
... hier erwarte ich DEINE Mitarbeit!
Wenn Du gelungene Kurven definiert hast, bitte mit Angabe zur Anwendung und des verwendeten Servos mailen!
nach Oben
Variationsmöglichkeiten
Verwenden der Taster-Eingänge für die Servo-Bewegung
Die Sand-Ei Platine bietet den Anschluss von 2 Tastern. Um den Tastern die gewünschte
Aktion zuzuordnen, muss auch dies Konfiguriert werden.
Der Manipulator bietet daher diese Eingabe:
Hier kann nun ausgewählt werden, welche Aktion beim Öffnen und / oder Schließen der Taster
ausgelöst werden. Das Öffnen bzw. Schließen des Tasters wirkt daher genau so, als ob der Dekoder
die passende Adresse empfangen hätte.
Ausgang X7 nutzen
Der Ausgang X7 kann bei Durchschreiten eines Schwellwertes geschaltet werden. Der Schwellwert wird hier eingestellt und
in der Kurve dann als Rote Linie dargestellt:
Der Ausgang X7 ist dann eingeschaltet, wenn die Kurve den Schwellwertes nach oben durchschreitet und bei Unterschreitung
entsprechend wieder abgeschaltet. Der Sinn dahinter: es kann ein Umschalt-Relais zur Herzstück-Polarisierung
angesteuert werden.
Aber Vorsicht: der Ausgang ist ein direkter Ausgang des PIC Prozessors und nicht verstärkt.
Maximal 20 mA sind zulässig und die Pegel sind 0V (aus) bzw. 5V (ein). Bei Verwendung eines Relais empfehle ich daher
einen Schalttransistor vorzusehen und die Freilaufdioden für die Spule nicht zu vergessen!
nach Oben