ENIB 2020 : Patience Box : Différence entre versions
(13 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | [[ | + | |
− | + | [[Image:patience_b.jpg|250px|right|thumb|<center>Patience Box - 2020</center>]] | |
− | |||
Ce projet est réalisé dans le cadre de l'intersemestre de l'ENIB 2020. | Ce projet est réalisé dans le cadre de l'intersemestre de l'ENIB 2020. | ||
Ligne 9 : | Ligne 8 : | ||
Vous connaissez le principe de la Useless Box? Bah c'est ça. | 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. | 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== | ==Liste des composants== | ||
− | * | + | * 2 servomoteurs |
− | * Une carte arduino | + | * Des matériaux pour faire un bras pour le servomoteur |
+ | * Une carte arduino UNO | ||
+ | * Une résistance de 560 Ohms | ||
* Des fils électriques | * Des fils électriques | ||
* Un interrupteur | * Un interrupteur | ||
* De quoi faire une boîte | * De quoi faire une boîte | ||
+ | ==Montage== | ||
+ | [[Image:patience_montage.jpg|250px]] | ||
==Code== | ==Code== | ||
<pre> | <pre> | ||
− | + | #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 | ||
+ | } | ||
+ | |||
+ | } | ||
</pre> | </pre> | ||
Version actuelle datée du 17 janvier 2020 à 15:28
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
Montage
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 } }