Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
anleitungen:bauanleitungen:locoturn_v10:150_locoturn_kalibrierung [2023/02/08 13:02] – gelöscht - Externe Bearbeitung (Unknown date) 127.0.0.1 | anleitungen:bauanleitungen:locoturn_v10:150_locoturn_kalibrierung [2024/09/02 06:59] (aktuell) – [Finetuning der Portpositionen] domapi | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Kalibrierung | ||
+ | |||
+ | Gute Erfahrungen bezüglich ruckelfreiem Bewegen der Bühne haben wir mit industriell gefertigten Drehscheiben, | ||
+ | |||
+ | Selbstbau-Drehscheiben werden sich nur im Idealfall spielfrei und völlig gleichmäßig ohne zu ruckeln drehen. Bei einer Umdrehung und bei Richtungswechsel gehen durch Abbremsen und Beschleunigen sowie unterschiedliche Reibung Microsteps verloren. Die Steuerungssoftware der Drehscheibe ist jedoch so ausgelegt, dass diese Ungenauigkeiten in einem großen Bereich ausgeglichen werden können. | ||
+ | |||
+ | Damit der Stepper keine oder möglichst wenige dieser Microsteps „verliert“, | ||
+ | |||
+ | Wichtig ist hier die Stromstärke, | ||
+ | |||
+ | Bei den hier verwendeten, | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Die Schaltung sollte daher zwischen mind. 14V - 20V betrieben werden. Bewährt hat sich z.B. ein Laptop-Netzteil mit 19V. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Erstinstallation ===== | ||
+ | Beim allerersten Start der Steuerung ist der Null-Punkt (= Referenzpunkt) der Drehscheibe noch nicht definiert. Dieser ist die Position des Hall-Sensors (TLE4905). | ||
+ | Ebenso fehlt die Anzahl Steps pro Umdrehung, es sei denn, man kennt die Anzahl Steps des Motors sowie die Getriebeuntersetzung und hat diese manuell in den Sketch eingetragen. | ||
+ | |||
+ | Schaltet man die Steuerung erstmalig ein, so wird eine Kalibrierung durchgeführt und die Bühne dreht sich im Uhrzeigersinn (falls die Drehrichtung nicht stimmt, ist der Motor falsch angeschlossen). | ||
+ | Die Bühne dreht solange, bis der Hallsensor TLE4905 am Rand oder unter der Drehscheiben-Grube ein Signal liefert. Das ist der Fall, wenn sich der eingebaute Magnet am Bühnenende auf der Höhe des Hallsensors befindet (die entsprechende LED leuchtet, solange der Magnet den Hallsensor triggert). Diese Position ist der Referenz-/ | ||
+ | |||
+ | <WRAP center round tip 80%> | ||
+ | Es ist empfehlenswert, | ||
+ | |||
+ | </ | ||
+ | |||
+ | Pro Port gibt es 4 Positionswerte in Abhängigkeit der Drehrichtung, | ||
+ | |||
+ | - | ||
+ | - | ||
+ | - | ||
+ | - | ||
+ | |||
+ | Es gibt also 4 Sets für Positionsdaten; | ||
+ | |||
+ | Zunächst sehen die Positionswerte folgendermaßen aus (" | ||
+ | |||
+ | ^Port ^positive ^negative | ||
+ | |1 | ||
+ | |2 | ||
+ | |3 | ||
+ | |4 | ||
+ | |5 | ||
+ | |6 | ||
+ | |7 | ||
+ | |8 | ||
+ | |9 | ||
+ | |10 |2000000000 | ||
+ | |11 |2000000000 | ||
+ | |12 |2000000000 | ||
+ | |13 |2000000000 | ||
+ | |14 |2000000000 | ||
+ | |15 |2000000000 | ||
+ | |16 |2000000000 | ||
+ | |17 |2000000000 | ||
+ | |18 |2000000000 | ||
+ | |19 |2000000000 | ||
+ | |20 |2000000000 | ||
+ | |21 |2000000000 | ||
+ | |22 |2000000000 | ||
+ | |23 |2000000000 | ||
+ | |24 |2000000000 | ||
+ | |||
+ | |||
+ | Falls die Anzahl Steps pro Umdrehung (Parameter **FIXED_STEPS_PER_ROUND**) nicht fest definiert ist, ist der berechnete Standardwert aus Anzahl Steps/ | ||
+ | |||
+ | Daher wird zuerst eine Kalibrierung der Drehscheibe durchgeführt: | ||
+ | {{ bilder: | ||
+ | |||
+ | * Hierzu wird die Drehscheibe gedreht und der Sketch sucht den Null-Punkt (= Position des Hall-Sensors) und speichert ihn ab. Die Null-Punkt-Suche geht entweder mit hoher Geschwindigkeit (**ADVANCED_REFERENCE_DETECTION** = 0) oder mit einer angepassten Logik (**ADVANCED_REFERENCE_DETECTION** = 1), bei der der Null-Punkt zuerst mit hoher Geschwindigkeit gesucht wird, dann dreht die DS ein Stück zurück und fährt den 0-Punkt nochmals langsam an. Danach wird die Referenzposition gespeichert. | ||
+ | |||
+ | {{ bilder: | ||
+ | |||
+ | * Ab da zählt die Steuerung die Schritte, bis der Sensor das zweite Mal passiert wird. Damit wird die Anzahl der Schritte für eine Umdrehung ermittelt. Der Wert kann auch manuell vorgegeben werden (**FIXED_STEPS_PER_ROUND**). | ||
+ | |||
+ | * Zuletzt ermittelt er das Getriebespiel durch zweimaliges Hin- und Herfahren links/ | ||
+ | |||
+ | * Wird der Null-Punkt sprich Hall-Sensor gefunden, dann wird ausgehend von dieser Position die Lage der Ports in Microsteps berechnet (dies sind die Standardwerte ganz rechts in der Tabelle unten). | ||
+ | |||
+ | * Standardwert bedeutet, dass die Steuerung die DS-Positionen anhand einfacher Division ermittelt: Anzahl Steps pro Umdrehung geteilt durch Anzahl Ports. Das ist dann der Abstand zwischen je 2 Ports mit dem gerechnet wird. Port 1 (intern 0) ist dann genau um diese Anzahl vom Hall-Sensor entfernt. Es wird also mit einer Gleichverteilung der Ports gerechnet. | ||
+ | |||
+ | * Die 4 Positionswerte im EEPROM bleiben jedoch zunächst noch auf einem Defaultwert (2000000000). | ||
+ | |||
+ | * Die Messwerte und die aktuelle Position werden im EEPROM abgespeichert, | ||
+ | |||
+ | * Über **ALWAYS_CALIBRATE_AT_START** = 1 kann eingestellt werden, dass bei einem Neustart der Steuerung zuerst eine Referenzfahrt durchgeführt wird, um den 0-Punkt zu kalibrieren. Dies __empfiehlt__ sich insbesondere für Direktantriebe ohne Getriebe, da die Bühne oftmals einen kleinen " | ||
+ | |||
+ | Das Getriebespiel wird in positiver Drehrichtung gemessen und später folgendermaßen berücksichtigt: | ||
+ | |||
+ | * Wird eine Position im positiver Richtung angefahren, dann können die gespeicherten Port-Positionen direkt angefahren werden. | ||
+ | |||
+ | * Wenn die Scheibe in negativer Richtung gedreht wird, dann muss das Getriebespiel (Clearance) von der Sollposition __abgezogen__ werden. | ||
+ | |||
+ | Die Positionswerte sehen nun wie folgt aus (Beispiel Steppermotor mit 6400 Steps, 48 Ports davon 24 genutzt): | ||
+ | |||
+ | ^Port ^positive ^negative | ||
+ | |1 | ||
+ | |2 | ||
+ | |3 | ||
+ | |4 | ||
+ | |5 | ||
+ | |6 | ||
+ | |7 | ||
+ | |8 | ||
+ | |9 | ||
+ | |10 |2000000000 | ||
+ | |11 |2000000000 | ||
+ | |12 |2000000000 | ||
+ | |13 |2000000000 | ||
+ | |14 |2000000000 | ||
+ | |15 |2000000000 | ||
+ | |16 |2000000000 | ||
+ | |17 |2000000000 | ||
+ | |18 |2000000000 | ||
+ | |19 |2000000000 | ||
+ | |20 |2000000000 | ||
+ | |21 |2000000000 | ||
+ | |22 |2000000000 | ||
+ | |23 |2000000000 | ||
+ | |24 |2000000000 | ||
+ | |||
+ | |||
+ | Nach der Kalibrierung fährt die DS zum Port 1. I.d.R. wird der Gleisabgang jedoch nicht exakt angefahren, so dass die Schienen erst einmal nicht sauber fluchten. Die Bühne wird daher ein bisschen links oder rechts vom Port stehen bleiben. | ||
+ | |||
+ | Mit den berechneten Grobwerten (rechte Spalte) kann man jedoch schon die DS-Bewegungen testen. Die DS arbeitet aktuell mit den berechneten gleichverteilten Werten. | ||
+ | |||
+ | Um die Schienen exakt fluchten zu lassen, muss eine Fein-Einstellung der Portpositionen durchgeführt werden (siehe unten). | ||
+ | |||
+ | ===== Kalibrierung im lfd. Betrieb ===== | ||
+ | Die interne 0-Position (= Lage des Hallsensors) wird jedes Mal korrigiert, wenn die Scheibe in der (positiven, i.d.R. CW) Kalibrierrichtung am Nullpunkt vorbeikommt. | ||
+ | |||
+ | Wenn die Scheibe in Gegenrichtung am Nullpunkt vorbeikommt, | ||
+ | | ||
+ | ===== Finetuning der Portpositionen ===== | ||
+ | Nach der Kalibrierung werden die Gleisabgänge noch nicht exakt angefahren. Die Bühne wird daher ein bisschen links oder rechts vom Port stehen bleiben. Um die Schienen exakt fluchten zu lassen, muss nun eine Fein-Einstellung der Portpositionen durchgeführt werden. | ||
+ | |||
+ | {{ bilder: | ||
+ | Hierzu nimmt man die Feineinstellung eines ersten Ports in positiver Richtung (i.d.R. CW) vor, indem man den Port mit dem Drehencoder manuell exakt anfährt (**Menü " | ||
+ | |||
+ | Das Feintuning, d.h. manuelles Anfahren eines Ports zur Feineinstellung, | ||
+ | |||
+ | Im Beispiel unten wurde die Position für Port 1 um 24 Mikrosteps vergrößert, | ||
+ | |||
+ | Die im EEPROM gespeicherten Port-Positionen sehen dann wie folgt aus (nach finetuning in positiver Richtung): | ||
+ | |||
+ | |||
+ | ^Port ^positive ^negative | ||
+ | |1 | ||
+ | |2 | ||
+ | |3 | ||
+ | |4 | ||
+ | |5 | ||
+ | |6 | ||
+ | |7 | ||
+ | |8 | ||
+ | |9 | ||
+ | |10 |2557 |2000000000 | ||
+ | |11 |2824 |2000000000 | ||
+ | |12 |3090 |2000000000 | ||
+ | |13 |3357 |2000000000 | ||
+ | |14 |3490 |2000000000 | ||
+ | |15 |3624 |2000000000 | ||
+ | |16 |3890 |2000000000 | ||
+ | |17 |4290 |2000000000 | ||
+ | |18 |4690 |2000000000 | ||
+ | |19 |4957 |2000000000 | ||
+ | |20 |5224 |2000000000 | ||
+ | |21 |5490 |2000000000 | ||
+ | |22 |5757 |2000000000 | ||
+ | |23 |6024 |2000000000 | ||
+ | |24 |6290 |2000000000 | ||
+ | |||
+ | |||
+ | Bei jedem weiteren Port, dessen Position in positiver Richtung abgespeichert wird, speichert der Sketch nur diese eine Position, alle anderen Ports werden nicht berücksichtigt. Es kommt auch keine Abfrage der Port-Nr. mehr; diese entspricht dem zuletzt angefahrenen Port. Auf diese Weise kann man alle benötigten Ports individuell drehrichtungsabhängig einstellen. | ||
+ | |||
+ | Falls die DS absolut symmetrische Abgänge hat und sich die Fertigungstoleranzen in Grenzen halten, reicht es u.U. aus, nur einen Port fein einzustellen. Für höhere Positionier-Genauigkeiten sollten alle Ports in jeder Fahrtrichtung plus beide U-Turn-Richtungen eingestellt werden. | ||
+ | |||
+ | Sind z.B. die ersten Werte gefüllt (Spalte " | ||
+ | |||
+ | |||
+ | ===== Vorgehensweise zur effizienten Feineinstellung der DS-Abgänge ===== | ||
+ | Hierzu lassen sich die Parameter **OFFSET_PORT_POSITION** und **OFFSET_PORT_POSITION_U_TURN** nutzen. | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Die Offset-Parameter können auch auf 0 gesetzt werden, dies empfiehlt sich, wenn die DS sehr symmetrisch ist und kein Getriebe verwendet wird. | ||
+ | Daher am besten mit 0 starten und prüfen, wie genau die Ports angefahren werden. Dann evtl. einen Offset verwenden, um das Feinjustieren zu erleichtern. | ||
+ | |||
+ | Bei der Fleischmann Drehscheibe und einem 400 Step Motor ohne Getriebe sollte man beide Parameter auf 0 setzen. | ||
+ | |||
+ | </ | ||
+ | |||
+ | Nach dem Kalibrieren von 0-Punkt, Steps pro Umdrehung und Getriebespiel muss man die Ports in positiver, negativer und als U-Turn Richtung (positiv und negativ) feingetuned abspeichern, | ||
+ | um möglichst genau positionieren zu können. | ||
+ | |||
+ | Beim Speichern des ersten Ports in einer Drehrichtung werden auch die Positionen der restlichen Ports für die jeweilige Richtung ins EEPROM geschrieben. | ||
+ | Bei positiver Richtung (z.B. im Uhrzeigersinn) wird der **OFFSET_PORT_POSITION** bei den anderen Ports abgezogen, dann kann man anschließend jeden Port mit dem Drehencoder | ||
+ | in positiver Richtung anfahren, die DS bleibt ein Stückchen vor dem Port stehen und man kann manuell in positiver Richtung das Feintuning mit Poti oder Drehencoder machen, | ||
+ | dann abspeichern. Auf diese Weise kann die Drehrichtung beibehalten werden und es kommt nicht zum lästigen Fehler, „dass die Drehrichtung geändert wurde“. | ||
+ | |||
+ | In negativer Richtung wird entsprechend verfahren, ergo **OFFSET_PORT_POSITION** addiert. | ||
+ | |||
+ | Bei U-Turns wird der Offset ebenfalls in beiden Richtungen berücksichtigt. Die Speicherung der restlichen Port ist ebenfalls aktiv. | ||
+ | |||
+ | Der Ablauf zum Einstellen der DS ist dann: | ||
+ | |||
+ | - Kalibrieren von 0-Punkt, Steps pro Umdrehung und Getriebespiel | ||
+ | - Anfahren eines ersten Ports in positiver Richtung, Feintuning und Speichern der Position | ||
+ | - Anfahren aller weiteren Ports in positiver Richtung, Feintuning und Speichern (aufgrund der Offsets stoppt die DS ein Stückchen früher) | ||
+ | - Anfahren eines ersten Ports in negativer Richtung, Feintuning und Speichern der Position | ||
+ | - Anfahren aller weiteren Ports in negativer Richtung, Feintuning und Speichern (aufgrund der Offsets stoppt die DS ein Stückchen früher) | ||
+ | - Das gleiche pro Port für die U-Turn Positionen durchführen; | ||
+ | |||