Dieses Projekt ergänzt meine Proxxon MF70 Feinfräse um eine 3-Achsen CNC-Steuerung.
Die Schrittmotoren dazu stammen aus alten Druckern. Leider hatte ich in meinem Vorrat nur zwei NEMA17 mit jeweils 1,8° Schrittwinkel, die ich für die X- und Y-Achse verbaut habe. Für die Z-Achse musste ein M55SP-1N mit 7,5° Schrittwinkel herhalten. Mit dem 1,8° Schrittwinkel der X- und Y-Motoren und einer Spindelsteigung von 1mm/Umdrehung des Frästisches kommt die Fräse also auf eine Auflösung von 1/200mm.
Versorgt wird die gesamte Schaltung von einem 20V Laptop-Netzteil, das ordentlich Strom bereitstellen kann. Die 5V-Spannung, die über IC4 generiert wird, wird nur für den Steuerungsprozessor benötigt und kann damit auf eine recht kleine Stromstärke ausgelegt werden.
Als Steuerungsprozessor wird ein einfacher PIC16F54 verwendet, der über eine RS232 Schnittstelle mit einer PC-Software kommuniziert.
Der Prozessor steuert die drei Schrittmotoren über jeweils einen DRV8824 Schrittmotor-Treiber. Für die NEMA17-Motoren werden die Treiber im Full-Step Modus betrieben, womit jeweils ein 1,8°-Schritt pro Ansteuerpuls ausgelöst wird.
Um den M55SP-1N Motor, der eine Schrittweite von 7,5° hat, dazu zu bringen, ebenfalls "nur 1,8° pro Schritt" abzufahren, wird dieser per Hardware im 1/4-step Modus betrieben. Der restliche Teiler hin zu "1,8° pro Ansteuerpuls" wird in der Software des Steuerungsprozessor erledigt.
Ansonsten stellt der Prozessor nur einige wenige low-level Steuerungsbefehle bereit:
- Linien-Lauf: Fährt eine gerade Linie im 45°-Raster des 3D-Raums ab, mit Anlauf- und Abbrems-Rampe
- Einzelschritt: Macht einen einzelnen Schritt mit definierbarer Schrittgröße im 45°-Raster des 3D-Raums
- Schrittgröße für den Einzelschritt festlegen
- Maximal-Geschwindigkeit des Fräskopfes festlegen
- Reset
Aus der Kombination dieser low-level Steuerungsbefehle kann die PC-Software alle möglichen komplexeren high-level Fahrbefehle, wie z.B. gerade Linien und Kreisbögen generieren. In der rudimentären PC-Software, die weiter unten verlinkt ist, habe ich noch auf die Implementierung von G-Code Ansteuerbefehlen verzichtet. Stattdessen verwende ich ein eigenes Befehlsformat. Z.B.:
- LinD, LinW, LinA: Zum Abfahren einer gerade Linie auf der X/Y-Ebene, entweder unter Angabe von dx/dy, eines Winkels und einer Entfernung oder einer absoluten Koordinate
- MovD, MovW, MovA: Zum schnellstmöglichen Ansteuern einer Zielkoordinate auf der X/Y-Ebene, entweder unter Angabe von dx/dy, eines Winkels und einer Entfernung oder einer absoluten Koordinate
- CirD: Abfahren eines Kreisbogens, unter Angabe des Start- sowie Endwinkels, des Radius und der Richtung
- Drun: Abfahren einer geraden Linie im 45°-Raster des 3D-Raums
- Fchg: Aufforderung zum manuellen Wechsel des Fräseinsatzes
PC-Code der CNC-Fräse (update 05.04.2021)
Screenshot der PC-Software
Die folgende kleine PC-Zusatzsoftware macht aus der Fraese einen Bohrautomaten, z.B. für Leiterplatten. Die Software selbst erstellt dazu aus einem Drill-File (Excellon-Format, wie man es beispielsweise von Eagle erzeugen lassen kann) einen für die Fräse verständlichen Ablauf. Für alle in dem Projekt vorhandenen Löcher wird eine Route berechnet, der die Fräse dann im Ablauf genau folgt.
Aktuell ist noch kein Bohrerwechsel vorgesehen. Alle Löcher werden mit dem selben Bohrer (z.B. 0,5mm) gebort. Das reicht mir aber völlig. Das Aufbohren einzelner Löcher auf die gewünschte Größe kann dann leicht von Hand erfolgen.
PC-Code des "Bohrautomaten" (update 05.04.2021)
Screenshot der PC-Software