ENIB 2022 - groupe D : CandyGrabber
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;
} } }
