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.

Die MF70 CNC-Fräse

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

Schaltplan der CNC-Fräse Schaltplan der CNC-Fräse

PIC-Code der CNC-Fräse

PC-Code der CNC-Fräse (update 18.3.2020)

 

PC-Software der CNC Fräse
Screenshot der PC-Software