Aller au contenu


Photo
- - - - -

Robot télécommandé


45 réponses à ce sujet

#1 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 13 octobre 2011 - 06:59

Bonjour à tous.

Bon voilà j'ai avancé dans mon code , je peux maintenant contrôler mon robot avec ma télécommande.

Après plusieurs heures de programmation et d’acharnement, j'ai enfin réussi.

Bon ça demande quelque réglage dans le code pour le mode automatique , car ça donne des gros a coûts , comme si quelque

chose l’empêché d'avancer aux démarrages.

Sinon ya le mode manuel pour piloter le robot avec la télécommande.

Ou

le mode automatique du robot , pour qu'il puisse circuler tout seul.

Matériel mis sur le robot:

1 Capteur de Distance infrarouge IR Sharp GP2Y0A02YK0F

1 Capteur de distance infrarouge Sharp GP2Y0A21

1 capteur de niveau gris

2 motoreducteur

1 servomoteur

1 carte DFRduino Duemilanove 328

1 carte Arduino Motor Bouclier (L293) (SKU: DRI0001) Module contrôleur de moteurs (2x1A)

1 ventilo gamer

1 LED bleu

1 LED rouge

1 télécommande infrarouge

1 batterie de 9V6

voici le code:


//déclare
  #include <IRremote.h>
  #include <Servo.h>
  
  //Servomoteur
  // Créer un objet pour contrôler un servomoteur
  Servo myservo; 
  
  //capteur gris qui fera office de phare a  l'avans du robot  
  int gris = 2; // broche analogique utilisé pour capteur gris
  
  //Capteur de Distance infrarouge IR Sharp GP2Y0A02YK0F
  int capteur = 0;
 
  //Capteur de distance infrarouge Sharp GP2Y0A21
  int capteur2 = 1;
 
  // Variable pour lire la valeur du capteur de la broche analogique
  int val;   
  
  // Variable pour lire la valeur du capteur2 de la broche analogique
  int val2;

  //LED bleu   
  int LEDBLEU = 2;

  //Motoreducteur
  const int vitesse1=6;
  const int vitesse2=5;
  const int direction1=7;
  const int direction2=4; 
  
  // IR PIN module récepteur et variable
  int RECV_PIN = 11;
  IRrecv irrecv(RECV_PIN);
  decode_results results;
  
  //motoréducteur pour le mode déplacement automatique
  void Moteur1(int valeur_vitesse, boolean sens_avant)
{
  analogWrite(vitesse1,valeur_vitesse); //Valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
  if(sens_avant)
{
  digitalWrite(direction1,HIGH);
}
  else
{
  digitalWrite(direction1,LOW);
}
}
 
  void Moteur2(int valeur_vitesse, boolean sens_avant)
{
  analogWrite(vitesse2,valeur_vitesse); //Valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
  if(sens_avant)
{
  digitalWrite(direction2,HIGH);
}
  else
{
  digitalWrite(direction2,LOW);
}
 } 

void setup()
{ 
  // configure les broches de commande du moteur en sortie
  pinMode(vitesse1,OUTPUT);
  pinMode(vitesse2,OUTPUT);
  pinMode(direction1,OUTPUT);
  pinMode(direction2,OUTPUT);
 
  //capteur gris office de phare
  pinMode(gris,OUTPUT);
 
  //LEDBLEU broche en mode sortie
  pinMode(LEDBLEU,OUTPUT);
 
 // Attache le servo sur la broche 3 à l'objet servo
  myservo.attach(3); 
  
  int i;
  for(i=4;i<=8;i++)
  pinMode(i,OUTPUT); //Met les pin 4,5,6,7 en mode sortie 
  
  Serial.begin(9600);
  
  // désactiver les moteur par défaut
  digitalWrite(vitesse2,LOW);
  digitalWrite(vitesse1,LOW);
  
  // début de récepteur IR
  irrecv.enableIRIn(); 
}

void loop()
{
  
  //Mode automatique pour le controle , avec la télécommande.
  
  // mode automatique (POWER) bouton rouge de la télécommande
  if(results.value==16580863)
{
  // Définit la position d'asservissement en fonction de la valeur à l'échelle
  myservo.write(val); 
  
  // L'échelle pour l'utiliser avec le servo (valeur entre 0 et 300)
  val = analogRead(capteur);
  val = map(val, 0, 115, 0, 300); 
 
 // Attend que le servo pour y arriver
  delay(200); 
  
  val2 = analogRead(capteur2);
  val2 = map(val2, 0, 115, 0, 300);
  
  // Si on est à moins de quelque cm d'un obstacle pour les deux capteurs
  if ((val <=95) || (val2 <= 95)) 
   
{
  Moteur1(0,true);          //J'arrete le moteur 1
  Moteur2(0,true);         // J'arrete le moteur 2
  delay(200);             //J'attend 2 seconde
  Moteur1(180,true);     //J'avance tout droit
  Moteur2(0,true);      // J'arrete le moteur 2
  delay(600);          //La valeur à mettre reste à définir en fonction de la vitesse du robot 
  Moteur1(180,false); //J'avance tout droit 
  Moteur2(180,true); //J'avance tout droit 
 
}
  else
{
  Moteur1(180,false);//J'avance tout droit 
  Moteur2(180,true); //J'avance tout droit 
}
 }

  
  // Mode Manuel controle le robot avec la télécommande
  
  Serial.println(results.value, DEC);
  
  
  
  // Signal IR reçu
  if (irrecv.decode(&results)) 
{
  //Allume la LED bleu avec la touche ( EQ ) de la télécommande
  if(results.value==16625743)
{
  digitalWrite(LEDBLEU,HIGH);
}  
   
  // Arrêt de la LED bleu avec la touche ( ST/REPT ) de la télécommande
  if(results.value==16609423)
{
  digitalWrite(LEDBLEU,LOW);
}
  
  //  (VOL +) bonton de la télécommande faire avancé le robot
  if(results.value==16613503)
{
  motor(235,235);
}
  // (VOL-) bonton de la télécommande faire reculé le robot
  else if(results.value==16617583)
{
  motor(-235,-235);
}
  // rotation gauche (<<) touche recule rapide de la télécommande
  else if(results.value==16589023) 
{
  motor(0,130);
}
  // rotation droite (>>) bontonn avance rapide la télécommande
  else if(results.value==16605343)
{
  motor(0,-130);
}
  // avant gauche (playe) bouton  de la télécommande
  else if(results.value==16621663)
{
  motor(100,200);
}
  // avant droite (FUNC / STOP) bouton de la télécommande
  else if(results.value==16597183)
{
  motor(200,100);
}
  // inverse à gauche (BAS) bonton de la télécommande
  else if(results.value==16584943)
{
  motor(-235,-235);
}
  // inverse à droite (HAUT) bouton de la télécommande
  else if(results.value==16601263)
{
  motor(235,235);
}
  // recevoir la prochaine valeur
  irrecv.resume();
 
  // court délai d'attente pour répéter le signal IR
  // (L'empêcher d'arrêter si aucun signal reçu)
  delay(100);
}
  // aucun signal IR reçu
  else
{
 
  // roue droite  a l'arrêt 
  digitalWrite(vitesse2,LOW);
 
  // roue gauche a l'arrêt
  digitalWrite(vitesse1,LOW); 
}
 }
 
  // fonction pour contrôler le moteur
  void motor(int left, int right)
{
  // limiter la vitesse max
  if(left>255)left=255;//gauche
  else if(left<-255)left=-255;//gauche
  if(right>255)right=255;//droite
  else if(right<-255)right=-255;//droite

  // roue gauche roue avant
  if(left>0)//gauche a l'arrét 
{
  // direction roue gauche avant
  digitalWrite(direction1,HIGH);

  // vitesse de la roue gauche
  analogWrite(vitesse1,left);
}

  //inverser la roue gauche
  else if(left<0)
{
  // inverse à gauche en direction 
  digitalWrite(direction1,LOW);
  
  // vitesse de la roue gauche
  analogWrite(vitesse1,-left);
}
  // roue gauche a l'arrêt
  else
{
  
  digitalWrite(vitesse1,LOW);
}
  // roue droite avant
  if(right>0)
{
  // direction de la roue droite avant
  digitalWrite(direction2,LOW);
  analogWrite(vitesse2,right);
}
  // roue droite en arrière
  else if(right<0)
{
  // inverse à droite en direction 
  digitalWrite(direction2,HIGH);
  analogWrite(vitesse2,-right);
}
  // roue droite a l'arrêt
  else
{
  // roue droite a l'arrêt
  digitalWrite(vitesse2,LOW);
}
 }

 // SEB03000


#2 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 14 octobre 2011 - 07:03

Sympathique comme programme !
A quand la petite vidéo de démonstration ?? ;)

++
Black Templar

Mon site internet : http://ferdinandpiette.com/


#3 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 14 octobre 2011 - 11:12

Bientôt Black Templar promis.

Le t'en que je règle le petit problème dans le mode automatique dans mon programme.

#4 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 15 octobre 2011 - 01:43

Voici la vidéo comme promis.



Reste encore à améliorer le mode automatique.

Je vais luit rajouté un cache pour caché tous les files, car ça fait pas propre , et luit mètre une nouvelle plateforme , pour

rajouté un bras robotiser et un écran tactile plus , une caméra.

Je rajouterai une nouvelle vidéo quand le robot sera ( présentable ).

voila , la suite bientôt

#5 Math

Math

    Membre

  • Membres
  • 11 messages
  • Gender:Female
  • Location:13, 34

Posté 15 octobre 2011 - 08:17

Bonjour,

Lol, ça sent le robot serviteur de journal, de chips et de bière ;)

C'est super et il me tarde de m'y mettre :) mais il semble que la télécommande marche une fois sur deux... non?
Quel type de bras veux tu mettre?

a+

Math

#6 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 15 octobre 2011 - 10:06

Salut Math.

mais il semble que la télécommande marche une fois sur deux... non?


Oui la télécommande répondez un peux tardivement c'été a cosse des piles de la télécommande ils été épuisé.


Quel type de bras veux tu mettre?



Je ne c'est pas pour le moment il faut que je réfléchisse.

#7 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 18 octobre 2011 - 04:06

Bonjour à tous.
Voilà j'aurais une question.
Je me demande si cela était possible.
C'est de prendre 2 capteurs infrarouges sharp Gp2Y0A21 ou GPY0A02 YK0 F
Et de faire en sorte qu'il suit mes mouvements.
est ce que que c'est possible???
Car si cela est possible sa luit fera une 3eme fonctions.

Corrections

Modifié par seb03000, 11 décembre 2011 - 02:42 .


#8 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 18 octobre 2011 - 05:03

Salut Seb

Oui il est possible de faire en sorte qu'un robot suive une personne.
Mais pas en utilisant ces capteurs Tu vas devoir trouver un capteur capable de détecter l'infrarouge que nos corps dégagent, d'en trouver la source.
Les capteurs Sharp fonctionnent de façon différente.
Ils émettent un rayon infrarouge et calcul la vitesse à laquelle ce rayon infrarouge leur reviens. le temps détermine la distance.
La la source c'est nous.

A tester avec ce genre de capteurs.

Toutefois, si tu veux absolument utiliser les capteurs Sharp, il y a bien un moyen mais pas commode.

Voila une vidéo qui fait la même chose avec un capteur ultrason

Il est donc possible de faire la même chose avec un capteur Sharp. Mais tu vois bien les difficultés que cela entraine. tu est obligé de mettre un obstacle que le capteur detecte. Donc a coder a l'inverse de ce que nous faisons habituellement avec ce capteur puisque nous l'utilisons pour éviter les obstacles.
Mais tu ne peux pas simplement marcher et esperer que ton robot te suive. ca ne marcherait pas.

J'avais vu une vidéo ou cela semblait fonctionnel. Mais je ne me souviens plus ou. Si je la retrouve je te la communique.

Autre solution, un outil comme la CMU Cam3 qui est une caméra capable de reconnaitre les formes et les couleurs. Si tu as par exemple un pull rouge et que tu demande à ta cam de suivre le rouge cela peut marcher. j'en ai une et je l'ai deja testé pour la reconnaissance de forme ou de couleurs, mais jamais testé pour le suivie de personne. Je ne sais pas si cela pourrait marcher. Et même si cela marche, je suis septique sur le fait que cela marche a tous les coups

 


#9 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 18 octobre 2011 - 06:12

Donc c'est feu-sable , mais bon je ne lâche pas l’affaire.

Donc moi j'ai bien un capteur infrarouge à lentille pris sur le site de arobos
http://www.arobose.com/shop/capteurs-robot/98-capteur-de-mouvement-infrarouge.html

Je vais tester avec le capteur infrarouge à lentille , mais je doute que ça marche.

Bon si je ne me trompe pas , le début du programme de se capteur infrarouge a lentille se fait comme se si???


void setup()
{
   Serial.begin(9600);
   pinMode(2,INPUT);
}

void loop()
{
  if (digitalRead(2) == LOW) 
  {
     Serial.print("ALARM !");
     delay(1000); // pause d'une seconde
  }
  delay(100);
}


Sinon je commanderai un capteur ultrason jan et un mai j’ai perdu un cavalier.

merci à toi Astondb8

#10 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 18 octobre 2011 - 06:57

Qu'est censé faire ce code Seb ?

la a part afficher "alarme" sur le serial monitor si ton capteur ne te renvoi rien il ne fait pas grand chose...

Cdlt
Yves

 


#11 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 18 octobre 2011 - 07:09

Astondb8 comme j'ai acheté se capteur je n'est pas u d’exemple pour le programmé comme une librairie donc j'ai fouiller sur

le net , et j'ai trouvé se code.

Oui je c'est ça a rien avoir avec se que je vais faire avec.

La je me, mais dessus je suis en train de le testé je veux voir se que ça donne , je te tien accourent si ji arrive.

#12 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 18 octobre 2011 - 07:17

Ha je rajoute mon nouveau programme de mon robot je les amélioré.


//déclare 
#include <IRremote.h>
#include <Servo.h>
 
//Servomoteur
// Créer un objet pour contrôler un servomoteur
Servo myservo;

//Capteur de Distance infrarouge IR Sharp GP2Y0A02YK0F
int capteur = 0;

//Capteur de distance infrarouge Sharp GP2Y0A21
int capteur2 = 1;

// Variable pour lire la valeur du capteur de la broche analogique
int val; 

// Variable pour lire la valeur du capteur2 de la broche analogique
int val2;

//LED bleu 
int LEDBLEU = 2;
 
//Motoreducteur
const int vitesse1=6;
const int vitesse2=5;
const int direction1=7;
const int direction2=4;
 
// IR PIN module récepteur et variable
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
 
//mode d'execution
const int MODE_AUTO = 0;
const int MODE_MANUEL = 1;
int mode = MODE_MANUEL;

const int MODE_STOP           = 10;
const int MODE_AVANCE         = 11;
const int MODE_RECULE         = 12;
const int MODE_AV_RAPIDE      = 13;
const int MODE_AR_RAPIDE      = 14;
const int MODE_DROITE         = 15;
const int MODE_GAUCHE         = 16;
const int MODE_AV_DROITE      = 17;
const int MODE_AV_GAUCHE      = 18;
const int MODE_AR_DROITE      = 19;
const int MODE_AR_GAUCHE      = 20;
const int MODE_LED            = 21;
int sous_mode_manuel = MODE_STOP;
 
void setup()
{
  // configure les broches de commande du moteur en sortie
  pinMode(vitesse1,OUTPUT);
  pinMode(vitesse2,OUTPUT);
  pinMode(direction1,OUTPUT);
  pinMode(direction2,OUTPUT);
 
  
  //LEDBLEU broche en mode sortie
  pinMode(LEDBLEU,OUTPUT);
 
 // Attache le servo sur la broche 3 à l'objet servo
  myservo.attach(3);
 
  int i;
  for(i=4;i<=8;i++)
  pinMode(i,OUTPUT); //Met les pin 4,5,6,7 en mode sortie
 
  Serial.begin(9600);
 
  // désactiver les moteur par défaut
  digitalWrite(vitesse2,LOW);
  digitalWrite(vitesse1,LOW);
 
  // début de récepteur IR
  irrecv.enableIRIn();
}
 
void loop()
{
 
  int led_on =false;
 
  // Signal IR reçu
  if (irrecv.decode(&results))
  {    
    // changement de mode par le bouton rouge de la télécommande (POWER)
    //automatique  ou  manuel
    if(results.value==16580863)
    {
      if (mode == MODE_AUTO)
        mode = MODE_MANUEL;
      else
        mode = MODE_AUTO;
    }
    else if(mode == MODE_MANUEL)
    {
      if(results.value==16597183)          // Stop (FUNC / STOP) bouton de la télécommande
        sous_mode_manuel  = MODE_STOP;
     
      else if(results.value==16613503)      //  (VOL +) bouton de la télécommande faire avancer le robot
        sous_mode_manuel  = MODE_AVANCE;
     
      else if(results.value==16617583)      // (VOL-) bouton de la télécommande faire reculer le robot
        sous_mode_manuel  = MODE_RECULE;
     
      else if(results.value==16589023)      // rotation gauche (<<) touche recule rapide de la télécommande
        sous_mode_manuel  = MODE_GAUCHE;
      
      else if(results.value==16605343)      // rotation droite (>>) bouton avance rapide la télécommande
        sous_mode_manuel  = MODE_DROITE;
     
      else if(results.value==16609423)      // avant droite  avec la touche ( ST/REPT ) de la télécommande
        sous_mode_manuel  = MODE_AV_DROITE;
     
      else if(results.value==16621663)      // avant gauche (playe) bouton  de la télécommande
        sous_mode_manuel  = MODE_AV_GAUCHE;
     
      else if(results.value==16601263)       // inverse à droite (HAUT) bouton de la télécommande
        sous_mode_manuel  = MODE_AR_DROITE;
     
      else if(results.value==16584943)       // inverse à gauche (BAS) bonton de la télécommande
        sous_mode_manuel  = MODE_AR_GAUCHE;
     
      else if(results.value==16625743)    //Allume la LED bleu avec la touche ( EQ ) de la télécommande
        sous_mode_manuel  = MODE_LED;
     
     if(results.value==16593103)          // Arrêt de la LED bleu avec la touche ( 0 ) de la télécommande
     {
     digitalWrite(LEDBLEU,LOW);
     }
    }
    // recevoir la prochaine valeur
    irrecv.resume();
    
     // court délai d'attente pour répéter le signal IR
     // (L'empêcher d'arrêter si aucun signal reçu)
     delay(750);
  }
      
    // mode automatique
    if(mode == MODE_AUTO)
    {
      // Définit la position d'asservissement en fonction de la valeur à l'échelle
      myservo.write(val);
    
      // L'échelle pour l'utiliser avec le servo (valeur entre 0 et 300)
      val = analogRead(capteur);
      val = map(val, 0, 115, 0, 300);
      // Attend que le servo pour y arriver
      delay(300);
      val2 = analogRead(capteur2);
      val2 = map(val2, 0, 115, 0, 300);
    
      // Si on est à moins de quelque cm d'un obstacle pour les deux capteurs
      if ((val <=95) || (val2 <= 95))  
      {
        moteur1(0,true);           //J'arrete le moteur 1
        moteur2(0,true);          // J'arrete le moteur 2
        delay(200);              //J'attend 2 seconde
        moteur1(180,true);      //J'avance tout droit
        moteur2(0,true);       // J'arrete le moteur 2
        delay(600);           //La valeur à mettre reste à définir en fonction de la vitesse du robot
        moteur1(180,true);   //J'avance tout droit
        moteur2(180,false); //J'avance tout droit
      }
        else
      {
        moteur1(180,true);   //J'avance tout droit
        moteur2(180,false); //J'avance tout droit
      }
   }
   else   // Mode Manuel controle le robot avec la télécommande
   {
    Serial.println(results.value, DEC);
      
    switch (sous_mode_manuel)
    {
      case MODE_LED:    //Allume la LED bleu avec la touche ( EQ ) de la télécommande
        if (led_on)
        {
          digitalWrite(LEDBLEU,LOW);
          led_on = false;
        }
        else
        {
          digitalWrite(LEDBLEU,HIGH);
          led_on = true;
        }
      break;
      case MODE_STOP:                      // Stop (FUNC / STOP) bouton de la télécommande
        digitalWrite(vitesse2,LOW);       // roue droite  a l'arrêt
        digitalWrite(vitesse1,LOW);      // roue gauche a l'arrêt
      break;
      case MODE_AVANCE://  (VOL +) bouton de la télécommande faire avancer le robot
        motor(235,235);
      break;
      case MODE_RECULE:// (VOL-) bouton de la télécommande faire reculer le robot
        motor(-235,-235);
      break;
      case MODE_DROITE:// rotation droite (>>) bouton avance rapide la télécommande
        motor(0,-130);
      break;
      case MODE_GAUCHE:// rotation droite (>>) bouton avance rapide la télécommande
        motor(0,130);
      break;
      case MODE_AV_DROITE:// avant droite  avec la touche ( ST/REPT ) de la télécommande
        motor(200,100);
      break;
      case MODE_AV_GAUCHE:// avant gauche (playe) bouton  de la télécommande
        motor(100,200);
      break;
      case MODE_AR_DROITE:// inverse à droite (HAUT) bouton de la télécommande
        motor(-235,-235);
      break;
      case MODE_AR_GAUCHE:// inverse à gauche (BAS) bonton de la télécommande
        motor(235,235);
      break;    
    }
  }
}

//Fonctions

//motoréducteur pour le mode déplacement automatique
void moteur1(int valeur_vitesse, boolean sens_avant)
{
  analogWrite(vitesse1,valeur_vitesse); //Valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
  if(sens_avant)
  {
    digitalWrite(direction1,HIGH);
  }
  else
  {
    digitalWrite(direction1,LOW);
  }
}
 
void moteur2(int valeur_vitesse, boolean sens_avant)
{
  analogWrite(vitesse2,valeur_vitesse); //Valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
  if(sens_avant)
  {
    digitalWrite(direction2,HIGH);
  }
    else
  {
    digitalWrite(direction2,LOW);
  }
}

// fonction pour contrôler le moteur
void motor(int left, int right)
{
  // limiter la vitesse max
  if(left>255)left=255;//gauche
  else if(left<-255)left=-255;//gauche
  if(right>255)right=255;//droite
  else if(right<-255)right=-255;//droite
  
  // roue gauche roue avant
  if(left>0)//gauche a l'arrét
  {
    digitalWrite(direction1,HIGH);       // direction roue gauche avant
    analogWrite(vitesse1,left);      // vitesse de la roue gauche
  }
  
  //inverser la roue gauche
  else if(left<0)
  {
    digitalWrite(direction1,LOW);      // inverse à gauche en direction
    analogWrite(vitesse1,-left);      // vitesse de la roue gauche
  }
  else       // roue gauche a l'arrêt
  {
    digitalWrite(vitesse1,LOW);
  }
  if(right>0)      // roue droite avant
  {
    // direction de la roue droite avant
    digitalWrite(direction2,LOW);
    analogWrite(vitesse2,right);
  }
  else if(right<0)      // roue droite en arrière
  {
    // inverse à droite en direction
    digitalWrite(direction2,HIGH);
    analogWrite(vitesse2,-right);
  }
  else      // roue droite a l'arrêt
  {
    // roue droite a l'arrêt
    digitalWrite(vitesse2,LOW);
  }
}
 // SEB03000


#13 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 18 octobre 2011 - 07:23

Il commence a y avoir du monde la dedans !!

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#14 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 18 octobre 2011 - 07:46

Astondb8 comme j'ai acheter se capteur je n'est pas u d’exemple pour le programmé comme une librairie donc j'ai fouiller sur

le net , et j'ai trouvé se code.

Oui je cest sa a rien avoir avec se que je vais faire avec.

La je me mais dessus je suis entrain de le tésté je veux voir se que sa donne , je te tien accourent si ji arrive.


En fait, il n'y a pas grand chose en en savoir.

C'est juste un capteur que u connecte à une pin numérique et tu surveille l'état de cette pin avec la commande "digitalRead(N°pin);

Rien de plus Pas de Lib pas de commande particulière c'est un capteur tout ce qu'il y a de plus basique. (si nous parlons du même bien sur)

 


#15 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 18 octobre 2011 - 07:52

Il commence a y avoir du monde la dedans !!


Non pas tant que ca
Si il avait été écrit en fonction il fonctionnerait mieux, plus vite, et en moins de ligne.
L'a comme tout est dans void loop() il ne peut faire que ca et il doit attendre que la boucle passe devant la commande pour qu'elle soit prise en compte.
Ce qui est certainement la cause du problème de latence entre le moment ou il presse le bouton et le moment ou la commande est prise en compte.

Il te reste a apprendre les Fonctions Seb...

Cdlt
Yves

 


#16 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 18 octobre 2011 - 07:54

Ok d’acore Astondb8.

(si nous parlons du même bien sur)


Oui c'est bien le même regard ICI.

#17 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 18 octobre 2011 - 07:58

Il te reste a apprendre les Fonctions Seb...


Peux-tu m'en dire plus sures les fonctions que je dois apprendre , m'envoyer sur un lien ou un tuto pour que je puisse évoluer.

Cela m'intéresse , je ne savais pas qu'il y avait d'autres fonctions c'est bon a savoir.

#18 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 18 octobre 2011 - 08:05

La librairie arduino sur le site en francais.
on connait : void setup et void loop

'void oiseau ()' par exemple est une fonction.
comme 'void led' ou void moteur

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#19 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 18 octobre 2011 - 08:13

Ok d’acore Astondb8.

Oui c'est bien le même regarde ICI.


Donc c'est bien ca
3 Pins
Vcc
GND
Data

Rien de plus simple

Peux tu m'en dire plus sure les fonctions que je doit apprendre , m'envoyer sur un lien ou un tuto pour que je puisse évoluer.

cela maintérése , je ne savais pas qu'il y avais d'autre fonction c'est bon a savoir.


Toujours le même lien pour apprendre le C ou le C++

le site du Zero

 


#20 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 18 octobre 2011 - 08:18

Merci Astondb8 je vais aller , a nouveaux m'instruire on va voir si je peux y arrivé



Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users