Schrittmotorsteuerung in Micropython

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
paul25
User
Beiträge: 1
Registriert: Mittwoch 25. Dezember 2024, 08:42

Hallo Leute, ich bin ein neues Mitglied dieses Forums. Ich habe vor Kurzem ein ESP32-Board gekauft und darauf Micropython installiert. Da ich einige der Grundlagen von Python kenne, dachte ich darüber nach, DIY-Projekte mit dieser fantastischen Sprache und Plattform zu machen.

Ich habe den ganzen Tag versucht, herauszufinden, wie man einen Schrittmotor (NEMA23) mit einem externen Treiber wie einem DM556 antreibt. Ich verstehe einfach nicht, wie das geht.
Also bitte ich jetzt um eure wertvolle Hilfe.
Benutzeravatar
Dennis89
User
Beiträge: 1516
Registriert: Freitag 11. Dezember 2020, 15:13

"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
ctrltech
User
Beiträge: 2
Registriert: Mittwoch 2. April 2025, 12:42

Klingt spannend – genau sowas habe ich auch mal mit einem kleinen XY-Tisch probiert. Ich hatte ähnliche Herausforderungen, gerade beim Timing der Step/Dir-Signale über GPIO. Das sauber hinzubekommen, ohne dass das System blockiert, ist gar nicht so trivial.

Wie hast du das mit den Rampen (Beschleunigung/Abbremsen) gelöst? Ich hatte anfangs einfach feste Pausen zwischen den Steps, aber das war bei schnelleren Bewegungen nicht mehr sauber. Irgendwann hab ich dann angefangen, Beschleunigungsrampen per Software nachzubilden – aber das wird schnell komplex, gerade wenn mehrere Achsen gleichzeitig laufen.

Bin gespannt, wie du weiter machst – und ob du die Ansteuerung eher bei Python belässt oder später auf was „echtzeitfähigeres“ wechselst (z. B. Microcontroller, Steuerung etc.).
Benutzeravatar
sparrow
User
Beiträge: 4525
Registriert: Freitag 17. April 2009, 10:28

@ctrltech: Nur vorsichtshalber: der ESP32 ist ja ein Microcontroller und es wird "MicroPython" verwendet. Das ist nicht mein Gebiet, aber mein - möglicherweise falscher - Stand ist, dass MicroPython für das Ziel kompiliert wird. Das kann aber auch falsch sein.
Benutzeravatar
noisefloor
User
Beiträge: 4172
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

... und willkommen im Forum :-)
Ich verstehe einfach nicht, wie das geht. Also bitte ich jetzt um eure wertvolle Hilfe.
"geht nicht" ist i.d.R. keine Aussage, auf der man Hilfe aufbauen kann. Da musst du schon mehr Details liefern. Was verstehst du nicht? Wie man MicroPython auf den Microcontroller installiert? Wie an den Programmcode auf den Microcontroller bekommt? Das Programm selber? Wenn letzteres: zeig' mal den Code, den du versucht hast, auszuführen? Oder verstehst du nicht, wie man den Schrittmotor an den Microcontroller anschließt?

Gruß, noissefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13997
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@sparrow: MicroPython ist auch interpretierter Bytecode. Man kann das vorkompilieren, dann ist der Start/der Import von Modulen schneller, aber man hat trotzdem zur Laufzeit einen Interpreter und automatische Speicherverwaltung der Objekte.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Benutzeravatar
noisefloor
User
Beiträge: 4172
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Was bzgl. der Hardware und MicroPython richtig / wichtig ist: man braucht eine passende MicroPython Firmware für den eingesetzten Mikrocontroller. Die stellt dann a) die Laufzeitumgebung bereit, die den MicroPython Code ausführt und b) enthält die plattformspezifische Unterstützung, damit die entsprechenden Zugriffe auf die spezifische Hardware des Mikrocontrollers auch verfügbar sind.

Dazu gibt es in der MicroPython Doku reichlich Anleitungen, wie z.B. für MicroPython auf dem ESP32.

Gruß, noisefloor
Antworten