Outils pour utilisateurs

Outils du site


wiki:projets:robot-semi-hommeinmoov

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:projets:robot-semi-hommeinmoov [2015/06/29 12:18]
EMMANUEL Laurent
wiki:projets:robot-semi-hommeinmoov [2020/10/05 14:39] (Version actuelle)
Ligne 174: Ligne 174:
  
 D'après l'alimentation du PMClab, le servo Hitec besoin en moyenne de 0,5-0,6 Ampère pour tourner dans le même sens et au moment de changer de sens il y a des pics vers de 1,2-1,4 avec juste quelques composants mis (voir photo bientôt) D'après l'alimentation du PMClab, le servo Hitec besoin en moyenne de 0,5-0,6 Ampère pour tourner dans le même sens et au moment de changer de sens il y a des pics vers de 1,2-1,4 avec juste quelques composants mis (voir photo bientôt)
 +
 +
 +29/06/2015 : réglage des doigts de la main \\
 +
 +<code>
 + 
 +#include <Servo.h> 
 + 
 +Servo pouce;  // create servo object to control a servo 
 +Servo index;               // a maximum of eight servo objects can be created 
 +Servo majeur;
 +Servo annulaire;
 +Servo auriculaire;
 +
 +int pos = 30;    // variable to store the servo position 
 +int vitesse=15;
 +
 +void setup() 
 +
 +  pouce.attach(3);  // attaches the servo on pin 9 to the servo object 
 +  index.attach(5);
 +  majeur.attach(6);
 +  annulaire.attach(9);
 +  auriculaire.attach(10);
 +
 +//pouce 70,130
 +//doigt 15,110
 +//majeur 28,100
 +//annulaire 20, 130
 +//auriculaire 25,100
 +void loop() 
 +{
 +  //valeur(90); // met tout les servos à la position 90 degré
 + fermer(50,140);
 +
 +}
 +
 +
 +
 +void fermer(int Min,int Max) {
 +    
 +  for(pos = Min; pos < Max; pos += 1)  // goes from 0 degrees to 180 degrees 
 +  {                                  // in steps of 1 degree 
 +    pouce.write(pos);    // tell servo to go to position in variable 'pos'
 +    index.write(pos);
 +    majeur.write(pos);
 +    annulaire.write(pos);
 +    auriculaire.write(pos);  
 +    delay(vitesse);                       // waits 15ms for the servo to reach the position 
 +  } 
 +  for(pos = Max; pos>=Min; pos-=1)     // goes from 180 degrees to 0 degrees 
 +  {                                
 +    pouce.write(pos+20);    // tell servo to go to position in variable 'pos' 
 +    index.write(pos);
 +    majeur.write(pos);
 +    annulaire.write(pos);
 +    auriculaire.write(pos); 
 +    delay(vitesse);                       // waits 15ms for the servo to reach the position 
 +  } 
 +}
 +</code>
 +
 +03/07/2015 : \\
 +code pour le servo qui fait hocher la tête. \\
 +<code>
 +#include <Servo.h>
 +
 +Servo myservo;  // On créer un objet MyServo par lequel on envois les instruction au servo
 +
 +int Min = 20;
 +int Max = 180;
 +
 +
 +int pos = 0;    // variable to store the servo position 
 +int vitesse=15;
 +
 +void setup()
 +{
 +  pinMode(6,OUTPUT);
 +  myservo.attach(6);  // On associe notre objet à la Pin connecté au fil de données du servo
 +  
 +}
 +
 +void loop() 
 +{  
 +//myservo.write(90);     //donne l'ordre de mettre le Servo à sont angle minimum    
 + 
 +
 +
 +for(pos = Min; pos < Max; pos += 1)  // goes from 0 degrees to 180 degrees 
 +  {                                  // in steps of 1 degree 
 +    myservo.write(pos);    // tell servo to go to position in variable 'pos'
 +      delay(vitesse);                  // waits 15ms for the servo to reach the position 
 +  }
 +
 + for(pos = Max; pos>=Min; pos-=1)     // goes from 180 degrees to 0 degrees 
 +  {                                
 +    myservo.write(pos);    // tell servo to go to position in variable 'pos' 
 +    
 +    delay(vitesse);                       // waits 15ms for the servo to reach the position 
 +  } 
 +
 +delay(1500);
 +  
 +  
 +
 +</code>
 +
 +Tout les moteurs des bras sont asservis, voici le code qui permet de controler le robot avec leur extreneum : 
 +<code>
 +#include <Servo.h>
 +
 +//partie gauche
 + Servo g_aisselle;
 + Servo g_homoplate; 
 + Servo g_rotbras;
 + Servo g_contraction;
 + 
 + //partie droite
 + Servo d_aisselle;
 + Servo d_homoplate;  
 + Servo d_rotbras;
 + Servo d_contraction;
 +
 +int mini = 0; // variable to store the servo position
 +int maxi = 180 ;
 +
 +void setup()
 +{
 +  g_aisselle.attach(2);
 +  g_homoplate.attach(3);
 +  g_rotbras.attach(4);
 +  g_contraction.attach(5);
 +  
 +  d_aisselle.attach(9);
 +  d_homoplate.attach(10);
 +  d_rotbras.attach(11);
 +  d_contraction.attach(12);
 +   
 +  // attaches the servo on pin 9 to the servo object
 +}
 + 
 +void loop()
 +{
 +  /*
 +  for(mini = 0; mini < 180; mini += 1)  // goes from 0 degrees to 180 degrees
 +  {                             // in steps of 1 degree
 +  myservo.write(mini);          // tell servo to go to position in variable 'pos'
 +  delay(15);                  // waits 15ms for the servo to reach the position
 +  }
 +  for(maxi = 180; maxi>=1; maxi-=1)   // goes from 180 degrees to 0 degrees
 +  {                            
 +  myservo.write(maxi);          // tell servo to go to position in variable 'pos'
 +  delay(15);                  // waits 15ms for the servo to reach the position
 +  }
 + 
 +  */
 +  // position initale
 +
 + g_aisselle.write(20); //  20-43 semble être le milieu    20 bas  : 43 haut
 + g_homoplate.write(50); //10-100        10 bas : haut : 100
 + g_rotbras.write(90); // 50-130  droite 100 : 180 gauche
 +  g_contraction.write(0); //0-25  bas 0 : 25 haut
 +  
 +  d_aisselle.write(50); //10-70
 +  d_homoplate.write(30); //  70-130
 +  d_rotbras.write(100); // 100-130  droite 100 : 130 gauche
 +  d_contraction.write(165); //110-170  haut 110 : 165 bas
 +
 +//coucou
 +/*
 +  d_aisselle.write(50); //10-70
 +  d_homoplate.write(110); //  70-130 - 110 horizotal
 + 
 +  d_contraction.write(160); // dérontracté   110-160 contracté
 +  d_rotbras.write(150); // 100-130
 +  delay (3000);
 +  d_rotbras.write(100);
 +  delay (3000);
 +
 +  */
 +
 +// WTF
 +
 +/*
 + g_aisselle.write(20); //  20-43 semble être le milieu    20 bas  : 43 haut
 + g_homoplate.write(100); //10-100        10 bas : haut : 100
 + g_rotbras.write(180); // 50-130  droite 100 : 180 gauche
 + 
 +  d_aisselle.write(50); //10-70
 +  d_homoplate.write(100); //  70-130
 +  d_rotbras.write(180); // 100-130  gauche 100 : 130 droite
 +  d_contraction.write(165); //110-170  haut 110 : 165 bas
 +  */
 + 
 +}
 +
 +
 +</code>
 +
wiki/projets/robot-semi-hommeinmoov.1435580289.txt.gz · Dernière modification: 2016/09/11 10:51 (modification externe)