6. Dezember 2011
Als Schlussprojekt durften wir, ähnlich wie Fischli & Weiss, den Lauf der Dinge bauen, indem wir verschiedene Einheiten bauten und diese zusammenhängten. Ich habe einen kleinen Roboter gebaut mit Hilfe von Lego Mindstorms. Die Motoren und Raupen, um sich fortzubewegen, verwendete ich von Lego. Als In- und Output habe ich zwei Schalter vorne und hinten angebracht. Drei LED's geben an, ob die Motoren in Betrieb sind oder nicht. Das Ganze habe ich dann in einen Plexiglaswürfel verpackt, damit man das "Innenleben" noch sehen kann.#define M1L 2 #define M1R 3 #define M2L 4 #define M2R 5 #define LED1 9 #define LED2 10 #define LED3 11 #define BUTTON_PIN_ON 7 #define BUTTON_PIN_OFF 8 #define READ_DELAY 50 boolean isDriving = false; unsigned long lastReadFromButtonOn = 0; unsigned long lastReadFromButtonOff = 0; void setup() { pinMode(M1L, OUTPUT); pinMode(M1R, OUTPUT); pinMode(M2L, OUTPUT); pinMode(M2R, OUTPUT); pinMode(BUTTON_PIN_ON, INPUT); digitalWrite(BUTTON_PIN_ON, HIGH); pinMode(BUTTON_PIN_OFF, INPUT); digitalWrite(BUTTON_PIN_OFF, HIGH); digitalWrite(M1L, LOW); digitalWrite(M1R, LOW); digitalWrite(M2L, LOW); digitalWrite(M2R, LOW); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); } void loop() { //Überprüfe Button 1 if(millis() - lastReadFromButtonOn > READ_DELAY) { if(digitalRead(BUTTON_PIN_ON) == LOW) { isDriving = true; lastReadFromButtonOn = millis(); digitalWrite(LED1, HIGH); digitalWrite(LED2, HIGH); digitalWrite(LED3, HIGH); } } //Überprüfe Button 2 if(millis() - lastReadFromButtonOff > READ_DELAY) { if(digitalRead(BUTTON_PIN_OFF) == LOW) { isDriving = false; lastReadFromButtonOff = millis(); digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); digitalWrite(LED3, LOW); } } //Überprüfung Fahrerlaubnis if(isDriving == true) { digitalWrite(M1L, HIGH); digitalWrite(M1R, LOW); digitalWrite(M2L, HIGH); digitalWrite(M2R, LOW); /*digitalWrite(M1L, HIGH); digitalWrite(M1R, LOW); digitalWrite(M2L, HIGH); digitalWrite(M2R, LOW); */ } else { digitalWrite(M1L, LOW); digitalWrite(M1R, LOW); digitalWrite(M2L, LOW); digitalWrite(M2R, LOW); } }