ENIB 2020 : Patience Box : Différence entre versions
Ligne 10 : | Ligne 10 : | ||
Concrètement, lorsque l'utilisateur met l'interrupteur sur "ON", un servomoteur va lever le capot de la boîte. Ensuite, l'autre servomoteur va tourner et son bras (en forme de U) va atteindre l'interrupteur pour le désactiver. Le bras qui a désactivé l'interrupteur rentre dans la boîte puis l'autre servomoteur tourne dans le sens inverse ce qui implique la fermeture de la boîte. | Concrètement, lorsque l'utilisateur met l'interrupteur sur "ON", un servomoteur va lever le capot de la boîte. Ensuite, l'autre servomoteur va tourner et son bras (en forme de U) va atteindre l'interrupteur pour le désactiver. Le bras qui a désactivé l'interrupteur rentre dans la boîte puis l'autre servomoteur tourne dans le sens inverse ce qui implique la fermeture de la boîte. | ||
+ | |||
+ | Vous pouvez aller plus loin en ajoutant plusieurs comportements à la boite lorsque l'utilisateur appui sur le bouton. | ||
+ | Par exemple, la boite pourrait faire une feinte: s'ouvrir, mais ne pas appuyer sur l'interrupteur. | ||
+ | |||
==Liste des composants== | ==Liste des composants== | ||
Ligne 34 : | Ligne 38 : | ||
motSw.attach(10); | motSw.attach(10); | ||
pinMode(sw,INPUT); | pinMode(sw,INPUT); | ||
− | motCapot.write( | + | motCapot.write(130); //pos initiales moteurs |
+ | motSw.write(0); | ||
} | } | ||
void loop() { | void loop() { | ||
− | |||
if(digitalRead(sw)) | if(digitalRead(sw)) | ||
{ | { | ||
− | motCapot.write(40); | + | motCapot.write(40); //monte le capot en haut |
− | delay( | + | delay(2000); |
+ | motSw.write(180); //descend le bras sur switch | ||
+ | |||
} | } | ||
else | else | ||
{ | { | ||
− | + | motSw.write(0); //bras switch initial | |
− | delay( | + | delay(2000); |
+ | motCapot.write(130); // remet le capot en bas | ||
} | } | ||
Version du 17 janvier 2020 à 15:13
Ce projet est réalisé dans le cadre de l'intersemestre de l'ENIB 2020.
Que fait ce projet ?
Vous connaissez le principe de la Useless Box? Bah c'est ça. Basiquement, lorsque l'utilisateur va appuyer sur un bouton, la boîte va s'ouvrir, appuyer sur l'interrupteur pour le mettre sur "OFF" puis la boîte se refermera.
Concrètement, lorsque l'utilisateur met l'interrupteur sur "ON", un servomoteur va lever le capot de la boîte. Ensuite, l'autre servomoteur va tourner et son bras (en forme de U) va atteindre l'interrupteur pour le désactiver. Le bras qui a désactivé l'interrupteur rentre dans la boîte puis l'autre servomoteur tourne dans le sens inverse ce qui implique la fermeture de la boîte.
Vous pouvez aller plus loin en ajoutant plusieurs comportements à la boite lorsque l'utilisateur appui sur le bouton. Par exemple, la boite pourrait faire une feinte: s'ouvrir, mais ne pas appuyer sur l'interrupteur.
Liste des composants
- 2 servomoteurs
- Des matériaux pour faire un bras pour le servomoteur
- Une carte arduino UNO
- Une résistance de 560 Ohms
- Des fils électriques
- Un interrupteur
- De quoi faire une boîte
Code
#include <Servo.h> const int sw=4; Servo motCapot; //moteur pour ouvrir le capot Servo motSw; //moteur pour appuyer sur l'interrupteur void setup() { Serial.begin(9600); motCapot.attach(9); motSw.attach(10); pinMode(sw,INPUT); motCapot.write(130); //pos initiales moteurs motSw.write(0); } void loop() { if(digitalRead(sw)) { motCapot.write(40); //monte le capot en haut delay(2000); motSw.write(180); //descend le bras sur switch } else { motSw.write(0); //bras switch initial delay(2000); motCapot.write(130); // remet le capot en bas } }