Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
playground:playground [2021/03/09 15:56] – nessi | playground:playground [2021/11/22 15:31] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
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“, | ||
- | |||
- | Bei den relativ schnellen Geschwindigkeiten, | ||
- | |||
- | => **Die Schaltung sollte mit 14V (mindestens) und ca. 18V betrieben werden. | ||
- | ** | ||
- | ^ Modul ^ NEMA 23 flach ^ NEMA 17 ^ Spielzeug Schrittmotor ^ NEMA17 mit 17:1 Getriebe^ | ||
- | | TMC2208 | ||
- | | TMC2100 | ||
- | | DRV8825 | ||
- | | A4988 | 0.512V | ||
- | |||
- | |||
- | |||
- | 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/ | ||
- | * 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. (am Ende des Texts - Link folgt bei endgültiger Plazierung.** | ||
- | |||
- | ==== 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. | ||
- | |||
- | | ||
- | * 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, | ||
- | |||
- | 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“, | ||
- | |||
- | Hört sich kompliziert an, ist aber mit etwas Konzentration recht leicht durchzuführen: | ||
- | |||
- | - 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 DCC ==== | ||
- | |||
- | in Bearbeitung | ||
- | |||
- | ==== Steuerung über den seriellen Monitor ==== | ||
- | |||
- | | ||
- | | ||
- | | ||
- | | ||
- | ? | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | |||
- | ==== Meine Turntable_Config.h Datei ==== | ||
- | |||
- | < | ||
- | // Configuration for the stepper program | ||
- | // | ||
- | // Add all individual config lines in this file | ||
- | // | ||
- | // # | ||
- | |||
- | #define ALLWAYS_CHECK_STEPS_ONE_TURN | ||
- | #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 | ||
- | #define DCC_PORT_ADDR_LIST | ||
- | DCC_PORT_ADDR(2, | ||
- | DCC_PORT_ADDR(3, | ||
- | DCC_PORT_ADDR(4, | ||
- | |||
- | #define LAST_USED_DCC_ADDR | ||
- | </ | ||
- |