Filaire

Tu as donc entre tes mains le kit robotique libre développé par Pouvoir Faire et L’Électrolab. Ci-dessous tu trouveras la liste du matériel contenu dans le kit.
Deux montages électronique de base te sont montrés permettant au robot de fonctionner tout de suite.
Tu peux aussi téléverser le code du kit à la suite sur ta carte Arduino pour démarrer.

Kit robotique filaire

Kit robotique filaire

Recette de Robots Sportifs

Tu as donc entre tes mains le kit robotique libre développé par Pouvoir Faire et L’Électrolab. Ci-dessous tu trouveras la liste du matériel contenu dans le kit.
Deux montages électronique de base te sont montrés permettant au robot de fonctionner tout de suite.
Tu peu aussi téléverser le code à la suite sur ta carte Arduino pour démarrer.

Matériel

  • Outils
  • Tournevis

  • Paire de ciseaux

  • Matériel
  • Carte Arduino uno

  • Cable Arduino(cable usb A/ usb B)

  • Kit de dupont 40mm

  • screw shield keyes v2

  • Servo micro 360

  • Led 8 mm vert

  • Support de Pile 9v

  • Pince crocos custom 2m

  • Consommable
  • Papier A5 scotch double face

  • papier d’aluminium

  • Carton fin 1mm

  • Paille carton

  • Attache parisienne

  • Roues opitec carton percé (105-201)

  • Pic à brochette courts

  • pile 9v

  • Crayon à papier

  • Carnet de bord A5

  • Sac en papier plié taille A5

  • Fil multibrin rouge et noir

  • Palonnier pour servomoteur

Montage

Video

En dessous ce trouve le code qui devra se trouver dans la carte Arduino. Pour le téléverser dans votre carte vous aurez besoin d’installer le logiciel, il est téléchargeable gratuitement en cliquant sur ce lien : https://www.arduino.cc/en/software
Tu peux alors copier le code suivant dans le logiciel Arduino ou le télécharger pour le téléverser dans la carte.


/* 
Controle de deux servo 360 avec quatre boutons.
La déclaration en tant que pullup des boutons ne rend pas indispensable résistance sur le bouton car elle en active une intégrée dans l'arduino.
CW = Clockwise = Sens horaire
CCW = Counter clockwise = Sens Anti-horaire
CC-BY-NC-SA Pouvoir Faire

Pour le servo 180 le bouton est en 6 Et le servo est en 11

 */
 
#include <Servo.h>

Servo myservoG;  // Créé le servo Gauche
Servo myservoD;  // Crée le servo Droit
Servo myservo180A; // crée le servo 180 A

int servoPinG = 9;// Branchement du servo gauche sur la pin 9
int servoPinD = 10;// Branchement du servo droit sur la pin 10

int PinservoA = 11;// Branchement du servo droit sur la pin 11


int AvancePin = 2; //  Bouton pour avancer sur la pin 2
int ReculePin = 3; // Bouton pour reculer sur la pin 3
int GauchePin = 4; // Bouton pour aller à gauche sur la pin 4
int DroitePin = 5; // Bouton pour aller à droite sur la pin 5


int BtnPinA = 6; // Bouton pour actionner le Servo 180 A


        
int CCW = 120; // Valeur du servo pour le Sens anti horaire
int CW = 60; // Valeur du servo pour le Sens horaire
int Sstop = 93; // Valeur du servo pour le Stop, il se peut que le servo ne s'arrete pas complètement, cela est du à une impressision de fabrication


void setup() {
  Serial.begin(9600);
  myservo180A.attach(11);
  pinMode(AvancePin,INPUT_PULLUP);// declare la pin du bouton avance comme un bouton, ne rend pas indispensable résistance sur le bouton
  pinMode(ReculePin,INPUT_PULLUP);//  declare la pin du bouton recule comme un bouton
  pinMode(GauchePin,INPUT_PULLUP);//  declare la pin du bouton gauche comme un bouton
  pinMode(DroitePin,INPUT_PULLUP);//  declare la pin du bouton droite comme un bouton

  pinMode(BtnPinA,INPUT_PULLUP);//  declare la pin du bouton Servo 180 A comme un bouton


  myservoG.write(Sstop);// Initialise avec les moteur arrétés
  
}



void loop() {

bool    Avance = digitalRead(AvancePin);// Lit le statut du bouton avance et le met dans la variable Avance
bool    Recule = digitalRead(ReculePin);// Lit le statut du bouton recule et le met dans la variable Recule
bool    Gauche = digitalRead(GauchePin);// lit le statut du bouton gauche et le met dans la variable Gauche
bool    Droite = digitalRead(DroitePin); // Lit le statut du bouton droit et le met dans la variable Droite

bool    ArmeA = digitalRead(BtnPinA); // Lit le statut du bouton 180 A et le met dans la variable ArmeA

if (Avance == LOW){ // Si le bouton avancer est appuyé, envoi la fonction avancer
      Favancer();
  }
else if (Recule == LOW){ // Si le bouton reculer est appuyé, envoi la fonction reculer
   Freculer();
  }
else if (Gauche == LOW){ // Si le bouton gauche est appuyé, envoi la fonction Aller a gauche
    Fgauche();
  }
else if (Droite == LOW){ // Si le bouton Droite est appuyé, envoi la fonction Aller a droite
     Fdroit();
}

else if (ArmeA == LOW){ // Si le bouton Arme A est appuyé, envoi la fonction Activer l'arme A
     FArmeA();
}

else 
  {
    Fstop();  //Si rien n'est appuyé, envoi la fonction stop
  }
  
}

void Favancer(){ //Fonction Avancer
 myservoG.attach(servoPinG);  // Attache le servo en pin 9 sur l'objet myservoG
  myservoD.attach(servoPinD);  // Attache le servo en pin 10 sur l'objet myservoD
  
  
  myservoG.write(CW); // Fait tourner le moteur dans le sens horaire
  myservoD.write(CCW);// Fait tourner le moteur dans le sens Anti-horaire
}

void Freculer(){  //Fonction Reculer
  myservoG.attach(servoPinG);  // Attache le servo en pin 9 sur l'objet myservoG
  myservoD.attach(servoPinD);  // Attache le servo en pin 10 sur l'objet myservoD
  
  myservoG.write(CCW); // Fait tourner le moteur dans le sens Anti-horaire
  myservoD.write(CW); // Fait tourner le moteur dans le sens horaire

}

void Fdroit(){ //fonction Aller à droite
  myservoG.attach(servoPinG);  // Attache le servo en pin 9 sur l'objet myservoG
  myservoD.attach(servoPinD);  // Attache le servo en pin 10 sur l'objet myservoD
     
  myservoG.write(CCW);// Fait tourner le moteur dans le sens Anti-horaire
  myservoD.write(CCW);// Fait tourner le moteur dans le sens Anti-horaire

}

void Fgauche(){  //fonction Aller à gauche
  myservoG.attach(servoPinG);  // Attache le servo en pin 9 sur l'objet myservoG
  myservoD.attach(servoPinD);  // Attache le servo en pin 10 sur l'objet myservoD
     
  myservoG.write(CW); // Fait tourner le moteur dans le sens horaire
  myservoD.write(CW); // Fait tourner le moteur dans le sens horaire
    
}

void FArmeA(){
    myservo180A.attach(PinservoA);  // Attache le servo en pin 11 sur l'objet myservo180A
    myservo180A.write(CW); // Fait tourner le moteur dans le sens horaire

}


void Fstop(){    //Fonction Stop
    myservoG.detach(); // ces deux commandes ont été rajouté car parfois les roues du bot continuaient à trouver même en ayant envoyé le signal STOP
    myservoD.detach(); // ces deux commandes ont été rajouté car parfois les roues du bot continuaient à trouver même en ayant envoyé le signal STOP
  myservo180A.detach();//minimum du servo 180
}