Go Down

Topic: Tipps für Refactoring (Read 400 times) previous topic - next topic

Demokrit

Feb 24, 2019, 12:58 pm Last Edit: Feb 25, 2019, 08:02 pm by uwefed Reason: adding picture
Moin in die Runde,

ich liege gerade in den letzten Zügen meines ersten Arduino (Nano) Projektes - einem Kamera Slider mit 4 Betriebsarten: Slide, Step, Dolly-Zoom und Makro. Alles läuft wie es soll. Den Prototyp habe ich noch mit einem handverdrahteten PCB aufgebaut, welches ich jetzt durch ein echtes PCB ersetzen will. Gleichzeitig soll alles etwas kompakter werden. Dazu habe ich ein paar Fragen:

1) Ich nutze einen Nema23 Motor mit 2.8A/phase Spitzenstrom. Aktuell betreibe ich ihn mit 24V im ¼ Microstep Mode über einen TB6600 Treiber, welcher 4 A verkraftet. Dieser ist viel zu klobig (siehe Foto, links), um elegant „verpackt" zu werden. Mein Labornetzteil zeigt während des Betriebs einen maximalen Strom von ca. 1 A an. Selbst bei senkrechtem Betrieb mit einer Last von 5 Kg bleibt der Strom unter 1,2 A. Gehe ich Recht in der Annahme, dass hier auch ein DRV8825 genügen würde? Falls ja, wäre dies die beste Wahl, oder gibt es eine bessere, die akustische Vorteile böte?

2) Das Haltemoment des Motors benötige ich nur bei senkrechtem Betrieb des Sliders - welcher jedoch auch vorgesehen ist. Bei horizontalem Betrieb schalte ich die Treiber ab, wenn ich sie nicht benötige (Stromsparfunktion). Jetzt überlege ich, ob nicht ein Neigungssensor sinnvoll wäre, um diese Entscheidung automatisch zu treffen. Die kugelbasierenden Sensoren, die ich bislang gefunden habe, machen jedoch keinen sehr zuverlässigen Eindruck. Kann hier jemand etwas empfehlen, was bei etwa 45° auslöst?

3) Ich nutze die AccelStepper Bibliothek, in deren Doku der Satz steht: „Speeds of more than 1000 steps per second are unreliable". Trotz dieser Aussage funktioniert der ¼ Microstepping Mode auf dem Nano noch problemlos (4000 Steps/s). Noch lieber würde ich 1/8 Microstepping nutzen. Gibt es eventuell eine alternative Bibliothek mit Acceleration/Decelleration, die damit klar käme?

4) Der Slider soll letztendlich auch batteriebetrieben (24V) nutzbar sein. Kennt jemand ein Akku-Pack, welches hierfür geeignet wäre, und ohne internes Step-Up Modul arbeitet? Also native 24V. Falls nein, so würde ich Empfehlungen für gute, aber bezahlbare 18650 Akku-Zellen suchen.

Danke für allen Input,

Thomas

uwefed

#1
Feb 24, 2019, 01:46 pm Last Edit: Feb 24, 2019, 01:51 pm by uwefed
Welche Fotos?
1) Nein, Du brauchst ein 4A Netzteil. Bei Schrittmotoren gibt es keinen Spitzenstrom sondern der Strom fließt immer durch die Spulen unabhängig von der Last an der Achse.
2)Wenn Du's genau willst dann ein 3 Achsen Beschleunigungssensor.
3) Ansteuerung selber schreiben.
4) 2 12V Bleiakkus. Die gibt es auch zu 4 oder 8Ah

Grüße Uwe

Demokrit

#2
Feb 24, 2019, 05:21 pm Last Edit: Feb 24, 2019, 05:29 pm by Demokrit Reason: Picture upload failed again
Hallo Uwe,

der Upload meines Fotos (100 kB., JPG) hat nicht geklappt. Hinweis: Sicherheitsgründe. Als ich es per Edit nachreichen wollte, erfuhr ich, dass ich das nicht darf, da ich noch keine 100 Beiträge habe. Danach klappte intern mein Mittelfinger aus, und ich habe es gelassen (versuche es aber mit diesem Post erneut).

zu 1) Es ging nicht um die Dimensionierung des Netzteils, sondern um die des Schrittmotortreibers. Mir geht es um eine kleinere Bauform.
2) guter Tipp, danke dafür.
3) denkbar, aber eher nö. Ich möchte bald 3 weitere Achsen steuern, und würde durch Basics zu viel Zeit verlieren.
4) zu schwer. Ich bin alt und grau, und muss das alles tragen.

Grüße,
Thomas

====
Bilder upload erneut gescheitert: "There was a problem during the uploading of slider.jpg.
Your post has been made, however the above attachment was not attached. Please use the Back button to edit your post and submit any required changes.
   Your attachment has failed security checks and cannot be uploaded. Please consult the forum administrator."

uwefed

zu 1) Dann müßtest Du schon genau das Model des Motors uns geben.
zu 3) 3D Druckersteuerungen steuern 3 Schrittmotore gleichzeitig an. Ich kann Dir aber keine weitere Hilfe geben weil ich zu wenig davon weiß.
Grüße Uwe

Demokrit

Der Motortyp: MT-2303HS280AW. Das "Kassenmodell" von Openbuilds. Der Motor ist für 2,8A/Phase ausgelegt. Deshalb habe ich einen Schrittmotor-Treiber eingesetzt, der "mehr" verkraftet (TB6600, 4 A/Phase). Im von mir gewünschten Drehzahlbereich (sehr langsam) stelle ich jedoch fest, dass bei 24V Betriebsspannung maximal ca. 1A (total) aus dem Labornetzteil gezogen wird. Deshalb die Frage, ob ein kleinerer Treiber, z.B. DRV8825, hier ausreichen würde. Dieser hätte den Vorteil, nur 5% des Volumens des großen Treibers zu haben - und damit ein ansprechenderes Gehäuse zu erlauben. Derzeit füllt der TB6600 fast die gesamte Unterschale des Motorgehäuses auf der linken Seite. Kein technisches Problem, eher ein ästhetisches.

Zu 3) Die Ansteuerung mehrerer Motoren - egal ob selbst programmiert oder per Library - ist kein Problem. Es wird nur komplex, wenn sanfte Beschleunigung ins Spiel kommt. Hier nutzt AccelStepper einen "sehr teuren" Algorithmus. Deshalb die Frage nach einer eventuell existenten "schlankeren" Stepper-Library.

postmaster-ino

Hi

Die Anzeige des Labornetzgerät lügt.
Wenn der Treiber auf 4A eingestellt ist, werden auch 4A geliefert durch-gereicht.
Wenn diese 4A erreicht sind, schaltet der Treiber ab, nach einer gewissen Zeit schaltet die Stufe wieder zu und wartet wieder darauf, daß 4A gemessen werden.
Wenn der Motor quasi steht, hast Du nahezu keinen induktiven Blindwiderstand, die 24V können die 4A in Sekundenbruchteilen (also eigentlich noch wesentlich weniger) erreichen und der Treiber ist die meiste Zeit abgeschaltet - bis der Timer eben wieder greift und wieder einschaltet.
Das Ding nennt sich Chopper und ist im Stromtreiber enthalten.

Dein Labornetzgerät zeigt Dir nun den Strom an, Den Es über eine gewisse Zeit gemittelt ausgibt - sonst hättest Du von 4,0 (also dem eingestelltem Max-Strom) bis 0,0 Jede Anzeige nahezu gleichzeitig, unterm Strich 8.8A (alle Segmente mehr oder minder an) - da die Anzeige so unbrauchbar wäre, macht das (wohl nicht ganz billige) Netzgerät Das eben nicht.

Bei einem DRV8825 könntest Du am Shunt-Pin indirekt den Strom per Oszi messen (Shunt=Strom-Mess-Widerstand, an Dem fällt eine dem Strom proportionale Spannung ab, Die der Treiber mit dem eingestelltem Strom-Max-Wert vergleicht - und dann die Stufe abschaltet, bis der Timer die Stufe wieder anschaltet).

Stelle Dein Labor-Netzgerät spaßeshalber Mal auf 1,0A Max ein - Du wird bei aktivem Motor die LED der Strombegrenzung sehen (zumindest haben meine 'Labor-Netzgeräte' am Spannungs-/Stromeinstellknopf eine (jeweils rote) LED, welche Vorgabe gerade greift.
Vll kannst Du mit einem dickem Elko auf ein kleineres Netzteil runter, im Schnitt scheint Dir ja 1A (oder knapp drüber) auszureichen - vll. stellst Du auch den Max-Strom einfach auf 1A runter und testest mit der Einstellung erneut.

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

uwefed

#6
Feb 25, 2019, 08:03 pm Last Edit: Feb 25, 2019, 08:03 pm by uwefed
Foto eingefügt.
Grüße Uwe

Demokrit

Hallo postmaster-ino,

1000 Dank für diese Erklärung. Ich hatte selbst schon vermutet, dass durch ein - ich nenne es mal "pulsen" - die Anzeige des Labornetzteils nicht korrekt ist. Der TB6600 ist aktuell gemäß den Motor Spezifikationen begrenzt - auf 2,8A. Der Test mit der Strombegrenzung des Netzteils auf 1A verlief tatsächlich so, wie von Dir vermutet. Danach habe ich den Strom mal auf 1,5A begrenzt, und hier blieb die Limit LED dunkel, und der Motor fuhr wie gewohnt.

Ich werde es einfach mal mit den DRV8825 testen. Sie sollen ja ohne zusätzliche Kühlung bis 1,5A verkraften, im Peak sogar bis 2,2A. Versuch macht kluch - und wenn etwas abraucht, dann war es zumindest nicht teuer. Sobald sie angekommen sind, werde ich hier über meine Ergebnisse berichten.

Grüße,
Thomas

p.s. Und danke an Uwe bzgl. des Fotos.


Go Up