Der Lego-3D-Drucker ist eine Maschine, die mit mehreren Farben eine 3D-Figur aus Lego-Steinen bauen kann. Auf dem Video sieht man der Bau der Villa aus 90 Steinen, der eine halbe Stunde lang dauer. Der Lego-3D-Drucker ist unsere Maturaarbeit 2012/13, die mit der Note 5.5 bewertet wurde und die drittbeste Maturaarbeit des Oberwallis ist.
Baptiste Cavin und Maxence Reynard erhielten für
ihre Entwicklung eines Lego-3D-Druckers den dritten Preis. Der Drucker von
stattlicher Grösse ist aus Legosteinen gebaut und «druckt» vorgegebene Figuren
aus Legosteinen.
Neben der Programmierung des Geräts bestand die
grösste Herausforderung darin, die richtigen Legosteine aus dem Legobehälter an
den richtigen Ort zu führen und mit den anderen Steinen zusammenzubauen. Dass
der Drucker funktioniert, bewiesen die beiden Maturanden während der
Präsentation eindrücklich.
Wir gratulieren auch unseren Kollege Simon für seinen ersten Platz und seine wunderbare Apps, sowie Sabrina und Jeanine !
Nach fast einem Jahr Arbeit haben wir den Lego-3D-Drucker unserem Betreuer und Experten präsentiert. Anschliessend organisierten wir öffentliche Vorführungen für alle Neugierigen. Wir sind sehr stolz, unser Projekt erfolgreich abgeschlossen zu haben!
Einige Tage
vor der mündlichen Präsentation haben wir unseren Drucker in grün angemalt, den
Lego-Behälter, diesmal aus Holz, neu gebastelt, und ein Gerät, um die
Koordinaten von Figuren besser lesen zu können, gebaut. Es mangelt uns nicht an
Arbeit, doch es sind Sachen, die uns helfen werden, unser Projekt attraktiver vorstellen
zu können.
Nachdem wir unsere Schriftliche Arbeit abgegeben haben, basteln wir jetzt ein Gehäuse für unseren Lego-3D-Drucker. Die Planung haben wir so viel wie möglich vereinfacht. Das Gehäuse wird aus Holz und Plexiglas gebaut.
Eine Woche vor dem Abgabetermin haben wir uns getroffen, um einen Film
zu drehen. In diesem Film präsentieren wir eine Zusammenfassung unserer ganzen
Arbeit. Dazu haben wir noch die letzten Änderungen und Abmachungen für unsere
schriftliche Arbeit vollbracht.
Heute haben wir verschiedene kleine Probleme gelöst. Erstens haben wir einige Bilder löschen müssen, und sie durch Texte ersetzten, da sie zu viel Platzt auf dem NXT brauchten. Wir waren erstaunt, wir gross ein Bild war. Es gibt auf einem NXT 157 KB Platzt, und ein Bild braucht ungefähr 12 KB. Wir haben auch eine kleine Zusammenfassung des gewünschten Auftrags programmiert. Man kann damit sehen, welche Figur und Farbe man gewählt hat. Eine geschätzte Zeit ist auch zu sehen. Wenn man einen Fehler beim Auftrag gemacht hat, kann man immer noch abbrechen und die Wahl von Anfang an beginnen.
Dann haben wir an der Eiffelturm-Herausforderung gearbeitet (siehe Samstag, den 24. November).
Wenn der Drucker einen Lego-Stein holen will und der Druckkopf tiefer als das Lager liegt, muss er zuerst nach oben gehen und dann nach hinten. Falls der Druckkopf aber höher ist als das Lager, so muss er zuerst nach hinten und erst dann hinunter gehen, um die Figur nicht zu zerdrücken.
Wenn man den Lego-Stein genommen hat und ihn an einer Stelle setzen will, muss der Druckkopf mindestens 196° höher sein als die Spitze der Figur. Die 196° bestehen aus 60° um die Noppen der Legos zu überfliegen und 136°, da wir nicht wissen, ob wir einen schon gesetzten Stein überfliegen müssen.
Außerdem haben wir ein Problem mit der Rundung für die Übersicht des Baus gehabt. Wenn man mit der Methode „Math.round“ 4.5 rundet, kommt die Zahl 5 heraus. Wenn man aber 90/20 rundet, kommt 4 heraus!
Das ist das letztes Problem, bevor wir unser Projekt abschließen.
Heute haben wir probiert eine Übersicht des Ablaufes des Baues zu
programmieren. Zuerst haben wir eine Menge Variablen durch die verschiedenen
Klassen (oder Threads) vererben sollen. Jede Variablen enthalte eine der
folgenden Informationen: wie lang braucht man um die Figur zu drucken, wie
viele Lego-Steine brauchen wir um die Figur zu bauen und wie viele Lego-Steinen
schon platziert sind. Diese Variablen waren also „Integer“-Variablen (Datentyp
nur für ganze Zahlen). Mit diesen Variablen können wir die Arbeit, die geleistet
wurde, in Prozent berechnen:
Int Prozent = PlazierteStein * 100 / TotalStein.
Dann wollten wir noch einen Prozentbalken machen, der diesen Ablauf
zeigte. Was also neu zu beachten ist, ist die Grösse dieses Balkens. Die
maximale Grösse (100%) ist gleich wie seine Grösse. Die Berechnung lautet wie
folgendes:
Int Prozentbalken = Prozent /100 * Balkens .
Es hat aber nicht funktioniert! Wir haben lang gesucht warum:
Eine Integer unterstützt nur ganze Zahlen. Am Anfang der Berechnung
„Fortschrittsbalken“ werden aber die Prozente durch 100 geteilt! Es ist also
keine Integer mehr. Um dieses Problem zu lösen muss man die Berechnung einfach
so umstellen.
Int Prozentbalken = Prozent * Grösse des Balkens / 100.
Heute haben wir noch versucht, die Verbindung zwischen den zwei NXTs
im Hintergrund laufen zu lassen, aber haben es leider nicht geschafft.
Ausserdem haben wir, das am 3. Januar gefundene Programm um ein Bild in einen
NXT-kompatiblen Quellcode umzuwandeln, gebraucht. Wir haben das Menü schön mit
Bildern verziert und somit anschaulicher gemacht. Wir haben auch das Programm
so erweitert, dass jedes Mal wenn einen Lego-Stein genommen oder gelegt wird,
eine kleine Bewegung gemacht wird. Diese kleine Bewegung wird gemacht, als der
Greifer schon leicht auf dem unterstehenden Lego-Stein liegt und sie wird in
X-Achse und in Y-Achse gemacht. Wennsich eine kleine Ungenauigkeit im Prozess ereignet hat, wird der Greifer
(und somit der Lego-Stein) trotzdem richtig platziert. Um es besser zu
verstehen, können Sie gerne das unterstehende Video genau anschauen.
Heute haben wir hauptsächlich an dem Menü gearbeitet. Wir haben auch
probiert, die Verbindung zwischen den zwei NXTs im Hintergrund laufen zu
lassen. So könnte man die Figur sowie die Farbe der Figur wählen, während sich die
Verbindung herstellt. Unter anderem haben wir ein Programm gefunden, dass ein
Bild in einen NXT-kompatiblen Quellcode umwandelt, so dass man das Bild auf dem
LCD eines NXTs (100X64 Pixels) anzeigen kann. Wir haben auch gemerkt, dass der
rote Rahmen beim Bewegen den Mechanismus der Rollteppiche berührt und so leicht
verschoben wird. Darum haben wir alle Rollteppiche um eine Lego-Stelle nach
links verschoben. Ausserdem haben wir auch beschlossen keine Skizze von den
verschiedenen Verfahren des 3D-Druckers direkt vom Internet zu nehmen, sondern
sie selber mit Hilfe von Blender zu zeichnen.