ENIB 2022 - groupe D : CandyGrabber : Différence entre versions
(→Code) |
|||
Ligne 4 : | Ligne 4 : | ||
==Que fait ce projet ? == | ==Que fait ce projet ? == | ||
− | Candy Grabber est une pince | + | Le principe du Candy Grabber est simple. Un joystick permet de déplacer une pince, et le but est que celle-ci attrape les bonbons contenu dans la boite afin de les récupérer. |
==Liste des composants== | ==Liste des composants== | ||
− | + | '''1. Pour la partie électronique : ''' | |
− | + | ||
* 1 mini breadboard | * 1 mini breadboard | ||
− | |||
* 1 carte nano Arduino (avec cable d'alimentation) | * 1 carte nano Arduino (avec cable d'alimentation) | ||
+ | * 1 joystick (avec un bouton poussoir intégré) | ||
+ | * 4 cerveaux moteurs | ||
+ | * 1 paquet de petits câbles de montage (mâle et femelle) | ||
+ | |||
+ | |||
+ | * 1 moteur 5V | ||
* 1 mini version électronique | * 1 mini version électronique | ||
* 1 mini vérin électrique | * 1 mini vérin électrique | ||
− | |||
* 1 contrôleur moteur | * 1 contrôleur moteur | ||
− | + | <br> | |
− | * | + | |
− | * planches de bois | + | '''2. Pour le rail :''' |
+ | |||
+ | * 4 tiges en métal (2 de 30cm et 2 autres de 26cm dans notre cas) | ||
+ | * 1 planches de bois | ||
+ | * fil de cuivre assez fin (prévoir un peu de longueur) | ||
+ | * 2 cure-dents | ||
+ | <br> | ||
+ | |||
+ | '''3. Pour la pince :''' | ||
+ | |||
+ | * 3 trombones | ||
+ | * 1 pique à brochette | ||
+ | * 1 planche de bois | ||
+ | <br> | ||
==Code== | ==Code== |
Version du 26 janvier 2022 à 18:27
photo de l'équipe
Que fait ce projet ?
Le principe du Candy Grabber est simple. Un joystick permet de déplacer une pince, et le but est que celle-ci attrape les bonbons contenu dans la boite afin de les récupérer.
Liste des composants
1. Pour la partie électronique :
- 1 mini breadboard
- 1 carte nano Arduino (avec cable d'alimentation)
- 1 joystick (avec un bouton poussoir intégré)
- 4 cerveaux moteurs
- 1 paquet de petits câbles de montage (mâle et femelle)
- 1 moteur 5V
- 1 mini version électronique
- 1 mini vérin électrique
- 1 contrôleur moteur
2. Pour le rail :
- 4 tiges en métal (2 de 30cm et 2 autres de 26cm dans notre cas)
- 1 planches de bois
- fil de cuivre assez fin (prévoir un peu de longueur)
- 2 cure-dents
3. Pour la pince :
- 3 trombones
- 1 pique à brochette
- 1 planche de bois
Code
/* 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;
}
}
}