-
-
Erfahrener Benutzer
Roboter Genie
Ich selbst habe ja Mal angefangen, eine CNC-Firmware für AVR zu entwickeln, die auch die Rasterungs- und Motorsteuerungsaufgaben selbst übernehmen soll.
Der Teil, der die Kreisberechnungen durchführt, ist zwar noch eine Baustelle, funktioniert aber schon relativ gut, auf einem ATMega168 mit 20Mhz kommt meine Implementierung auf ~82000 Schritte/Sekunde bei Kreisradien < 10000 Einheiten und auf ~50000 Schritte/Sekunde bei Kreisradien > 10000.
Ich habe dabei Bresenhams Algorithmus verwendet, leicht modifiziert, um Viertelkreise zu berechnen und schalte dann in jedem Quadranten immer die Richtung um.
Bei jedem Funktionsaufruf wird immer ein struct mit Richtungsdaten (-1, 0, 1) für die erste und die zweite Achse zurückgegeben.
Es sind damit also nur ebene Kreisbewegungen notwendig, mehr lässt der G-Code-Standard zu Glück nicht zu, spiralförmige Bewegungen können einfach durch überlagern mit einer linearen Bewegung auf der dritten Achse erzeugt werden.
Bei Interesse kann ich den Sourcecode mal einstellen.
mfg
Markus
PS: Einige Details zu den Tests: Die Kreisberechnungen wurden eine Sekunde lange durchgeführt und die Ergebnisse in einem FiFo gepuffert, war dieser voll, wurde er entleert. Die reine Rechenzeit für den Algorithmus dürfte vermutlich noch etwas geringer sein.
Der FiFo ist ebenfalls eine Eigenimplementierung von mir.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen