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 à 15: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;
} } }
