29. November 2011
SEAL - Sea Air Land
Gruppenarbeit: Dominik Stucky, Diego Martinez Die letzte Aufgabe bestand darin ein Modul für ein "Lauf der Dinge" zu kreieren. Wir haben anfangs die Elemente Wasser, Land und Luft als Thema gewählt und dazu entsprechende Untermodule konzipiert. Wasserbehälter verbunden mit Schläuchen sollten eine Wippe mit einem Ping Pong-Ball in Bewegung setzen. Der Arm der Wippe sollte dann den Ball auf den Luftstrom eines Föhns setzen, welcher sich dann zu drehen beginnt und den Ball als Output an das nächste Modul weitergibt. Die Wippe haben wir aus Plexiglas gelasert und beim längeren Teil des Armes Löcher herausgearbeitet, um bei diesem Teil schon mal Gewicht einzusparen. Zwei Stahlstifte dienten uns als Achse, wodurch wir die Reibung gering halten konnten. Der Ball wird durch Neoprenstreifen in der Ausbuchtung gehalten und kann so leicht vom Aufsatz des Föhns herausgedrückt werden. Ein wenig Gewicht mussten wir dann doch noch anbringen, um genug Schwung zu erhalten. Den Föhn haben wir in eine Holzverschalung gepackt und ebenfalls mit einer Achse versehen. Ein Servo bewegt den Föhn über eine Drahtverbindung und Hebelarm. Den Luftstrom konnten wir noch verstärken indem wir einen Aufsatz anbrachten, der den Luftstrom verengt, wodurch der Ball höher im Luftstrom tanzt. Anfangs ruckelte der Föhn noch recht stark, wenn dieser vom Servo bewegt wurde, wodurch der Ball frühzeitig aus dem Luftstrom gerissen wurde. Durch einige Anpassen und einen Gegenzug durch ein Gummiband konnten wir die Bewegung dann aber ruckelfrei halten. Durch die Wirbel im Luftstrom landete der Ping Pong-Ball immer an einer etwas anderen Stelle. Für eine nahtlose Übergabe an das nächste Modul musste wir dann noch eine "Überbrückung" bauen, die den Ball auffängt und weiterleitet. Bauschaum hat sich hier der einfachen Bearbeitung wegen angeboten und den Trichter konnten wir einfach mit Heissdraht aus einem solchen Block herausdrehen. Wir hatten mehr mit mechanischen Problemen zu kämpfen, vorallem bei der Drehung des Föhns. Die Programmierung hat sich als relativ einfach umsetzbar herausgestellt. Wir hatten zwei Servos zu steuern, einen für das auslösen der Wippe (das Wasser mussten wir aus Zeitgründen weglassen) und einen um den Föhn zu bewegen. Dann kam noch ein Piezo hinzu, der dann bei der Präsentation noch einige Aufmerksamkeit auf sich gezogen hat.#include <Servo.h> #define SERVO_PIN 9 #define SERVO_PIN2 10 #define RELAI_PIN 5 #define PIEZO_PIN 0 float piezoValue = 0; int piezoCounter = 0; int piezoTimer = 0; int piezoTimelapse = 2000; int c=16; int c2=0; boolean piezo = false; Servo myServo; Servo myServo2; void setup() { Serial.begin(9600); myServo.attach(SERVO_PIN); myServo.write(c); myServo2.attach(SERVO_PIN2); myServo2.write(c2); pinMode(RELAI_PIN, OUTPUT); } void loop() { if(piezo==false){ // read PIEZO piezoValue = analogRead(PIEZO_PIN); if (piezoValue<900 && piezoTimer>piezoTimelapse) { Serial.println(piezoValue); piezoCounter++; piezoTimer=0; } if (piezoCounter>=4) { piezo=true; myServo2.write(180); } piezoTimer++; } else if(piezo ==true){ if( digitalRead(RELAI_PIN)==LOW&& c==16) { digitalWrite(RELAI_PIN, HIGH); delay(8000); } else if(digitalRead(RELAI_PIN)==HIGH){ delay(100); if(c<=80) { c++; myServo.write(c); } else if(c=80) { delay(500); digitalWrite(RELAI_PIN, LOW); } } } }