Technische Universität Ilmenau
Projektseminar: Rechnerentwurf
LEGO® MindStorms™

CNC Platinen-Bohrautomat

Mark Hämmerling, Matthias Vierling
(Studenten der Ingenieurinformatik)



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.

Technische Daten
Max. Platinengröße, X / Y [mm]: 100 / 50
Auflösung X-Achse [dpi]: 380
Auflösung Y-Achse [dpi]: 380
Bohrer-Diameter [mm]: 1,0

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.