Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Der Einstieg in die MobaLedLib:

Stammtische

Workshops

aktuell verwendete Versionen


Verwendung mit der MoBa-Zentrale

Steuerung der MobaLedLib-Effekte

Erste Hilfe

Bewegung mit der MLL

Servoplatine

Relaisplatine

WS2811-BiPol


Sound mit der MLL

JQ6500

MP3-TF-16P

Hauptplatine

Sounddateien

Anwendungsbeispiele:

3D-Druck

Entwicklungen MoBa-Universum

Platinen van Theo

MobaLedLib Sonderplatinen

Drehscheibensteuerung LocoTurn V 1.2

Drehscheibe (V0.6)

Lok-Platinen

OLED Displays

Infrared to Z21 Bridge

Hilfereiche Themen

Wissen für Fortgeschrittene

Impressum & Datenschutz

Für Wiki-Editoren:

Server online

playground:playground

Dies ist eine alte Version des Dokuments!


PlayGround

Drehscheibe

Kalibrierung der Drehscheibe

Voraussetzung: Die Drehscheibe wird sich nur im Idealfall spielfrei und völlig gleichmäßig ohne zu ruckeln drehen. Gerade bei Selbstbau-Drehscheiben, wie meiner, werden bei einer Umdrehung und bei Richtungswechsel durch Abbremsen und Beschleunigen sowie unterschiedliche Reibung Microsteps verloren gehen. Die Steuerung der Drehscheibe ist so ausgelegt, dass diese Ungenauigkeiten in einem großen Bereich ausgeglichen werden können.

Damit der Stepper aber keine oder möglichst wenige dieser Microsteps „verliert“, sollten die Einstellungen der Werte für den Stepper den Vorgaben der Datenblätter entsprechen und sorgfältig eingestellt werden. Die in den Datenblättern angegebenen Versorgungsspannungen sind für uns nicht wichtig. Diese bezieht sich auf den Betrieb mit einer einfachen, nicht Strom geregelten Stepper-Platine. Bei der A4988 und allen anderen dieser kleinen Platinen wird der Strom automatisch geregelt. Er wird über das Poti auf der Platine eingestellt (über die Spannung am Poti).

Bei den relativ schnellen Geschwindigkeiten, welche wir verwenden, muss die Versorgungsspannung unbedingt größer sein, weil eine Spule den Strom beim Einschalten nicht sofort annimmt. Bei einer höheren Spannung geht das schneller. Dabei muss man beachten, dass die Spannung ständig ein und ausgeschaltet wird, wenn sich der Motor dreht. Wenn die Spannung zu gering ist, dann gehen Schritte verloren.

Die Schaltung sollte mit 14V (mindestens) und ca. 18V betrieben werden.

Beispiele: Flacher Stepper NEMA 23:

  • TMC2208 / TMC2100: 0.628V
  • DRV8825: 0.32V
  • A4988: 0.512V

NEMA17:

  • TMC2208 / TMC2100: 1.20 V
  • DRV8825: 0.60V
  • A4988: 0.960V

Spielzeug Schrittmotor:

  • TMC2208 / TMC2100: 0.080V = 80mV
  • DRV8825: 0.035V = 35mV
  • A4988: 0.064V = 64mV

NEMA17 mit 27:1 Getriebe:

  • TMC2208 / TM2100: 0.314V
  • DRV8825: 0.16V
  • A4988: 0.128V

Vor dem Kalibriervorgang müssen die notwendigen Anpassungen der Konfiguration an die eigene Drehscheibe in der Turntable_Config.h-Datei vorgenommen werden. Änderungen in der Turntable.ino würden bei einem zukünftigen Software-Update verloren gehen.

Aus der Vielzahl der Konfigurationsvarialen hier die für mich wesentlichen:

  • Anzahl der benötigten Ports (in meinem Fall sind vier Ports vorgesehen) #define PORT_CNT
  • DCC_Port_Address_List anpassen #define DCC_PORT_ADDR_LIST
  • Polarisation ein/ausschalten je nach System #define POLARISATION_RELAIS_PIN A1 Polarisation Relais for dual rail system (Set to -1 if not used) * Zur Kalibrierung den DEBUG-Mode einschalten, damit im seriellen Monitor die Werte ausgelesen werden können #define NABLE_DPRINTF 1 Debug Ausgaben ein
  • Bei Bedarf Einstellungen der Ausrichtungen bzw Drehrichtung von Drehscheibe, Potentiometer, Dreh/Drückknopf und Display vornehmen
  • Bei Bedarf Änderungen an den Einstellungen der verschiedenen Drehgeschwindigkeiten vornehmen.

Beispiel meiner Turntable_Config.h-Datei.

HIER EINFÜGEN

Kalibriervorgang

Ich habe für einen ersten Test eine Scheibe mit vier Ports gewählt. Die Software berechnet dann automatisch vier symmetrische Ports. Wenn man einen Port exakt eingestellt hat und die Qualität der Scheibe gut ist, muss man die anderen Ports nicht mehr anpassen. Die Einstellung wird automatisch angepasst.

Zur Kalibrierung muss der (Test-)Aufbau ist abgeschlossen sein, d.h. Hall-Sensor/Magnet und die Gleise müssen positioniert sein. Die Stromversorgung und der NANO über den USB-Port sind angeschlossen. Über die ARDUINO IDE den seriellen Monitor mit der Einstellung „Neue Zeile und 9600 Baud“ starten.

Da es wichtig ist, dass möglichst keine Microsteps verloren gehen, muss zunächst mehrfach geprüft werden wieviel Spiel die Drehscheibe hat.

  • Über den Drehimpulsgeber im Menü „Reset all“ auswählen. Damit wird das EEPROM gelöscht und die Anzahl der benötigten Microsteps ermittelt.
  • Nachdem der Vorgang abgeschlossen ist, über den seriellen Monitor ein „?“ senden.
         Angezeigt werden im seriellen Monitor:
                    * die Position an der sich die Drehscheibe befindet, 
                    * die im Programm automatisch gesetzte Port-Nummer für diese Position, 
                    * die Anzahl der Microsteps für OneTurn, 
                    * die Einstellung des Poti und das Spiel durch die Anzahl der Microsteps (StpHasCont = Stepps has Contact)
  • Über den Drehimpulsgeber im Menü erneut „Reset all“ auswählen.
  • Diesen Vorgang mehrfach wiederholen, um verschiedene Ergebnisse zu erhalten.

Bei mir sieht das Ergebnis so aus:

(Bild SerMon_1 einfügen)

Liefern „OneTurn“ und „StpHasCont“ immer das gleiche Ergebnis, herzlichen Glückwunsch! Der Antrieb der Drehscheibe ist von guter Qualität.

Bei meiner Konstruktion ist das erwartungsgemäß nicht der Fall. Ich habe ein Spiel von ca. 3.1 °. Aber auch dieses recht große Spiel kann das Programm automatisch berücksichtigen und korrigieren. Wenn man in der einen Richtung an einen Port fährt sollte das Programm automatisch das Spiel berücksichtigen und die notwendigen Microsteps mehr ausführen als beim Anfahren aus der anderen Richtung. Dazu werden die Ports von beiden Seiten aus angefahren und die Positionen gespeichert.

Wenn man das für Anschluss 1 machst, dann bekommen zunächst alle den gleichen Korrekturfaktor. In der „EE Data“ Tabelle ist dann die zweite Spalte ausgefüllt (Nicht 2000000000). Die dritte Spalte ist für „reverse“, eine 180 Grad Drehung. Auch die kann man separat speichern.

Hört sich kompliziert an, ist aber mit etwas Konzentration recht leicht durchzuführen:

  1. Die Drehscheibe steht nach dem obigen mehrfachen Reset auf Port 4. Ich will Port 1 einstellen.
  2. Mit dem Poti die Drehscheibe in Richtung Port 1 drehen. Dabei immer diese Drehrichtung beibehalten und auf keinen Fall zurückdrehen, da dann das Spiel beim Richtungswechsel ein exaktes Ergebnis verhindert und sich die Position nicht speichern lässt. Zum exaktem Ausrichten auf den letzten Millimetern kann auch über das Menü die Funktion „Move manual“ ausgewählt werden und die Drehscheibe in Microsteps bewegt werden. Aber auch hier nur in eine Richtung. Ist man über das Ziel hinausgeschossen, den ganzen Vorgang von Port 4 aus wiederholen.
  3. Ist die Drehscheibe exakt positioniert über das Menü „Save Position“ auswählen.
  4. Es erscheint „Select port to be saved“, nun über den Dreh/Drückknopf die gewünschte Port-Nummer auswählen, hier die „1“, und zur Bestätigung erscheint „Position saved to port 1“.
  5. Nun zu Port 2 wechseln bzw. zu einer Position, die auf der anderen Seite von Port 1 liegt, um wie oben beschrieben, die Port-Position von beiden Seiten aus zu sichern.
  6. Die Vorgänge wie unter 2 – 4 beschrieben auch von dieser Seite durchführen.
  7. Nach dem Erreichen der exakten Port 1 Position diese wieder sichern. Im Menü erscheint dann „Update Ports?“ mit dem Untermenü „ Only this“ und „All port“. In diesem Fall „Only this“ auswählen. Mit der Funktion „All ports“ werden die gespeicherten Werte für alle Ports korrigiert.
  8. Mit den anderen Port entsprechend verfahren.
  9. Über den Menüpunkt „Reverse“ dreht sich die Drehscheibe um 180 Grad. Im Display wird „~3 und 1 reverse“ angezeigt. Die Tilde zeigt an, dass sich die Drehscheibe im Bereich von Port 3 befindet, jedoch nicht exakt positioniert ist.
  10. Wieder den Menüpunkt „Save“ anklicken. Es stehen drei Möglichkeiten zur Auswahl: „Reverse side“, „Normal side“ und „Abort“. Nach dem Anklicken von „Reverse side“ kommt man wieder zur Auswahl „Only this“ und „All ports“. Nach dem Anklicken von „Only this“ erhält man die Meldung „Position saved to port 1“

Damit ist die Einstellung für Port 1 durchgeführt und die anderen Ports können bei Bedarf entsprechend kalibriert werden. Durch Drücken der Reset-Taste des NANO wird das EEPROM ausgelesen und die Werte für die Ports angezeigt.

(Bild SerMon_02 einfügen)

Ergänzungen

Der Nullpunkt wird immer dann neu gesetzt, wenn die Scheibe in positiver Richtung am Hall-Sensor = Nullpunkt vorbeikommt. Die positive Richtung ist die Richtung welche beim Re-Kalibrieren zum Start verwendet wird.

Wenn sie in negativer Richtung am Hall-Sensor vorbeikommt, dann wird der Nullpunkt nur dann neu bestimmt, wenn sie bereits eine Umdrehung in negativer Richtung gedreht wurde.

Die Kalibrierung wird aber auch dann nur in Positiver Richtung vorgenommen. Darum dreht sie sich zunächst ein Stück zurück bevor die Kalibrierung in positiver Richtung beginnt. Dabei wird „Turn back and set zero pos.“ angezeigt.

Steuerung über den seriellen Monitor

 m-1000  Move 1000 micro steps counter clock wise
 m+1000  Move 1000 micro steps clock wise
 p+123   Move to step position +123
 s5000   Set the speed to 5000
 ?       Print position
 w+2     Write port position 2 for the positive turning direction (w-2 write the neg. direction)
 ce      Clear EEProm and restart
 +       Next Port
 -       Prior Port
 7       Move to Port 7
 r       Reverse turn Table
 o       Sound On/Off
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
playground/playground.1615238958.txt.gz · Zuletzt geändert: 2021/03/08 22:29 (Externe Bearbeitung)