ENIB 2022 - groupe D : CandyGrabber : Différence entre versions
(→photo de l'équipe) |
(→Code) |
||
Ligne 25 : | Ligne 25 : | ||
ici je pose mon code documenté ! | ici je pose mon code documenté ! | ||
</pre> | </pre> | ||
+ | |||
+ | /* Inclut la lib Servo pour manipuler le servomoteur */ | ||
+ | #include "Servo.h" | ||
+ | /* Créer un objet Servo pour contrôler le servomoteur */ | ||
+ | Servo monServomoteur; | ||
+ | Servo monServomoteur2; | ||
+ | |||
+ | void setup(){ | ||
+ | // Attache le servomoteur à la broche D9 | ||
+ | monServomoteur.attach(8); | ||
+ | monServomoteur2.attach(9); | ||
+ | monServomoteur.write(90); | ||
+ | monServomoteur2.write(90); | ||
+ | pinMode(5,INPUT);//activation led bleu pour simuler le piston | ||
+ | pinMode(6,OUTPUT);//activation led rouge pour simuler la descente de la pince | ||
+ | pinMode(7,INPUT);//bouton poussoir | ||
+ | digitalWrite(7,HIGH);//on active la résistance de pull-up | ||
+ | pinMode(A6,INPUT);//vrx | ||
+ | pinMode(A7,INPUT);//vry | ||
+ | |||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // put your main code here, to run repeatedly: | ||
+ | int BP=digitalRead(7); | ||
+ | Serial.println(BP); | ||
+ | double VRx = analogRead(A6); | ||
+ | double VRy = analogRead(A7); | ||
+ | int c; | ||
+ | int x=0; | ||
+ | int y=10; | ||
+ | Serial.println(VRx); | ||
+ | //if (BP){ //si BP est à 1 donc non appuyer | ||
+ | |||
+ | //On test la position en x | ||
+ | if (VRx<400){ | ||
+ | x=1; | ||
+ | } | ||
+ | if(VRx>600){ | ||
+ | x=2; | ||
+ | } | ||
+ | //on test la position en y | ||
+ | if (VRy<400){ | ||
+ | y=13; | ||
+ | } | ||
+ | if(VRy>600){ | ||
+ | y=16; | ||
+ | } | ||
+ | //on definie une variable intermediaire | ||
+ | c=x+y; | ||
+ | |||
+ | switch (c) { | ||
+ | //cas 1 gauche | ||
+ | case 11: | ||
+ | monServomoteur.write(180); | ||
+ | monServomoteur2.write(90); | ||
+ | delay(10); | ||
+ | break; | ||
+ | //cas 2 droite | ||
+ | case 12: | ||
+ | monServomoteur.write(0); | ||
+ | monServomoteur2.write(90); | ||
+ | delay(10); | ||
+ | break; | ||
+ | //cas 3 gauche | ||
+ | case 13: | ||
+ | monServomoteur2.write(180); | ||
+ | monServomoteur.write(90); | ||
+ | delay(10); | ||
+ | break; | ||
+ | //cas 4 gauche et gauche | ||
+ | case 14: | ||
+ | monServomoteur.write(180); | ||
+ | monServomoteur2.write(180); | ||
+ | delay(10); | ||
+ | break; | ||
+ | //cas 5 gauche et droite | ||
+ | case 15: | ||
+ | monServomoteur.write(0); | ||
+ | monServomoteur2.write(180); | ||
+ | delay(10); | ||
+ | break; | ||
+ | //cas 6 droite Y | ||
+ | case 16: | ||
+ | monServomoteur2.write(0); | ||
+ | monServomoteur.write(90); | ||
+ | delay(10); | ||
+ | break; | ||
+ | //cas 7 x gauche et y droite | ||
+ | case 17: | ||
+ | monServomoteur.write(180); | ||
+ | monServomoteur2.write(0); | ||
+ | delay(10); | ||
+ | break; | ||
+ | //cas 8 | ||
+ | case 18: | ||
+ | monServomoteur2.write(0); | ||
+ | monServomoteur.write(0); | ||
+ | delay(10); | ||
+ | break; | ||
+ | default: | ||
+ | monServomoteur.write(90); | ||
+ | monServomoteur2.write(90); | ||
+ | delay(10); | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
==Catégories== | ==Catégories== | ||
[[Catégorie:Enib2022]] | [[Catégorie:Enib2022]] |
Version du 17 janvier 2022 à 14:39
photo de l'équipe
Que fait ce projet ?
Candy Grabber est une pince qui attrape des bonbon dans une boite. Cette pince se déplace grâce à un joystick.
Liste des composants
- Cable de montage
- 1 moteur 5V
- 1 mini breadboard
- 1 Bouton poussoir
- 1 carte nano Arduino (avec cable d'alimentation)
- 1 mini version électronique
- 1 mini vérin électrique
- 1 joystick
- 1 contrôleur moteur
- 2 cerveaux moteurs
- 3 tiges en métal
- planches de bois
Code
ici je pose mon code documenté !
/* Inclut la lib Servo pour manipuler le servomoteur */
- include "Servo.h"
/* Créer un objet Servo pour contrôler le servomoteur */ Servo monServomoteur; Servo monServomoteur2;
void setup(){
// Attache le servomoteur à la broche D9 monServomoteur.attach(8); monServomoteur2.attach(9); monServomoteur.write(90); monServomoteur2.write(90); pinMode(5,INPUT);//activation led bleu pour simuler le piston pinMode(6,OUTPUT);//activation led rouge pour simuler la descente de la pince pinMode(7,INPUT);//bouton poussoir digitalWrite(7,HIGH);//on active la résistance de pull-up pinMode(A6,INPUT);//vrx pinMode(A7,INPUT);//vry Serial.begin(9600); }
void loop() {
// put your main code here, to run repeatedly: int BP=digitalRead(7); Serial.println(BP); double VRx = analogRead(A6); double VRy = analogRead(A7); int c; int x=0; int y=10; Serial.println(VRx); //if (BP){ //si BP est à 1 donc non appuyer //On test la position en x if (VRx<400){ x=1; } if(VRx>600){ x=2; } //on test la position en y if (VRy<400){ y=13; } if(VRy>600){ y=16; } //on definie une variable intermediaire c=x+y; switch (c) { //cas 1 gauche case 11: monServomoteur.write(180); monServomoteur2.write(90); delay(10); break; //cas 2 droite case 12: monServomoteur.write(0); monServomoteur2.write(90); delay(10); break; //cas 3 gauche case 13: monServomoteur2.write(180); monServomoteur.write(90); delay(10); break; //cas 4 gauche et gauche case 14: monServomoteur.write(180); monServomoteur2.write(180); delay(10); break; //cas 5 gauche et droite case 15: monServomoteur.write(0); monServomoteur2.write(180); delay(10); break; //cas 6 droite Y case 16: monServomoteur2.write(0); monServomoteur.write(90); delay(10); break; //cas 7 x gauche et y droite case 17: monServomoteur.write(180); monServomoteur2.write(0); delay(10); break; //cas 8 case 18: monServomoteur2.write(0); monServomoteur.write(0); delay(10); break; default: monServomoteur.write(90); monServomoteur2.write(90); delay(10); break;
} } }