Für einfache Prototypen von elektronischen Schaltungen verwendet man oft Lochraster-Platinen. Um mit diesen Platinen einen sauberen Aufbau zu erreichen, muss man während dem Löten immer genau überlegen, wie man die Bauteile platziert und die Leitungen am besten führt. Boards mit professionell gefertigten Leiterplatten sehen meistens besser aus. Bei professionell gefertigten Leiterplatten verlängert sich die Designphase, da die Leitungsführung bereits während dem Routing festgelegt wird. Damit reduziert sich die Lötarbeit zu einfachem Einlöten von Bauteilen.
Da professionell gefertigte Leiterplatten für einfache Hobby-Projekte zu teuer wären und ich keine Chemikalien verwenden möchte, bleibt nur eine weitere Möglichkeit - eine CNC Fräse.
Eine Computer-gestützte Fräse benötigt folgende Komponenten:
Als Basisgerät verwende ich eine Proxxon MF70. Dieses Gerät ist eine fertig montierte einfache Fräse mit Handkurbeln. Damit habe ich einen Frästisch mit einer Arbeitsfläche von 134mm x 48mm und einer vertikalen Verstellmöglichkeit von 83mm. Pro Umdrehung einer Handkurbel verändert sich die Tisch-Position um 1mm. Des Weiteren ist auch eine Spindel mit variabler Drehzahl fix montiert.
Damit der Tisch gesteuert werden kann, werden die Handkurbel durch Schrittmotoren ersetzt. Da die verwendeten Schrittmotoren 100 Schritte pro Umdrehung benötigen, fährt man pro Schritt 1/100mm. Die Ansteuerung der Motoren übernehmen L297/298 ICs, welche mit dem Parallel-Anschluss des Computers verbunden sind. Auf dem Computer läuft LinuxCNC.
Stück | Beschreibung | Typ |
---|---|---|
1 | Frästisch mit Spindel | Proxxon MF70 |
3 | Schrittmotoren | QSH-4218-41-10-035 |
1 | Montagematerial für Schrittmotoren | Aluwinkel + Kleinteile |
1 | Netzteil für Steuer-Elektronik und Motoren | EI60 25VA 230V 24V, 7824A, TMA 2405S |
1 | Steuer-Elektronik | L297, L298 |
6 | End-Taster | |
1 | Not-Aus-Taster | |
2 | Relais für Spindelversorgung | ALE14B24 |
1 | Computer mit LPT Schnittstelle |
Für die Versorgung der Elektronik und der Motoren verwende ich einen eigenen Aufbau. Die 230V-AC Netzspannung wird mit einem Transformator EI60 25VA 230V 24V auf 24V-AC und über einen Vollweg-Gleichrichter und Kondensatoren auf ca. 34V-DC transformiert. Diese Spannung wird direkt für die Schrittmotoren verwendet. Für die 24V Relais verwende ich einen 7824A Regler. Die 5V IC-Versorgung wird mit TMA 2405S Reglern erzeugt. Da die 5V Regler den Ausgang vom Eingang isolieren, muss man sämtliche DC-Grounds miteinander verbinden.
Ein 5V Strang wird von den Schrittmotor-Treiber-ICs (max. 80mA für L297 und max. 36mA für L298) und ein paar Pull-Ups (30mA für 6 Stück 1k) belastet. Der maximale Strombedarf von 146mA ist somit unterhalb dem maximal erlaubten Ausgangsstrom (200mA) des 5V Reglers TMA 2405S. Ebenso ist die kapazitive Belastung mit ca. 33uF im erlaubten Bereich (max. 220uF).
Der 24V Strang wird durch die 5V Regler (max. 55mA pro Regler) und durch die beiden Relais (je 17mA bei einer Spule mit 1440R) belastet. Der maximale Strombedarf von 254mA liegt unterhalb 1A des 24V Reglers 7824A. Da sich der Regler bei dieser Belastung bereits stark erwärmt wird ein Kühlkörper benötigt (65°C/W).
Die 34V Versorgung wird durch den 24V Regler (254mA) und den Strömen der Schrittmotoren belastet. Somit sollten die Schrittmotoren maximal 786mA an Strom ziehen um den Transformator nicht zu überlasten (max. 1040mA).
Die Ansteuerung der bipolaren Schrittmotoren übernehmen die ICs L297 und L298. Der L298 enthält eine H-Brücke um die Phasen in beiden Richtungen mit Strom zu versorgen. Die Freilauf-Dioden sind nicht integriert und müssen noch extern platziert werden. Der L297 übernimmt das Erzeugen der korrekten Signale für den L298. Als Eingangsparameter erhält er Steuersignale (Richtung und Schritt) und das Stromsensor-Signal. Die Arbeitsweise kann durch zusätzliche Steuerleitungen verändert werden. Bei meinem Aufbau verwende ich Halb-Schritte und "Phase-chopping". Der Halb-Schritt-Modus fügt zwischen zwei Vollschritten noch einen weiteren Schritt ein. Der "Phase-chopping"-Modus gibt an, wie die Stromregelung vorgenommen wird. In diesem Modus wird nur der untere Transistor ausgeschaltet, sobald der Soll-Strom erreicht ist. Somit sinkt der Strom in den Phasen des Motors nur langsam. Im "Inhibit-chopping"-Modus werden beide Transistoren ausgeschaltet und der Strom sink schneller.
Damit die Spindel über den Computer ein- und ausgeschaltet werden kann, werden zwei Relais (L, N) mit einem FET geschaltet. Beide FETs werden mit dem selben Signal angesteuert.
Da die parallele Schnittstelle nur eine begrenzte Anzahl an Eingängen besitzt, werden die Endschalter einer Achse kombiniert. Somit ergeben sich vier Eingangs-Signale: X-Ende, Y-Ende, Z-Ende und Not-Aus-Betätigt. Die Endschalter werden so verwendet, dass sie im Normal-Zustand geschlossen sind. Somit wird im Falle eines Drahtbruches auch gestoppt.
Für die Schrittmotor-Treiber werden Bauteile laut der der Tabelle unterhalb benötigt. Damit ich keine eigene Print anfertigen musste, bestellte ich mir bereits fertige von http://www.robotikhardware.de.
Anzahl | Referenz | Wert | Beschreibung |
---|---|---|---|
1 | C1 | 3n3 | 10V Keramik Kondensator |
1 | C2 | 100n | 10V Keramik Kondensator |
1 | C3 | 33u | 10V Elko |
1 | C4 | 100n | 60V Kermik Kondensator |
1 | C5 | 2m2 | 60V Elko |
6 | R1-R6 | 1k | Widerstand |
1 | R7 | 6k2 | Widerstand |
1 | R8 | 22k | Widerstand |
2 | R9, R10 | R56 | Leistungswiderstand |
1 | RV1 | 10k | Poti |
8 | D1-D8 | BYV27 | Diode |
1 | IC1 | L297 | Schrittmotor-Controller |
1 | IC2 | L298 | Vollbrücken-Treiber |
Die Steuerung auf der Computer-Seite übernimmt ein Linux Program LinuxCNC (http://www.linuxcnc.org/). Die Software generiert die notwendigen Steuersignale, welche über die parallele Schnittstelle ausgegeben werden. Des Weiteren verarbeitet sie G-Code und stellt die Fräsdaten grafisch dar.
Die Grafik unterhalb stellt die Pinbelegung dar. Prinzipiell können die Pins in der Software frei konfiguriert werden.
Die nächsten Printscreens stellen die gewählten EMC-Parameter dar. Die parallele Schnittstelle liegt auf der Adresse 0x378. Die Schrittpulsdauer und die Zwischenzeiten wurden auf 10us gesetzt. Die Voreinstellungen für L297 konnten nicht verwendet werden, da vor dem Motorcontroller noch etwas langsamere Transistoren platziert wurden.
Die Schritt-Signale mussten nicht invertiert werden. Die Richtungs-Signale wurden nach einigen Tests so konfiguriert, damit der Tisch in die richtige Richtung fährt (bei diesem Aufbau: Y, Z Richtung negiert). Der Not-Aus Eingang musste auch noch invertiert werden.
Die Motoren haben eine Schrittweite von 1.8°. Somit benötigt man für eine volle Umdrehung 200 Schritte. Betrieben werden sie im Halbschrittmodus. Eine komplette Umdrehung der Spindel bewegt den Tisch um 1mm.
Da Layout Programme meistens keinen G-Code direkt erzeugen können, benötigt man noch ein Konvertierungs-Tool. Verwendet man KiCad, so kann man pcb2gcode verwenden. Verwendet man Eagle, so gibt es ein "user language program" (ULP), das die Brd-Dateien nach G-Code konvertiert (PCB-GCODE).
Um die erzeugten G-Code Dateien etwas lesen zu können, hier ein kleiner Überblick verschiedener G-Code Befehle. Ausführlichere Liste vorhandener Befehle finden man im englischen Wikipedia.
G-Code | Beschreibung |
---|---|
A | absolute oder relative Positionsangabe A-Achse (Rotationsachse um X) |
B | abs. oder rel. Positionsangabe B-Achse (Rotationsachse um Y) |
C | abs. oder rel. Positionsangabe C-Achse (Rotationsachse um Z) |
F | Angabe Vorschub (mm/min) |
I | Angabe Kreismittelpunkt - X Position für Rotationsbewegungen |
J | Angabe Kreismittelpunkt - Y Position für Rotationsbewegungen |
R | Angabe Kreisradius für Rotationsbewegungen |
S | Angabe Spindel Geschwindigkeit (rpm) |
T | Auswahl Werkzeug |
X | absolute oder relative Positionsangabe X-Achse |
Y | abs. oder rel. Positionsangabe Y-Achse |
Z | abs. oder rel. Positionsangabe Z-Achse |
G00 | schnelle Positionierung (ohne Bearbeitung, nicht immer auf direktem Weg) |
G01 | lineare Positionierung (mit Bearbeitung) |
G02 | Rotationsbewegung im Uhrzeigersinn |
G03 | Rotationsbewegung gegen Uhrzeigersinn |
G20 | Angaben in Zoll |
G21 | Angaben in mm |
G28 | Rückkehr zur Nullposition |
G90 | Angaben in Absolutpositionen |
G91 | Angaben in Relativpositionen |
G92 | Setzen der Nullposition |
M02 | Programmende |
M03 | Spindel ein (im Uhrzeigersinn) |
M04 | Spindel ein (gegen Uhrzeigersinn) |
M05 | Spindel aus |
G00 X10.0 Y20.0 Z30.0 lineare Positionierung mit X, Y und Z Angaben |
G00 X10.5 lineare Positionierung mit X Angabe (Y, Z Position bleibt gleich) |
G02 I10 J10 X.. Y.. zirkuläre Positionierung im Uhrzeigersinn mit Angabe des Kreismittelpunktes und des Endpunktes (Punkt am nächsten zu X, Y Position) |
G03 I10 J10 X.. Y.. zirkuläre Positionierung gegen Uhrzeigersinn mit Angabe des Kreismittelpunktes und des Endpunktes (Punkt am nähesten zu X, Y Position) |
G02 R10 X.. Y.. zirkuläre Positionierung im Uhrzeigersinn mit Angabe des Radius und des Endpunktes (positiver Radius verwendet kürzere Kreisbahn, Mittelpunkt wird automatisch bestimmt) |
G02 R-10 X.. Y.. zirkuläre Positionierung im Uhrzeigersinn mit Angabe des Radius und des Endpunktes (negativer Radius verwendet längere Kreisbahn, Mittelpunkt wird automatisch bestimmt) |
Attachment | Size |
---|---|
Fräsdaten mit Inkscape erstellen | 985.98 KB |
Fräsdaten mit KiCAD erstellen | 1.44 MB |