Motivation
Bei der Eigenherstellung von Platinen fällt für das Bohren der Löcher
ein sehr großer Arbeitsaufwand an. Der Preis für sämtliche käuflich
erwerbliche CNC-Bohrer ist für den Hobbybereich allerdings wesentlich
zu hoch. Daher haben wir uns im Rahmen des Projektseminars
"Rechnerentwurf" für den Bau eines erschwinglichlichen CNC-Bohrers aus
LEGO® entschieden.
Aufbau
Das Gerät besteht aus einem mobilen Kreuztisch und einer darüber
fixierten Z-Achse. Dadurch wird die zu bewegende Masse (Tisch +
Platine) gering gehalten und die Präzision durch die stabilere
Befestigung des Bohrers erhöht.
Zur Positionsbestimmung werden in X- und Y-Richtung die Daten zweier
Rotationssensoren herangezogen. Die Sensoren sind direkt an den
Motorachsen angebracht, so daß trotz hoher Untersetzung die Anzahl der
ausgelösten Impulse und damit die Auflösung maximal ist. Das Anfahren
eines bestimmten Punktes gelingt problemlos auf den Impuls genau.
Der Bohrer ist an der festen Z-Achse montiert. Durch die I/O-Knappheit
am RCX™ mußten Bohrmotor und Z-Motor gekoppelt werden. Durch eine
geeignete Untersetzung des Z-Antriebes ist gewährleistet, daß der
Bohrer mit dem Bohren nachkommt, während er sich langsam absenkt.
Begrenzt wird die Bewegung in Z-Richtung durch einen Endlagentaster,
der am (unteren) Ende des Bohrhubs ausgelöst wird. Die Aufwärtsbewegung
der Z-Achse wird konstruktionsbedingt begleitet von einem Linksdrehen
des Bohrers, was sich in der Praxis als sehr nützlich herausstellte.
Software
Die Programmierung des CNC-Platinenbohrers erfolgte für BrickOS und
wurde mit der GNU Compiler Collection (GCC) mangels damaliger
GNU/Linux-Unterstützung des Infrarot-USB-Towers unter Cygwin realisiert.
Einschränkungen
Die Verwendung von LEGO®-Bauteilen stellt eine gewisse "Leichtbauweise"
dar, welche sich natürlich in der Leistung des Gerätes in Form von
Einschränkungen widerspiegelt.
Das Bohrmaterial ist aufgrund der geringen Bohrleistung auf Hartpappe
(mit Kupferschicht) beschränkt. Die Größe der Platine darf aufgrund der
Stabilität des Gerätes in der vorgestellten Version maximal 100x50 mm²
betragen.
Betrieb Plazierung der Platine
Die Platine muß mit der Kupferseite nach oben nahezu endgültiger
Ausrichtung auf dem Kreuztisch befestigt werden. Die zu bearbeitende
Fläche sollte durch einen Punkt links oben (Home-Position) und einen
Punkt rechts unten markiert sein, um die Kalibrierung zu erleichtern.
Kalibrierung der X- und Y-Achse
Um die korrekte Lage und Ausrichtung der Platine zu überprüfen kann
zuerst ein Kalibrierungsprogramm gestartet werden. Zweck dieses
Programms ist es, die zu bohrende Fläche auf der Platine anzuzeigen und
dem Anwender somit zu ermöglichen, die Ausrichtung der Platine zu
überprüfen und gegebenenfalls zu korrigieren.
Dazu wird wie auch beim Bohrprogramm zuerst vom Anwender die
Home-Position manuell angefahren und dann das Bohrprogramm gestartet.
Der Bohrer fährt nun zum diagonal entgegenliegenden Punkt der Platine
und zeigt somit seine Bohrfläche an. Bei korrekter Lage kann dann mit
dem Bohren fortgefahren werden. Bedarf die Ausrichtung der Platine
einer Korrektur, so kann diese vorgenommen und das Programm
anschließend erneut gestartet werden, um die neue Ausrichtung zu
überprüfen.
Bohren
Die Bohrdaten werden vor dem Kompilieren des Bohrprogramms mittels
eines Perl-Skripts aus dem Gerberformat in eine include-Datei
konvertiert, welche in das Bohrprogramm einkompiliert wird.
Nachdem die Kalibrierung erfolgreich abgeschlossen wurde, kann das Bohrprogramm an der Homeposition gestartet werden.
Jeder Punkt wird nun präzise von links oben angefahren. Sollte sich der
Kreuztisch beim Anfahren in die Gegenrichtung bewegen müssen, so wird
über den Punkt hinweg gefahren und der Punkt anschließend von oben
rechts angefahren, so daß eventuelles Spiel in der Mechanik des
Kreuztisches eliminiert wird.
Sobald die exakte Position des Punktes erreicht wurde, wird der
Bohrvorgang gestartet. Die Z-Achse senkt sich langsam bis zur Endlage
ab, während der Bohrer in Bohrrichtung dreht. Danach hebt sich die
Z-Achse für ca. 10 Sekunden an, während sich der Bohrer in
Gegenbohrrichtung bewegt, was die Aufwärtsbewegung weniger hemmt als
ein stehender Bohrer.
Auf diese Weise werden alle Löcher nacheinander abgefahren und gebohrt.
Wenn der Vorgang abgeschlossen ist, fährt die Maschine auf die Homeposition und gibt ein akustisches Signal aus.
Programmcode
Version 0.1.0 ist hier erhältlich: cnc-0.1.0.c (obige Beschreibung bezieht sich auf Version 0.2.0, die leider nicht fertiggestellt werden konnte)
Rechtlicher Hinweis: Alle Warenzeichen bzw. eingetragenen Warenzeichen sind Eigentum ihrer jeweiligen Inhaber.