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
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
}