Démonstration
Version simple sans capteur
La machine de Goldberg
Définition
Une machine de Rube Goldberg (ou plus simplement machine de Goldberg) est une machine qui réalise une tâche simple d’une manière délibérément complexe, le plus souvent à l’aide d’une réaction en chaine. Elle tire son nom du dessinateur américain Rube Goldberg (1883-1970) et est proche des engins de William Heath Robinson.
Un feu tricolore sensible aux vibrations
Chaque élément de la machine de Goldberg étant constitué d'un capteur et d'un activateur, je me suis lancée dans la conception d'un feu tricolore où trois Led jouent le rôle d'activateurs pour l'élément suivant et où un capteur de vibrations reçoit les vibrations de l'élément précédent.
Machine de Goldberg
Matériel nécessaire
-Une boîte quelconque (tout dépend de ce que vous avez sous la main/ce à quoi vous voulez que votre feu ressemble)
-Des fils électriques
-Un fer à souder
-Des leds (rouge, orange, verte)
-Des résistances
-Un capteur (le code a été essayé et fonctionne avec un capteur de vibrations et un capteur de présence)
Montage
Ici avec un capteur de présence
Code
int capteur = 7;
int LedRouge = 2;
int LedOrange = 3;
int LedVerte = 4;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(LedRouge, OUTPUT);
pinMode(LedOrange, OUTPUT);
pinMode(LedVerte, OUTPUT);
pinMode(capteur, INPUT);
digitalWrite(LedRouge, LOW);
digitalWrite(LedOrange, LOW);
digitalWrite(LedVerte, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
if(digitalRead(capteur)==HIGH){
Serial.println("un piéton veut traverser");
digitalWrite(LedVerte, HIGH);
delay(5000);
digitalWrite(LedVerte, LOW);
digitalWrite(LedOrange, HIGH);
delay(2000);
digitalWrite(LedOrange, LOW);
digitalWrite(LedRouge, HIGH);
delay(6000);
digitalWrite(LedRouge, LOW);
}
else if(digitalRead(capteur)==LOW){
Serial.println("personne ne veut traverser");
}
}