Samstag, 26. Januar 2013

Der Film


Der Film
 
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.

Samstag, 19. Januar 2013

Endbearbeitungen


Endbearbeitungen
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.

Donnerstag, 10. Januar 2013

Eine Geschichte der Reihenfolge


Eine Geschichte der Reihenfolge
 

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.


Und das war es schon !

 

Samstag, 5. Januar 2013

Das Menü (2)


Das Menü (2)
 

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. Wenn  sich 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.

Donnerstag, 3. Januar 2013

Das Menü (1)


Das Menü (1)
 

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.

Wir wünschen Ihnen ein frohes neues Jahr!