Aller au contenu


Photo
- - - - -

Kit robot à chenille avec encodeurs [testé par mthibs]

robot chenille char kit radiocommande

10 réponses à ce sujet

#1 mthibs

mthibs

    Nouveau membre

  • Membres
  • 71 messages
  • Gender:Male

Posté 15 février 2017 - 08:20

Salut,

Je propose ici un test du Kit robot à chenille avec encodeurs.

Il est déjà entièrement assemblé, le châssis est soudé et les moteurs montés comme le montre la photo.

 

20170213_171305.jpg

 

Bon pour commencer on va faire fonctionner ce mini char sans les encodeurs présents sur les moteurs chaque chose en son temps ! 

 

C'est un peu dommage, mais pour l'utiliser il faudra d'abord rallonger les fils d'alimentation des moteurs qui sont trop courts pour être branchés sur un quelconque driver  <_< .

 

20170213_181415.jpg

 

Pour jouer avec ce petit char j'utilise : une radiocommande, un driver de moteur CC, un clone d'Arduino Uno et une batterie Li-Po.

 

Les branchements s'effectuent comme dans le test pour le driver puisque c'est le même.

 

Pour fixer les cartes sur le châssis, il y a plusieurs emplacement possible, il suffit d'en trouver un qui convient. Par contre comme les moteurs sont déjà montés et gènent un peu, c'est pas toujours évident pour positionner les vis et les entretoises.

 

Quelques images du robot avec les cartes :

20170214_151755.jpg

20170214_151932.jpg

 

 

J'ai commencé par faire un programme simple pour piloter uniquement le robot en avant ou en arrière en fonction des ordres de la radiocommande.

 

Je mets le code et une image une fois dans l'IDE (au cas ou le web editor ne fonctionne pas  ;) ).

// Contrôle PWM simple
#define PB 3    // Contrôle vitesse moteur 1
#define B1 5    // Contrôle direction moteur 1
#define B2 6
#define PA 9    // Contrôle vitesse moteur 2
#define A1 10   // Contrôle direction moteur 2
#define A2 11 

                 // Déclaration des variables correspondantes
int ch2;        // aux différentes channels
int ch3;

unsigned int vitesse;    //vitesse de commande des moteurs

void stop()     //Stop
{
digitalWrite(PB,LOW);
digitalWrite(PA,LOW);
}

void avance(int vitesse) // En avant
{
analogWrite (PB,vitesse); // Contrôle de vitesse en PWM
digitalWrite(B1,LOW);
digitalWrite(B2,HIGH);
analogWrite (PA,vitesse);
digitalWrite(A1,LOW);
digitalWrite(A2,HIGH);
}

void recule (int vitesse) // En arrière
{
analogWrite (PB,vitesse);
digitalWrite(B1,HIGH);
digitalWrite(B2,LOW);
analogWrite (PA,vitesse);
digitalWrite(A1,HIGH);
digitalWrite(A2,LOW);
}


void setup() {

  pinMode(PB, OUTPUT);
  pinMode(B1, OUTPUT);
  pinMode(B2, OUTPUT);
  pinMode(PA, OUTPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
  
                      // Configuration des broches
  pinMode(4, INPUT); // comme entrées
  pinMode(7, INPUT);

  Serial.begin(9600); // Démarage de la liaison série  
}

void loop() {
                                 // Lit la largeur d'impulsion de 
  ch2 = pulseIn(4, HIGH, 25000); // chaque channel
  delay(5);
  ch3 = pulseIn(7, HIGH, 25000);
  delay(5);

  vitesse=map(ch3,980,2000,0,255);   //valeur vitesse de commande

  Serial.print("Channel 2:");
  Serial.println(ch2);

  Serial.print("Channel 3:");
  Serial.println(ch3);

  if(ch2==0){  //radiocommande éteinte
    stop();
  }

else{
  if ((ch2>1470) and (ch2<1490)){
     stop();   
  }
  if (ch2>1490){    //joystick en avant
     avance(vitesse);   
  }
  if (ch2<1470){   //joystick en arrière
     recule(vitesse);   
  }
}
}

tuto char.png

tuto char(2).png

 

J'ai essayé un programme pour ajouter une fonction de rotation au robot. Et là ça devient un peu plus compliqué avec la gestion des différentes positions des joysticks  ^_^ .

 

// Contrôle PWM simple
#define PB 3 // Contrôle vitesse moteur 1
#define B1 5 // Contrôle direction moteur 1
#define B2 6
#define PA 9 // Contrôle vitesse moteur 2
#define A1 10 // Contrôle direction moteur 2
#define A2 11 

int ch1; // Déclaration des variables correspondantes
int ch2; // aux différentes channels
int ch3;

unsigned int vitesse;  //vitesse de commande des moteurs

void stop()     //Stop
{
digitalWrite(PB,LOW);
digitalWrite(PA,LOW);
}

void avance(int vitesse) // En avant
{
analogWrite (PB,vitesse); // Contrôle de vitesse en PWM
digitalWrite(B1,LOW);
digitalWrite(B2,HIGH);
analogWrite (PA,vitesse);
digitalWrite(A1,LOW);
digitalWrite(A2,HIGH);
}

void recule (int vitesse) // En arrière
{
analogWrite (PB,vitesse);
digitalWrite(B1,HIGH);
digitalWrite(B2,LOW);
analogWrite (PA,vitesse);
digitalWrite(A1,HIGH);
digitalWrite(A2,LOW);
}

void tourne_G (int vitesseB,int vitesseA) // Tourne à gauche
{
analogWrite (PB,vitesseB);
digitalWrite(B1,LOW);
digitalWrite(B2,HIGH);
analogWrite (PA,vitesseA);
digitalWrite(A1,LOW);
digitalWrite(A2,HIGH);
}

void tourne_D (int vitesseB,int vitesseA) // Tourne à droite
{
analogWrite (PB,vitesseA);
digitalWrite(B1,LOW);
digitalWrite(B2,HIGH);
analogWrite (PA,vitesseB);
digitalWrite(A1,LOW);
digitalWrite(A2,HIGH);
}


void tourne_G_AR (int vitesseB,int vitesseA) // Tourne à gauche en arrière
{
analogWrite (PB,vitesseB);
digitalWrite(B1,HIGH);
digitalWrite(B2,LOW);
analogWrite (PA,vitesseA);
digitalWrite(A1,HIGH);
digitalWrite(A2,LOW);
}

void tourne_D_AR (int vitesseB,int vitesseA) // Tourne à droite en arrière
{
analogWrite (PB,vitesseA);
digitalWrite(B1,HIGH);
digitalWrite(B2,LOW);
analogWrite (PA,vitesseB);
digitalWrite(A1,HIGH);
digitalWrite(A2,LOW);
}

void setup() {

  pinMode(PB, OUTPUT);
  pinMode(B1, OUTPUT);
  pinMode(B2, OUTPUT);
  pinMode(PA, OUTPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
  
  pinMode(2, INPUT); // Configuration des broches
  pinMode(4, INPUT); // comme entrées
  pinMode(7, INPUT);

  Serial.begin(9600); // Démarage de la liaison série  
}

void loop() {

  ch1 = pulseIn(2, HIGH, 25000); // Lit la largeur d'impulsion de 
  delay(5);
  ch2 = pulseIn(4, HIGH, 25000); // chaque channel
  delay(5);
  ch3 = pulseIn(7, HIGH, 25000);
  delay(5);

  vitesse=map(ch3,980,2000,0,255);      //valeur vitesse


  Serial.print("Channel 1:");
  Serial.println(ch1);

  Serial.print("Channel 2:");
  Serial.println(ch2);

  Serial.print("Channel 3:");
  Serial.println(ch3);

  if(ch2==0){   //radiocommande éteinte
    stop();
  }

else{
  if ((ch2>1470) and (ch2<1490)){
     stop();   
  }
  if (ch2>1490){    //joystick en avant
     avance(vitesse);    
  }
  if ((ch1>1490) and (ch2>1490)){    //joystick à droite en avant
    if (vitesse<128){
     tourne_D(vitesse,255-vitesse);
    }
    else{
      tourne_D(255-vitesse,vitesse);
    }
  }
  if ((ch1<1470) and (ch2>1490)){    //joystick à gauche en avant
    if(vitesse<128){
     tourne_G(vitesse,255-vitesse);
    }
    else{
      tourne_G(255-vitesse,vitesse);
    }
  }

  if (ch2<1470){      //joystick en arrière
     recule(vitesse);   
  }
    if ((ch1>1490) and (ch2<1470)){    //joystick à droite en arrière
      if(vitesse<128){
       tourne_D_AR(vitesse,255-vitesse);
      }
      else{
        tourne_D_AR(255-vitesse,vitesse);
      }
  }
  if ((ch1<1470) and (ch2<1470)){    //joystick à gauche en arrière
    if(vitesse<128){
     tourne_G_AR(vitesse,255-vitesse);   
    }
    else{
      tourne_G_AR(255-vitesse,vitesse);
    }
  }
} 
}

Finalement voici le robot en action :

 

 

Bon.. les commandes ne sont pas encore tout à fait au point mais il y a de l'évolution !  :D

 

 

EDIT : Voici le tutoriel complet pour fabriquer votre char



#2 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 115 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 15 février 2017 - 11:25

Bravo pour les tests :) 
Tres bien fait. 


Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#3 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 4 390 messages
  • Gender:Male

Posté 16 février 2017 - 07:05

Bravo pour ce test.
Ma chaine vidéo YouTube : https://www.youtube....wMz-IzZqyvqEUek

#4 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 486 messages
  • Gender:Not Telling

Posté 28 février 2017 - 10:44

Est-il bruyant?

#5 mthibs

mthibs

    Nouveau membre

  • Membres
  • 71 messages
  • Gender:Male

Posté 03 mars 2017 - 11:54

Salut !

Au niveau du bruit, je le trouve plutôt silencieux mais tu peux juger par toi avec la vidéo :

Fichier joint  20170215_130750.zip   53,86 Mo   78 téléchargement(s)



#6 Hubert424

Hubert424

    Nouveau membre

  • Membres
  • 4 messages
  • Gender:Male
  • Location:Kraków

Posté 02 juin 2017 - 11:56

Très bon projet!

 

J'ai quelques questions. Pourquoi tu préféré utiliser la télécommande que web UI dans le "cloud". Sur le marchę est beaucoup de contrôleurs replacer les fonctions un driver de moteur et un clone d'Arduino Uno en un seul appareil (de RTOS). 

 

Salutations  :D



#7 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 115 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 27 juin 2018 - 06:50

Question: j'aimerai savoir si le châssis se comporte bien en milieu naturel (sur de l'herbe quoi :)


Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#8 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 27 juin 2018 - 07:58

Oui il se comporte bien =) 
 

Par contre ce qui peut être considéré comme un défaut de ces chenilles c'est qu'elles sont " en plastique dur " pas en caoutchouc ... Donc dans certains cas elles peuvent manquer d'adhérence sur un sol lisse par exemple ...  

 

Je pense qu'oracid arriverait mieux à expliquer ce que je cherche à dire, vu qu'il utilise des patins en caoutchouc en plus sur ses char pour augmenter l'adhérence ...


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !

 

Les réalisations de Mike118  

 

 

 


#9 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 4 390 messages
  • Gender:Male

Posté 27 juin 2018 - 08:17

Alors…
Les chenilles adhérentes, c'est bien pour monter des escaliers, grace à l'accroche, sinon ça patine.
Sur du carrelage ou du parquet, mes chenilles se comportent correctement, mais sur l'herbe, c'est pas terrible.
Perso, je fais des chars pour une base de robot d'intérieur, pas pour l'extérieur.
Dans l'absolu, un char c'est fait pour du tout terrain, à l'extérieur donc.
Il vaut donc mieux éviter le caoutchouc.
Un char qui glisse un peu sur un parquet ou du carrelage, dans la pratique ce n'est pas un problème.
Ma chaine vidéo YouTube : https://www.youtube....wMz-IzZqyvqEUek

#10 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 115 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 28 juin 2018 - 05:18

Merci :)


Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#11 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 02 juillet 2018 - 07:03

Les nouvelles de la Réunion sont bonnes ! Rick Hunter  a effectué sa mission avec succès ;) 
182.jpg

Pour rappel ce robot utilise les chenilles du kit de char : 

blogentry-5864-0-21819200-1528226907.jpg

Comme indiqué dans le blog dédié au développement du robot d'exploration Rick Hunter

( Pour info les fichiers .stl des pièces imprimées en 3D sont disponible sur demande ;) )

 

Ce qui confirme sont bon comportement du robot dans la vraie vie. 

Maintenant on attend quelques retours en vidéo ;) 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !

 

Les réalisations de Mike118  

 

 

 




Répondre à ce sujet



  



0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users