Difficulté : Compétences :
●●○○○ ⚡👨🏻💻⚙️
Un feu de circulation classique qui gère aussi une barrière : elle se lève quand c'est vert, elle descend au rouge. En bonus, un bouton piéton qui force le passage au rouge pour laisser traverser. Bref, un petit poste de contrôle de circulation, avec de la logique temporelle et un peu de mécanique en plus des LEDs.
- Cycle vert → orange → rouge en boucle, avec des durées différentes par couleur
- La barrière se lève au vert, se baisse au rouge (ou à l'orange, à toi de choisir le timing)
- Bonus : un appui sur le bouton piéton doit forcer le feu à repasser au rouge, même en plein milieu du vert
- Le bouton piéton ne doit pas interrompre le cycle n'importe comment, réfléchis à ce qui est réaliste
- Arduino (Uno/Nano)
- 3 LEDs (rouge, orange, vert) + résistances
- 1 servo-moteur (pour la barrière)
- 1 bouton poussoir (bonus piéton)
- Breadboard + câbles Dupont
Le servo a besoin d'une bibliothèque dédiée (Servo.h, livrée avec Arduino IDE) — regarde comment elle fonctionne avant de te lancer, la logique est différente d'un simple digitalWrite().
Pour ta modélisation 3D, t'auras besoin de Onshape. C'est une application web qui permet de faire des modélisations 3D, c'est comme SolidWorks mais en ligne ! Pense à demander à un membre d'INTech pour te montrer comment utiliser le logiciel et comment faire fonctionner les imprimantes 3D pour faire ton système.
- Le cycle de feu tourne tout seul, sans intervention
- La barrière suit le feu de façon cohérente
- Un appui piéton déclenche bien un retour au rouge, de façon réaliste (pas un arrêt brutal en plein vert)
- La barrière tient au servomoteur et les leds sont bien fixées
Du plus simple au plus compliqué :
- Ajoute un bip sonore (buzzer) pendant la phase orange, ou pendant que le piéton peut traverser
- Ajoute un décompte visuel (petit écran ou affichage 7 segments) qui indique le temps restant avant le prochain changement
- Gère plusieurs appuis piéton d'affilée sans que ça ne bugue le cycle (évite qu'un appui pendant le rouge relance inutilement un autre rouge)
- Ajoute un second feu perpendiculaire (croisement) qui doit être synchronisé avec le premier — jamais vert des deux côtés en même temps
- Doc de la bibliothèque
Servo.h (exemples fournis dans Arduino IDE)
- Réf Arduino :
millis(), digitalWrite(), servo.write()
Pas de solution toute faite ici, le but c'est de chercher et de se planter un peu. Un membre INTech est là si tu bloques trop.