Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
playground:playground [2021/03/08 22:00] – nessi | playground:playground [2021/11/22 14:12] – nessi | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== PlayGround ====== | ====== 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, | ||
- | Damit der Stepper aber keine oder möglichst wenige dieser Microsteps „verliert“, | + | **Formsignale |
- | + | ||
- | Bei den relativ schnellen Geschwindigkeiten, | + | |
- | + | ||
- | => **Die Schaltung sollte | + | |
- | ** | + | |
- | + | ||
- | 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: | + | |
- | | + | |
- | | + | |
- | * Polarisation ein/ | + | |
- | * Zur Kalibrierung den DEBUG-Mode einschalten, | + | |
- | #define NABLE_DPRINTF 1 //Debug Ausgaben ein | + | |
- | * Bei Bedarf Einstellungen der Ausrichtungen bzw Drehrichtung von Drehscheibe, | + | |
- | * 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/ | ||
- | |||
- | 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. | ||
- | | + | Quelle:** MLL Stammtisch Mai 2021** |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | * Über den Drehimpulsgeber im Menü erneut „Reset all“ auswählen. | + | Tipps zu den Platinen, zum Einbau des Steppers und erste grundsätzliche Überlegungen zur Steuerung mit der MLL sind vom Anfang des Videos bis Minute 32 zu finden. |
- | * Diesen Vorgang mehrfach wiederholen, um verschiedene Ergebnisse zu erhalten. | + | Ab Minute 33 wird die Steuerung des zweibegriffigen Formsignals vorgeführt, die im Folgenden erläutert wird. |
- | Bei mir sieht das Ergebnis so aus: | + | **Benötigte Teie:** |
+ | * Hauptplatine über USB- Kabel mit PC verbunden | ||
+ | * Stromversorgung für Steppermotor | ||
+ | * Formsignal mit eingebautem Mini-Steppermotor | ||
+ | * Bestückte Stepperplatine mit einer (550) oder drei Anschlussmöglichkeiten (551) für Stepper-Motoren | ||
+ | ** | ||
+ | Ablauf:** | ||
- | (Bild SerMon_1 einfügen) | + | Den Pattern-Configurator aufrufen und, wenn bisher noch nicht durchgeführt, |
+ | Das „__Dep Signal4__“ Beispiel aufrufen und über die Schaltfläche **Neues Blatt** | ||
+ | Nun in das Blatt „Formsignal“ wechseln. | ||
- | 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“, | ||
- | Hört sich kompliziert an, ist aber mit etwas Konzentration recht leicht durchzuführen: | + | Für die Steuerung des Steppers brauchen wir zwei Steuerbefehle: |
- | + | ||
- | - Die Drehscheibe steht nach dem obigen mehrfachen Reset auf Port 4. Ich will Port 1 einstellen. | + | |
- | - Mit dem Poti die Drehscheibe in Richtung Port 1 drehen. Dabei immer diese Drehrichtung beibehalten und auf keinen Fall zurückdrehen, | + | |
- | - Ist die Drehscheibe exakt positioniert über das Menü „Save Position“ auswählen. | + | |
- | - Es erscheint „Select port to be saved“, nun über den Dreh/ | + | |
- | - Nun zu Port 2 wechseln bzw. zu einer Position, die auf der anderen Seite von Port 1 liegt, um wie oben beschrieben, | + | |
- | - Die Vorgänge wie unter 2 – 4 beschrieben auch von dieser Seite durchführen. | + | |
- | - 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. | + | |
- | - Mit den anderen Port entsprechend verfahren. | + | |
- | - Ü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. | + | |
- | - 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, | + | |
- | + | ||
- | 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 === | + | |
- | + | ||
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | ? | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | + | ||
- | ===== Meine Turntable_Config.h Datei ===== | + | * Stepper ein-/ |
+ | * Drehrichtung des Steppers – über den gelben Kanal, Wert 255 eine Drehrichtung, | ||
- | < | + | Der blaue Kanal kann zur Steuerung einer LED verwendet werden, z.B. der Signalbeleuchtung. Diese Funktion nutze ich im Prog-Gen, nicht hier im Pattern-Config. |
- | // Configuration for the stepper program | + | |
- | // | + | |
- | // Add all individual config lines in this file | + | |
- | // | + | |
- | // # | + | |
+ | Daher den Wert für die **Ausgabekanäle auf „2“** einstellen. | ||
+ | In der unteren Tabelle könne die Werte für die anderen Ausgabekanäle gelöscht werden. | ||
+ | Für die anderen Einstellungen sind folgende Werte einzutragen bzw. zu ändern: | ||
+ | * Bits pro Wert: „8“ | ||
+ | * Mode: „PM_SEQUENZ_NO_RESTART“ | ||
+ | * Analoges Überblenden: | ||
+ | * Goto Activierung: | ||
- | #define ALLWAYS_CHECK_STEPS_ONE_TURN | + | Bild Prog-Gen einfügen |
- | #define PORT_CNT | + | |
- | #define CIRCUMFERENCE | + | |
- | #define ROTATIONSWITCH_DIRECTION | + | |
- | #define ROTATIONSWITCH_MENU_DIR | + | |
- | #define TURNTABLE_DIRECTION | + | |
- | #define TURNBACK_SPEED | + | |
- | #define NOT_ENABLE_PIN | + | |
- | // The pin of the module must be left open (std 6) | + | |
- | #define STEPPER_RAMP_LENGTH | + | |
- | // Set to 50 if 1/16 steps are used (MS1 - MS3 connected do +5V) | + | |
- | #define MOVE_SPEED1 | + | |
- | #define MOVE_SPEED2 | + | |
- | #define MOVE_SPEED3 | + | |
- | #define MOVE_SPEED4 | + | |
- | #define POLARISATION_RELAIS_PIN | + | |
- | #define OLED_TYP | + | |
- | #define MOVING_FLASH_INVERS | + | |
- | #define MOVING_FLASH_MODE | + | |
- | #define ENABLE_DPRINTF | + | |
- | #define SPEED_POTI_DIRECTION | + | |
- | #define SPEED_POTI_MID_RANGE | + | |
- | #define SPEED_POTI_CENTER | + | |
- | #define ANALOG_SPEED_DIVISOR | + | |
- | #define CLEARENCE_TEST_SPEED | + | |
- | #define CALIBRATE_SPEED | + | |
- | #define STEP_PIN | + | Über die Taste **„Programm Generator“** die Daten zum Prog-Gen schicken. |
- | #define DCC_PORT_ADDR_LIST | + | Im Prog-Gen die Funktion an die gewünschte Stelle einfügen. |
- | DCC_PORT_ADDR(2, | + | |
- | DCC_PORT_ADDR(3, | + | |
- | DCC_PORT_ADDR(4, | + | |
- | #define LAST_USED_DCC_ADDR | + | Hier ist ein neues Blatt, DCC Test(2), für Testzwecke angelegt worden. |
+ | * Zunächst nur die Zeilen | ||
+ | * Zeile **11** ist der rote Kanal, der den Stepper über „ ROT/GRÜN) ein- bzw. ausschaltet. | ||
+ | * Über Zeile **12** kann die Drehrichtung bestimmt werden. Eingeschaltet (GRÜN) wird der Wert 255 gesendet, ausgeschaltet (ROT) der Wert 0 und damit die entgegengesetzte Drehrichtung. | ||
+ | * Zeile **13** dient zum Schalter der Signalbeleuchtung. Diese Funktion hat keinen Einfluss auf den Stepper und muss nicht genutzt werden. | ||
- | TEXT | + | Nach der Einstellung des Signals können die Zeilen __11 bis 13 deaktiviert__ und die __Zeilen 6, 8, 9 aktiviert__ werden. |
- | </code> | + | * Mit der Zeile **6** wird der letzte Zustand gespeichert „#define ENABLE_STORE_STATUS()“. Damit wird erreicht, dass beim nächsten Einschalten der Anlage, bei einem Reset des Nano oder nach Unterbrechung der Stromversorgung der letzte definierte Zustand wieder eingenommen wird. (Die letzten Zustände bei Signalen oder anderen per DCC, Selectrix oder CAN gesteuerten Funktionen werden gespeichert und beim nächsten Start wieder aktiviert. Wenn der Modus nicht aktiviert ist, dann sind die entsprechenden Funktionen abgeschaltet bzw. beginnen mit dem in in der Spalte "Start Wert" definierten Zustand.) |
+ | * Zeile** 8** beinhaltet die vom Pattern-Config erzeugte Funktion. Nach der Eingabe der Adresse muss der Typ als „Ein/Aus“ definiert werden, nicht als Taster!, um eine mehrfache Bewegung der Flügel des Signals in eine Richtung auszuschließen. | ||
+ | * Mit Zeile **9** kann bei Bedarf eine LED, z.B. die Signalbeleuchtung, | ||