sebastians site
Adventures in Open Source Hard and Software

CNC-Fräse

Die Idee

Vor ein paar Monaten, besser gesagt in der letzten Schulwoche vor den Sommerferien 2008, wo man als Schüler sowieso nur noch Unsinn im Kopf hat kam mein Kumpel Robert mit der Idee zu mir eine lowcost CNC-fräse selbst zu bauen. Im Vorfeld hatten wir mal wieder diskutiert ob und wie man Ersatz und Tuningteile für unsere Modellhelis selbst machen könnte. Das Anfertigen auf einer CNC-Fräse war das nächstliegende, doch die wenigsten haben so etwas zu Hause im Wohnzimmer stehen. Also wurde beschlossen eine CNC-Fräse zu bauen.

Die Anfangsplanung

Ich hatte auch vorher schon ein paar mal mit dem Gedanken gespielt eine Fräse selbst zu bauen, deshalb kam mir sofort die Holz CNC von BlaueLed auf Roboternetz.de in den Sinn. Billig und einfach aufzubauen. Der Plan war eine Fräse nach dem Vorbild, auch in Holz. Allerdings wollte ich im Gegensatz zu BlaueLed die Motorsteuerung komplett selbst realisieren. Erstens ist das billiger als fertige Karten bei Pollin zu kaufen und zweitens wollte ich ja auch irgendwas selbst machen.

Die Elektronik

Zu Beginn der Sommerferien 2008 habe ich damit angefangen ein Layout für eine eigene Schrittmotorsteuerung mit L297 und L298 zu entwerfen. Als Basis dafür habe ich die Standard Application auf dem Datenblatt des L297 und die Hinweise im Roboternetz Wiki benutzt. Leider hatte ich in den Sommerferien recht wenig Zeit (3 Wochen Ferienjob, 2 Wochen Urlaub in Schweden, eine Woche Wacken), weshalb der erste Prototyp erst während der ersten Schulwochen fertig wurde.

Motor Treiber

Wie man sehen kann ist die Platine noch alles andere als perfekt. Der Elko hängt etwas in der Luft und auch die Dioden sind leicht gequetscht. Außerdem sind die Kabel tödlich dünn für die 2A die meine Motoren ziehen. Aber jetzt mussten wir uns zunächst einmal um die Mechanik kümmern.

Während Roberts Arbeiten an der Mechanik sind dann bei mir die Hauptbestandteile der Steuerung entstanden. Ich habe die Steuerung in mehrere Module aufgeteilt die nacheinander gefertigt wurden. Der modulare Aufbau hat mehrer Vorteile: Erstens wenn ein Modul ausfällt muss man nicht gleich die ganze Steuerung tauschen. Zweitens wenn sich im Konzept eines Moduls ein Fehler eingeschlichen hat, muss ich nur ein Modul neu planen (mehrfach passiert). Drittens das herstellen kleinerer Platinen ist einfacher und weniger fehleranfällig. Hinter der ganze Elektronik steht ein ASG (aus Schrottteilen gebastelt)-PC (250mhz, 128mb, Win98) mit der kostenlosen Software NC-FRS.

Die m2c-Karte

M2C Interface Platine M2C Interface Schaltplan

Das Bild ist noch der erste Prototyp mit großen Transistoren. Diese wurden später durch wesentlich kleinere ersetzt. Diese Platine setzt die Signale der End- und Anfangsschalter und des Not-Aus-Schalters durch einfache Transistorschaltungen auf auf die Paralelle Schnittstelle der Pcs um. An jeden Schnistellenpin ist ein Pullup nach +5V wird ein Schalter ausgelöst zieht ein Transistor den Pin auf Masse. Die Platine ist übrigens im Toner direkt Verfahren entstanden, wie fast alle kleineren Platinen in diesem Projekt.

Der Not-Aus-Schalter

Notaus normal Notaus gedrückt

Eines der einzigen hardwareseitigen Bedienelemente an der Fräse. Wird der Schalter gedrückt gehen die grünen Leds aus und die roten leuchten auf. Außerdem geht ein Stop-Signal an die Software und die Stromversorgung der Motoren und des Fräsers wird unterbrochen. Die nötige Logik dazu sitzt auf der m2c-Karte und auf der Notausrelais-Karte. Die drei Leds am Rand der Platinen dienen dazu die Bewegungsrichtung der Motoren anzuzeigen. Die rote Kappe ist der Deckel einer Cola Flasche mit etwas Heißkleber auf dem Schalter befestigt.

Die c2m-Karte

2M Interface Platine 2M Interface Schaltbild

Diese Karte ist das Gegenstück zur m2c-Karte. Sie setzt die Steuersignale vom Pc für die Motoren um. Das zentrale Bauteil ist ein SN74LS373. Über die 8 Latches wird das etwas unsaubere Signal der Schnittstelle auf saubere 5V-0V-Pegel gebracht, bevor es an die Motorendstufen geht. Für jeden Motor wird ein Takt und ein Richtungssignal übermittelt. Dadurch kann man alle Motoren mit nur 6 Schnittstellenpins steuern. Die Transistoren Schalten die Richtungsleds am Notaus.

Notausrelais-Karte

Notaus Relais Platine

Diese Karte enthält 5 Relais die, wenn der Notausschalter gedrückt wird die Stromversorgung zu den Motorendstufen und zum Fräser unterbrechen. Geschaltet werden die Relais über einen starken Schalttransistor.

Motorsteurung Version 2.0

Nach dem das Drumherum einigermaßen stand konnte ich mich wieder an die eigentlichen Motorsteuerungen machen.

Neue Motorsteuerungspaltine Schaltbild für die neue Motorsteurung

Auf der neuen Platine ist genug Platz für alle Teile und man kann die Betriebsmodi des L297 über Jumper setzen. Dafür passt sie jetzt nicht mehr auf eine halbe Eurokarte. Einen Mittlerweile mehrfach überarbeiteten Schaltplan gibt es hier.

Die Motoren

Da mittlerweile auch die Motoren von Pollin angekommen waren (5eu das Stück), konnte ich einen ersten Testlauf mit einem Motor machen. Ein Motor läuft mit 24V und zieht dann knapp 2A. Hier ein Bild mit allem zusammen aufgebaut und ein Bild von meiner Werkstatt.

Testaufbau auf der Wekbank Allgemeines Chaos

Das Gehäuse

Als auch die Hilfsstromversorgung, ein einfaches Netzteil aus einem Trafo, Gleichrichter und 7805/7812, fertig war, gings ich daran alles möglichst kompakt unter zu bringen. Aus zwei MDF-Platten und 4 Gewindestangen habe ich einen zweistöckigen Aufbau gebaut, in dem die ganze Elektronik, bis auf die Motorendstufen untergebracht wird. Diese Sitzen möglichst nah an den Motoren und werden über geschirmte (Ethernet-)Kabel mit Signalen und Strom versorgt.

Elektronikaufbau untere Ebene Elektronikaufbau obere Ebene {{ lightbox(image="/electronics/cnc/control_all.jpg", , alt="Elektronikaufbau") }}

Auf der unteren Ebene befinden sich die Hilfsstromversorgung, die Notausrelais-Karte und ein Sicherungshalter, über den die Leitungen zu den Motorendstufen mit 2A abgesichert werden. Später wurde noch ein Spannugswandler 12V auf 9V dazumontiert, weil die Relais doch keine 12V auf Dauer vertragen. Die Gewindestangen sind einfach in die MDF-Platte geschraubt, man kann ohne Probleme Gewinde Platte schneiden. Auf der zweiten Ebene sind die c2m und m2c-Karte montiert. Über 5 9polige Sub-D Buchsen können die Motorendstufen, die Endschalter und der Notausschalter angeschlossen werden.

Elektroniktest

Abschließend gab es noch einen großen Test mit allen Motoren:

Versuchsaufbau mit allen Motoren Versuchsaufbau mit allen Motoren

Der Test lief zu meiner vollsten Zufriedenheit, alles dreht wie es soll, nirgends steigt Rauch auf.

Die Stromversorgung der Motoren übernimmt ein fast neues Sitop Netzteil von Siemens, eine Dauerleihgabe einer großen deutschen IT und Elektronik Firma mit einem türkisen Logo.

Industrienetzteil

Die Mechanik

Während ich an der Elektronik gearbeitet habe hat sich Robert um die Mechanik gekümmert. Mein Vater hat uns freundlicherweise 6 paar Gleitschienen aus einem alten Serverrack organisiert, die mit einer relativ geringen Reibung (Kugellager) und mit noch weniger Spiel laufen. Diese sollten unsere Konstruktion die notwendige Beweglichkeit geben. Außerdem war Robert auch nicht untätig gewesen.

Er hatte es geschafft über Kevin, der einen Ferienjob bei der Firma Stabila in Annweiler hatte an knapp 14kg Aluprofile zu kommen. Bei Stabilia werden Wasserwaagen produziert, dafür waren auch unsere Profile gedacht gewesen, allerdings sitzen einige Bohrungen falsch, was die Profile zu Ausschuss macht. Die Profile sind für unsere zwecke ideal:

Sie haben eine große Wandstärke (versucht mal eine Wasserwaage zu verbiegen) und sind absolut gerade (erwartet man ja irgendwie von einer Wasserwaage). Vielen Dank noch mal an Kevin und die Firma Stabila. Robert der sich dem Aufbau der Mechanik befasst, ging gleich daran aus den Profilen den Rahmen unserer Fräse zu bauen.

Die Profile wurden zugeschnitten und auf eine recht unorthodoxe Art und Weise verschraubt: Es war ja ursprünglich eine Holzfräse aus MDF geplant. Deshalb lagen jetzt noch etliche MDF-Platten in der Werkstatt herum. Diese wurden auf die Innenmaße der der Profile gebracht und in deren Enden gesteckt nachdem die Schraubenlöcher durch die Profile gebohrt wurden. Danach kann man die Teile mit einfachen Spaxx-Schrauben durch die MDF-Platten in den Profilen verschrauben.

Meschanischer Aufbau Meschanischer Aufbau Meschanischer Aufbau Meschanischer Aufbau Meschanischer Aufbau Meschanischer Aufbau Meschanischer Aufbau

Endmontage und Tests 7.4.2009

Nach einer anstrengenden Woche in Roberts Werkstatt waren alle Motoren und Spindeln eingebaut. Es waren mehrere Anläufe und Konzepte für die Anbringung der Lager und der Motoren nötig. Aber jetzt läuft alles perfekt gerade und spielfrei. Die Motoren sitzen auf Roberts selbtsgeschnitzten Silikongummipuffern. Die Spindeln sind über selbstgedrehte Buchsen direkt an den Motoren angeflanscht. Am anderen Ende sitzen Kugellager in gedrehten PVC Scheiben, die mit Epoxy mit dem Rahmen verklebt wurden.

Frontale Ansicht auf das Portal Frontale Ansicht auf das Portal; Unscharfer Robert im Hintergrund Portal von Hinten; Scharfer Robert im Hintergrund Motor der Z-Achse Portal von der Seite mit Kühler Improvisierter Stifthalter

Anschließen gab es erste Tests mit Stift und Papier oder Dremel und Styropor.

EMC Linux

Die Kombo aus Win98 und NC-FRS erwies sich im Lauf der Zeit als anfällig für Abstürze. Außerdem hatte NC-FRS viele tolle Rechtschreibfehler, wie z.B. "verfahrten" oder "Werzeuge" und keine Unterstürzung für 3D-Fräsen. Durch meinen Ferienjob bei Siemens konnte ich einen alten PC mit 1Ghz und 512mb Ram ergattern. Eine alte Grafikkarte und eine Festplatte aus meiner Müll äh... Ersatzteilkiste machten den PC komplett.

Als Software kam für mich nur eine OpenSource Lösung in Frage. OpenSource hat den Vorteil, dass man die Software optimal an unsere Anwendung anpassen kann. Das Steuermodul des Heißnadleschneiders ist ein gutes Beispiel für solche Anpassungen. Außerdem hat OSS noch den für mich als armen Schüler/Student den Vorteil nichts zu kosten.

Beim Googeln stieß ich auf EMC-linux. EMC benutzt eine Realtime-Erweiterung für den Linux Kernel um eine graphische Bedienoberfläche über einen frei konfigurierbaren HAL mit IO-Hardware zu verbinden. Als Hardware können sowohl spezielle IO-Karten, als auch die Pins von parallele Schnittellen genutzt werden. Die Bedienoberfläche stellt dabei in der HAL sog. Pins bereit, die mandann über weitere Modulen (wie z.b. PWM-Generatoren oder logischen Verknüpfungen) mit den Pins der Schnittelle verbinden kann. Außerdem können eigene Module für die im Userspace laufen mit Python geschrieben werden. Dadurch kann man EMC für fast beliebige Anwendungen anpassen.

Da EMC auf Ubuntu basiert ließ es sich schnell und unkompliziert installieren. Nach dem Lesen der Manuals war die Konfiguration für unsere Hardware in einer halben Stunde erledigt.

Screenshot von EMC Linux

Anlässlich dieser Umstellung hatten wir auch Gelegenheit unsere Fräse am Linux Info Tag 2009 in Landau vorzustellen. Da wir dort wegen der Verschmutzung allerdings nichts Fräsen konnten musste ein sauberer Weg etwas mit unsere Fräse herzustellen. Deshalb habe ich ein Werkzeug für unsere Fräse entwickelt, das mit einer beheizten Aluminiumspitze Depron zerschneiden kann. Mit diesen Heißnadelschneider (als Analogie zum Heißdrahtschneider) haben wir vor Ort kleine Wurfgleiter aus Depron hergestellt.

Heißnadelschneider

Wer schon einmal Modellflugzeuge aus Depron gebaut hat, weiß wie nervig die vielen kleinen Schnippsel sind, die dabei anfallen. Die Lösung ist normalerweise das Schneiden mit einem heißen Draht. Allerdings lässt sich an unserer Portalfräse nur schwer ein Draht spannen.

Meine Lösung war eine beheizbare Nadel die ich auf meiner Drehbank aus Aluminium gedreht habe. Die Nadel wird in einen Alublock eingeschraubt, der mit einem Lastwiederstand beheizt wird.

Nadel für den Heißnadelschneider Heizelement Frontal Heizelement Draufsicht

Ein U-Profil drückt den 10 Ohm 20Watt Zementwiderstand gegen einen Aluklotz. In dem Klotz ist ein M4 Gewinde, in das die gedrehte Spitze geschraubt wird.

Temperaturcontroller

Gesteuert wird das ganze durch einen Controller aus einem ATmega8 mit PT1000 (ja etwas Overkill, war aber bei Pollin billig) der die Temperatur überwacht und ein MosFET was die Heizung schaltet. Über RS323 wird die Soll-Temperatur von einem EMC2 Modul gesetzt und der Ist-Wert ausgelesen. Das ganze ist dann voll in EMC2 integriert, z.b. wird gewartet bis die Temperatur passt, bevor ein Werkstück gekokelt wird. Außerdem gibt es ein PyVCP-Panel mit dem die Temperatur eingestellt und angezeigt wird. Geschnitten wir je nach Geschwindigkeit mit 180-220°C. Die fertigen Werkstücke weißen schöne glatten Kanten auf und mein hat keine Depronschnippsel an der Maschine kleben.


Published: 20.06.2009 15:32