Forum: Mikrocontroller und Digitale Elektronik Schrittmotoransteuerung CNC-Fräse


von lötkolben (Gast)


Lesenswert?

Ich habe vor eine kleine µC gesteuerte CNC-Fräse zu bauen. Die 
Schrittmotortreiber (4 Pins vom µC + Treiber) sind ok, ich frage mich 
aber, wie ich mehrere Schrittmotoren zugleich ansteuere und diagonal und 
im Kreis zu fahren.

Hat jemand Erfahrung mit so was und könnte mir bei meinem Problem 
helfen. Ich suche einen Ansatz und das Problem zu lösen. Ideal wäre es, 
wenn ich einfach die x/y Koordinaten von Start und Endpunkt eingebe bzw 
über RS232 sende und die Fräse die Strecke dazwischen automatisch 
abfährt.

von Floh (Gast)


Lesenswert?

Schau mal nach Bresenham-Algorithmus.
Der ist für Geradeninterpolation gebräuchlich.
Kurvenfahrt wird je nach Programm teils schon in viele Geraden 
umgewandelt.
:-)

von Andreas B. (andreasb)


Lesenswert?

Es gibt dazu bereits fertige Software, falls du interessen hast:

Ich glaube dieser Link wars, leider ist die Seite heute Dunkel, ihr 
wisst ja, http://de.wikipedia.org/wiki/Wikipedia:Protest_gegen_SOPA

http://dank.bengler.no/-/page/show/5470_grbl?ref=mst

Aber Morgen sollte der Link wider gehen, sofern ich das richtige 
Bookmark erwischt habe;-)


mfg Andreas

von Ralf G. (old-school) Benutzerseite


Lesenswert?

@lötkolben (Gast)

> Ideal wäre es,wenn ich einfach die x/y Koordinaten von
> Start und Endpunkt eingebe

schau mal hier ... z.B. als Anregung

http://www.planet-cnc.com/

hatte auch überlegt so was selber zu machen ...
aber für das Geld und den vielen bereits integrierten Features ...
habe ich mir ein "CNC USB controller Mk1 (4 axis)" gekauft und
verwende die eingesparte Zeit lieber für den Bau der Fräse ...

Gruss Ralf

von Holger aus dem Sauerland (Gast)


Lesenswert?

Hallo Lötkolben!

Schau dir mal diese Seite an:

http://www.ipd.uka.de/~buchmann/microcontroller/bresenham.htm

der Herr Buchmann hat das sehr schön erklärt mit einem 2051 Prozessor.
Ich habe das vor einiger Zeit mit einem Atmega nachgebastelt
und ...  läuft!
Wird über USB/Seriel Wandler mit PC verbunden. Muss nur noch ein 
gescheites
Programm für den PC basteln mit DIN- oder/und HPGL-Ansteuerung.
Habe die ganze Sache mit BASCOM geschrieben und Prozessor 14,318 MHz 
Quarz.
Läuft im Timer1-Interrupt.
(Geschwindigkeit ist auch OK bei Halbschrittbetrieb!)

Holger

von lötkolben (Gast)


Lesenswert?

Danke für die vielen Tipps. Werde mir das morgen mal genauer ansehen.

von Stephan (Gast)


Lesenswert?

Stepper zu bewegen ist eine Sache, eine Fräserradienkorrektur zu 
berechnen eine ganz andere.

von Matthias H. (mheininger)


Lesenswert?

Andreas B. schrieb:
> Es gibt dazu bereits fertige Software, falls du interessen hast:
>
> Ich glaube dieser Link wars, leider ist die Seite heute Dunkel, ihr
> wisst ja, http://de.wikipedia.org/wiki/Wikipedia:Protest_gegen_SOPA
>
> http://dank.bengler.no/-/page/show/5470_grbl?ref=mst
>
> Aber Morgen sollte der Link wider gehen, sofern ich das richtige
> Bookmark erwischt habe;-)
>
>
> mfg Andreas

Hallo,

das Projekt ist umgezogen nach

https://github.com/grbl/grbl

mfg Matthias

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

lötkolben schrieb:
> Ich habe vor eine kleine µC gesteuerte CNC-Fräse zu bauen. Die
> Schrittmotortreiber (4 Pins vom µC + Treiber) sind ok, ich frage mich
> aber, wie ich mehrere Schrittmotoren zugleich ansteuere und diagonal und
> im Kreis zu fahren.

Das musst Du Dich nicht mehr fragen - das haben schon andere vor Dir 
getan und brauchbare Lösungen gefunden und kostenlos zur Verfügung 
gestellt :-)

> Hat jemand Erfahrung mit so was und könnte mir bei meinem Problem
> helfen. Ich suche einen Ansatz und das Problem zu lösen. Ideal wäre es,
> wenn ich einfach die x/y Koordinaten von Start und Endpunkt eingebe bzw
> über RS232 sende und die Fräse die Strecke dazwischen automatisch
> abfährt.

Schau Dir mal das kostenlose EMC an (www.linuxcnc.org). Das ist ein 
Linux mit Echtzeitunterstützung, mit der man bspw. direkt über den 
Druckerport die Endstufen ansteuern kann.
(Die gibt es auch als live-CD, also ohne Installation zum Testen)

Mit dem System kann man eigentlich alles erschlagen (hier laufen zwei 
Maschinen genau damit).

EMC2 verarbeitet G-Code, der auch das von Dir angesprochene Verfahren 
nach X/Y, Kreisfahrten, Radiuskompensation, Beschleunigung/Verzögerung 
usw. leistet.

Selbst in einem µC würde ich das nicht aufbauen. Unterschätz die Arbeit 
nicht, gerade, wenn mehrere Achsen absolut synchron laufen müssen.

Chris D.

von Pieter (Gast)


Lesenswert?

moin moin,

>>wenn mehrere Achsen absolut synchron laufen müssen

das ist mit Bresenham noch das trivialste.

Pieter

von lötkolben (Gast)


Lesenswert?

Wenn ich die Software von http://www.linuxcnc.org verwende, wie muss 
dann die Hardware (Pinbelegung des Parallelport) aussehen?

von MaWin (Gast)


Lesenswert?

> das ist mit Bresenham noch das trivialste.

Aber nicht optimal.

Da die Taktimpulse dann in einem zeitlichen Raster liegen,
obwohl die Zeit eigentlich besser aufgelöst werden könnte,
entsteht eine unnötige Rauhheit der Kurve.

Besser wäre es, die Zeitpunkte, zu denen jeweils ein
X Takt erfolgt exakt auszurechnen, und davon unabhängig
die Zeitpunkte zu denen ein Y-Takt erfolgen soll, und
die dann mit möglichst hoher zeitlicher Auflösung einzuhalten.

von R. W. (quakeman)


Lesenswert?

lötkolben schrieb:
> Wenn ich die Software von http://www.linuxcnc.org verwende, wie muss
> dann die Hardware (Pinbelegung des Parallelport) aussehen?

Diese kannst du in LinuxCNC frei konfigurieren. Die einfachste Art wäre 
eine Steuerung mit zwei Pins pro Achse (Richtung und Takt). Schau dir 
mal den Screenshoot unter [1] an, da bekommst du schon mal einen 
Eindruck davon.
Früher hätte man dafür pro Schrittmotor jeweils einen L297 und L298 
benutzt. Heutzutage gibt es aber schon deutlich bessere ICs zur 
Ansteuerung der Motoren.

Ich betreibe selber eine CNC Fräse Marke Eigenbau mit LinuxCNC und kann 
sagen, dass es kaum eine bessere und mächtigere Software dafür gibt. :)

Ciao,
     Rainer

[1] 
http://www.linuxcnc.org/docview/html/config_stepconf.html#sub:Parallel-Port-Setup

von lötkolben (Gast)


Lesenswert?

Perfekt! Danke.

Welche Schrittmotortreiber hast du verwendet?

von sven (Gast)


Lesenswert?

Ich habe vor einer weile das gleiche versucht Bresenham und 
Kreisberechnung alles kein Problem aber die Start und Stop Rampen für 
die Motoren...

Am ende  bin ich zu dem Ergebnis gekommen das eine "Professionelle" 
Steuerung 1000 mal besser ist...

Mein Vorschlag währe das kostenlose Emc2 ( http://www.linuxcnc.org/ ). 
kannst du als Live cd runterladen brauchst nix instalieren nur die 
Schrittmotorkarten an deinen Lpt anschlißen Motoren und Maschiene 
einstellen und dann kanns losgehen

von R. W. (quakeman)


Lesenswert?

lötkolben schrieb:
> Perfekt! Danke.
>
> Welche Schrittmotortreiber hast du verwendet?

Ich habe noch L297/L298 Schrittmotor Treiber. Aber mittlerweile würde 
ich eben neuere nehmen.

Ciao,
     Rainer

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.