1 Dernière modification par seb03000 (21-03-2012 23:57)

Sujet : Voici Mon robot Jardise dans son évolution de A a Z.

1 partie

Bien le bonjour a tous j'ai envie de vous montrer une de mes réalisations .

La fonction de mon robot Jardise est d'éviter des obstacles , mais il évoluera.

Voici sa 1 évolution en image.


PunBB bbcode test

PunBB bbcode test

Voici une vidèo de sa 1 aparance  http://dai.ly/p9D5jS

Et voici ça 2 apparences .

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

voici son 1 programme

Début du code:

  //Déclare le servomoteur
  #include
 
  //Motoreducteur
  int vitesse1 = 6;
  int vitesse2 = 5;
  int direction1 = 7;
  int direction2 = 4;
 
  //Servomoteur
  Servo myservo; // Créer un objet de servo pour contrôler un servomoteur
 
  //Capteur de Distance infrarouge IR Sharp GP2Y0A02YK0F
  int potpin = 0;
 
  //Capteur de distance infrarouge Sharp GP2Y0A21
  int potpine = 1;
 
  int val;  // Variable pour lire la valeur du capteur de la broche analogique
  int val2; // Variable pour lire la valeur du capteur de la broche analogique

  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()
{
 
  myservo.attach(2); // Attache le servo sur la broche 2 à l'objet servo
  int i;
  for(i=4;i<=8;i++)
  pinMode(i,OUTPUT); //Met les pin 4,5,6,7 en mode sortie
}

 
void loop()
{

  myservo.write(val); // Définit la position d'asservissement en fonction de la valeur à l'échelle
  val = analogRead(potpin);
  val = map(val, 0, 115, 0, 300); // L'échelle pour l'utiliser avec le servo (valeur entre 0 et 300)
  delay(300); // Attend que le servo pour y arriver
 
  val2 = analogRead(potpine);
  val2 = map(val2, 0, 115, 0, 300);
 
  if ((val <=95) || (val2 <= 95)) // Si on est à moins de quelque cm d'un obstacle pour les deux capteur

 
{
  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
}
 }
 
 // SEB03000

Fin du code:

2 parties:

Bon voila mon robot est autonome je vais lui rajouté un capteur avec télécommande pour le

contrôle manuellement voici les photos de la télécommande est du capteur qui est livré avec

la télécommande et le capteur


PunBB bbcode test

3 parties:

Bon voila j'ai avancé je peux maintenant contrôlé mon robot avec ma télécommande

après des heures de programmation et d’acharnement j'ai réussi.

Bon ça demande quelque réglage dans le code encore.

Voici le code:

guidage du robot Jardise avec la télécommande ( mode manuel ).

Début du code:


  #include <IRremote.h>
  #include <Servo.h>
 
  //Servomoteur
  // Créer un objet de servo 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;
 

void setup()
{
  //LEDBLEU broche en mode sortie
  pinMode(LEDBLEU,OUTPUT);
 
  // configure les broches de commande du moteur en sortie
  pinMode(vitesse1,OUTPUT);
  pinMode(vitesse2,OUTPUT);
  pinMode(direction1,OUTPUT);
  pinMode(direction2,OUTPUT);
 
 // Attache le servo sur la broche 3 à l'objet servo
  myservo.attach(3);
 
  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 en coure pour le controlé avec la télécommande.
 
  //Animation faire clignotante la LED bleu.
  digitalWrite(LEDBLEU,HIGH);
  delay (100);
  digitalWrite(LEDBLEU,LOW);
 
  // Définit la position d'asservissement en fonction de la valeur à l'échelle
  myservo.write(val);
  val = analogRead(capteur);
 
  // L'échelle pour l'utiliser avec le servo (valeur entre 0 et 300)
  val = map(val, 0, 115, 0, 300);
 
 // Attend que le servo pour y arriver
  delay(2000);
 
  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))
 
 
  // Mode Manuel controle le robot avec la télécommande
 
  Serial.println(results.value, DEC);
 
  // Signal IR reçu
  if (irrecv.decode(&results))
  {
  //  (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 (POWER) bouton rouge de la télécommande
  else if(results.value==16580863)
  {
  motor(100,200);
  }
  // avant droite (FUNC / STOP) bouton de la télécommande
  else if(results.value==16597183)
  {
  motor(100,200);
  }
  // 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(1000);
  }
  // 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;
  else if(left<-255)left=-255;
  if(right>255)right=255;
  else if(right<-255)right=-255;

  // roue gauche roue avant
  if(left>0)
  {
  // 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
  {
  // roue gauche a l'arrêt
  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

Fin du code:

Donc le reste pour contrôler le système automatique ( pour que le robot se déplace en autonome , tous seul.) Sera en coure.

4 parties:

Et voila âpre des heures  de code j'ai enfin réussi a faire mon code pour le mode automatique.

Sa ma demander pas mal de réglage sur le code , et bien sûr pour l’alléger un peux le code.

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

voila le code.


//déclare
  #include
  #include
 
  //Servomoteur
  // Créer un objet pour contrôler un servomoteur
  Servo myservo;
 
  //capteur gris qui fera office de phare 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(500);
 
  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(1000);
  }
  // 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

Fin du code:

Je conte amélioré encore mon robot Jardise avec de nouveaux

composants.

5 parties:


Voici la vidéo:  http://www.youtube.com/watch?v=H2UlhEYzqEo

Reste encore à améliorer le mode automatique.

voici un plan de la télécommande

PunBB bbcode test]

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 ).


6 parties:

Bon voila j'ai encore amélioré mon code.

Déjà pour le mode automatique ça se présente bien ( c'est cool )

Bon reste plus cas créé une plateforme et le bras robotiser.

Ha ( bien sûr ) le code:

#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(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,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

Fin du code:

je pense que si c'est feu sable je luis métré une 3 fonctions EX: il suis, mais mouvement ( je c'est pas si c'est possible ) mais avec deux capteurs infrarouges sharp il pourrait le faire.

Je suis toujours actuellement sur mon robot je mètre la suite bientôt.

2 Dernière modification par seb03000 (22-03-2012 00:00)

Re : Voici Mon robot Jardise dans son évolution de A a Z.

Bonsoir à tous.

Voila je vais exposé mon avancer sur mon robot Jardise , car j'ai voulu l'améliorer .

Donc j'ai fait quelque rajout de quelque module.

Donc je luis et implanté un deuxième capteur infrarouge sharp a l'arrière dur

robot.

Plus une LED bleu , qui me permet de l'allumé à distance avec

la télécommande IR , j'ai rajouté une deuxième carte DFRduino Duemilanove 328

a l'avant du robot , pour luit rajouté un capteur de mouvement PIR plus encore

une LED bleu , le bute de tout cela , et des qu’il voie quelque chose bouger , ou

quand t'il et immobile , ou quand il détecte un obstacle le capteur me le

signale grâce a la LED bleu , je métrai plus tare un buzzer qui ferra office d'alarme

, qui bien sûr serra programmé pour une courte durée.

Et je luis et aussi implanté un bouton poussoir pour le fun , qui lui me permet

d'allumé une LED ( oui encore une LED lol ) pendant 9 secondes.

J'ai aussi amélioré le code de mon robot il répond

mieux aux ordres que je luis envoie par ma télécommande , et le mode

automatique, donc le mode ( autonome répond largement mieux cavant , il fonce

plus dans les obstacles comme avant).

Voici l’amélioration de mon programme:


#include <IRremote.h>
#include <IRremoteInt.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;
 
  ////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(7,HIGH);
}
 else
{
 digitalWrite(7,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(4,HIGH);
}
 else
{
 digitalWrite(4,LOW);
}
 }
 
 // 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()
{ 
 //LEDBLEU broche en mode sortie
 pinMode(LEDBLEU,OUTPUT);
 
 // Attache le servo sur la broche 3 à l'objet servo
 myservo.attach(3);
 
 int i;
 for(int i=4;i<=7;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(5,LOW);
 digitalWrite(6,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(550);
} 
 // 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 = map(val, 0, 115, 0, 300);
 val = analogRead(capteur);
 val2 = analogRead(capteur2);
 
 // Attend que le servo pour y arriver
 delay(150);
   
 // Si on est à moins de quelque cm d'un obstacle pour les deux capteurs
 if ((val >= 215) || (val2 >= 215)) 
{
 moteur1(0,true);           //J'arrete le moteur 1
 moteur2(0,true);          // J'arrete le moteur 2
 delay(300);              //J'attend 2 seconde
 moteur1(160,true);      //J'avance tout droit
 moteur2(0,true);       // J'arrete le moteur 2
 delay(400);           //La valeur à mettre reste à définir en fonction de la vitesse du robot
 moteur1(160,false);  //J'avance tout droit
 moteur2(160,true); //J'avance tout droit
}
 else
{
 moteur1(160,true);   //J'avance tout droit
 moteur2(160,false); //J'avance tout droit
}
 }
 else   
{
 Serial.println(results.value, DEC);
     
 switch (sous_mode_manuel) // Mode Manuel controle le robot avec la télécommande
{
 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(5,LOW);         // roue droite  a l'arrêt
  digitalWrite(6,LOW);        // roue gauche a l'arrêt
  break;
  case MODE_AVANCE:                 //  (VOL +) bouton de la télécommande faire avancer le robot
  motor(100,100);
  break;
  case MODE_RECULE:               // (VOL-) bouton de la télécommande faire reculer le robot
  motor(-100,-100);
  break;
  case MODE_DROITE:             // rotation droite (>>) bouton avance rapide la télécommande
  motor(0,-90);
  break;
  case MODE_GAUCHE:           // rotation gauche (<<) bouton avance rapide la télécommande
  motor(-90,0);
  break;
  case MODE_AV_DROITE:      // avant droite  avec la touche ( ST/REPT ) de la télécommande
  motor(120,45);
  break;
  case MODE_AV_GAUCHE:    // avant gauche (playe) bouton  de la télécommande
  motor(65,110);
  break;
  case MODE_AR_DROITE:  // inverse à droite (HAUT) bouton de la télécommande
  motor(255,255);
  break;
  case MODE_AR_GAUCHE:// inverse à gauche (BAS) bonton de la télécommande
  motor(-255,-255);
  break;   
}
 }
  }
// fonction pour contrôler le mode moteur ( motoréducteur pour le mode manuel )
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
 
 if(left>0)//gauche a l'arrét
{
 digitalWrite(7,HIGH);    // direction roue gauche avant
 analogWrite(6,left);      // vitesse de la roue gauche
}
 //inverser la roue gauche
 else if(left<0)
{
 digitalWrite(7,LOW);      // inverse à gauche en direction
 analogWrite(6,-left);      // vitesse de la roue gauche
}
 else       
{
 digitalWrite(6,LOW); // roue gauche a l'arrêt
}
 if(right>0)               // roue droite avant
{
 // direction de la roue droite avant
 digitalWrite(4,LOW);
 analogWrite(5,right);
}
 else if(right<0)      // roue droite en arrière
{
 digitalWrite(4,HIGH); // inverse à droite en direction
 analogWrite(5,-right);
}
 else     
{
 digitalWrite(5,LOW); // roue droite a l'arrêt
}
 }

 // FIN
 // SEB03000

Et voici le deuxième code de la 2 cartes Arduino , pour c'est composant , qui et le capteur de mouvement PIR avec LED bleu , plus un

bouton poussoir avec ça LED.


  const int bouton = 2;     //Le bouton est connecté à la broche 2 de la carte Adruino
  const int led = 13;      //La LED à la broche 13
 
  int etatBouton;         //Variable qui enregistre l'état du bouton 
  int LED8 = 8;          // Choisir la broche pour la LED 8
  int Mouvement = 5;    // Choisir la broche d'entrée (pour le capteur PIR)
  int EX = LOW;        // Je commence, en supposant qu'aucun mouvement sera détecté
  int val3 = 0;       // Variable pour la lecture de l'état de la broches
 
void setup()
{
  pinMode(led, OUTPUT);            //La LED est une sortie
  pinMode(bouton, INPUT);         //Le bouton est une entrée
  etatBouton = HIGH;             //On initialise l'état du bouton comme "relaché"
  pinMode(LED8, OUTPUT);        // Déclare la LED 8 en sortie
  pinMode(Mouvement, INPUT);   // Déclare le capteur comme une entrée
  Serial.begin(9600);         //Démarrage de la connexion en série avec l'ordinateur.
}
void loop()
{
  etatBouton = digitalRead(bouton); //Rappel : bouton = 2
  if(etatBouton == HIGH)           //Test si le bouton a un niveau logique HAUT
{
  digitalWrite(led,LOW);         //La LED reste éteinte
}
  else                         //Test si le bouton a un niveau logique différent de HAUT (donc BAS)
{
  digitalWrite(led,HIGH);    //Le bouton est appuyé, la LED est allumée
  delay(9000);              //La LED reste allumé 9 seconde après éxtinction
}
 {
   
  val3 = digitalRead(Mouvement);    // Lire la valeur d'entrée
  if (val3 == HIGH)                // Vérifier si l'entrée est HAUTE
{             
  digitalWrite(LED8, HIGH);      // Clignotants LED 8 ON
  if (EX == LOW)   
{   
  // allumage
  Serial.println("Mouvement detecte!!!!!");   
  EX = HIGH;
}
 }
  else
{
  digitalWrite(LED8, LOW);  // Clignotants à LED 8 OFF
  if (EX == HIGH)
  delay(1);
{   
  //éteinte 
   Serial.println("Mouvement terminee!");
   EX = LOW;
   delay(2);
}
 }
  }
   }

Voici quelque photos:

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

Voilà la suite bientôt pour une amélioration de mon robot.

3 Dernière modification par seb03000 (21-03-2012 23:38)

Re : Voici Mon robot Jardise dans son évolution de A a Z.

Re les amis , voici les avancés sur mon robot Jardise.

J’ai repris une de mes Carte DFRduino Duemilanove 328 , et j'ai commencé a tout mètre en place.

J'ai commencé à programmer ma pince , le code se compile bien , la télécommande répond bien aux pressions

demandées.

Mon programme n'est pas tout t'a fait fini.

Voici quelque photo:


PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

PunBB bbcode test

Seul inconvénient c'est que le robot a du mal a roulé a causse de la bille caster , car comme cher moi ya du parqué et du

carrelage dans la cuisine , des que le robot roule , la bille caster se mes dans les fente , et fait basculé mon robot , vas

falloir que je trouve une roue folle qui soie adapté a mon chassie , donc si vous avez quelque chose a me proposer

je suis preneur.

Voila , la suite bientôt si tout vas bien.

4 Dernière modification par seb03000 (21-03-2012 23:39)

Re : Voici Mon robot Jardise dans son évolution de A a Z.

Je viens de faire une modification aujourd’hui sur mon robot , en luit enlevant la platine en bois , et en la

remplacent par du plexiglas , esthétiquement c'est plus jolis et plus propres , et sur tous plus léger.

voici quelque photo:

http://i40.servimg.com/u/f40/15/50/68/13/dscf0310.jpg

http://i40.servimg.com/u/f40/15/50/68/13/dscf0311.jpg

http://i40.servimg.com/u/f40/15/50/68/13/dscf0313.jpg

http://i40.servimg.com/u/f40/15/50/68/13/dscf0316.jpg

http://i40.servimg.com/u/f40/15/50/68/13/dscf0317.jpg

Voila je continue, mais avancer.

Je vous tiens informé.

@Cordialement.

5 Dernière modification par seb03000 (21-03-2012 23:42)

Re : Voici Mon robot Jardise dans son évolution de A a Z.

Après quel que jour de travaille sur mon robot , j'ai pu encore modifier le chassie de mon robot Jardise , voici quelque

photos.

http://i40.servimg.com/u/f40/15/50/68/13/dscf0318.jpg

http://i40.servimg.com/u/f40/15/50/68/13/dscf0319.jpg

http://i40.servimg.com/u/f40/15/50/68/13/dscf0320.jpg

Donc j'ai du racheté un module pour pouvoir faire parlé mon robot , car le module Amplificateur Audio DFRobot n'aller pas du

tout.

Donc j'ai prix se module un lecteur Audio: DFrduino Player que microrupteurman2 ma conseillé , grand merci a lui , voici une

image du module audio:

http://www.arobose.com/shop/519-home/module-lecteur-audio-dfrduino-player.jpg

Donc j'ai commencé a créé un programme pour le faire parlé , mes j'ai rencontré quelque difficulté , donc j'ai fait appèle a

un ami qui se nome julkien qui m’a beaucoup aidé sur cette programmation et je lui en remercie.

Nous avoue pue terminé le programme , nous l'avons fusionné avec le programme de ma pince aluminium.

Donc je vais vous mètre le programme , il consiste bien sûr , a contrôle ma pince aluminium avec la télécommande IR , et

aussi a faire parlé mon robot grâce a la télécommande IR.

Voici le code:

#include <Servo.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <Wire.h>
#include <stdlib.h>
#define ArduinoPlayer_address 0x35  //Arduino Lecteur 0x35 adresse I2C (par défaut)

Servo servo1;  // créer un objet d'asservissement pour commander le servo1
Servo servo2; // créer un objet d'asservissement pour commander le servo2

int possition1 ;    // variable pour stocker la position1 d'asservissement
int possition2 = 90;   //variable pour stocker la position2 d'asservissement
int RECV_PIN = 5;
int current; //conserver la trace de la position actuelle du servo
int codeValue; //les code de la télécommande

IRrecv irrecv(RECV_PIN);
decode_results results;

int derniermp3 = 0; //declaration du dernier mp3 qui a était lu

void TwiSend(const char  *cmd)  //I2C Command
{
  char len = 0;
  len = strlen(cmd); //Calculer la longueur de la commande
  Wire.beginTransmission(ArduinoPlayer_address); // Arduino Lecteur adresse I2C
  while(len--)
  {
    Wire.send(*(cmd++));     
  }
  Wire.endTransmission();    // stop transmission
}

void jouermorceauscpecifique (int numeromp3)
{
  if (numeromp3 >= derniermp3)// si le numero du mp3 desirer est superieur ou egale au dernier mp3 jouer
  {
    for (int i=derniermp3; i < derniermp3; i++){ // boucle pour passer jusqu'au morceau voulu
TwiSend("\\:n\r\n"); // Play prochain
      derniermp3 = i;
    }
  }
  if (numeromp3 <= derniermp3)
  {
    for (int i=derniermp3; i > derniermp3; i--){ // boucle pour passer jusqu'au morceau voulu

TwiSend("\\:u\r\n"); // Play précédent
      derniermp3 = i;
    }
  }

}
void setup()
{
  Wire.begin(); // rejoindre le bus I2C (adresse en option pour le maître)
  Serial.begin(9600);            // lancer un port série sur le serial monitor 
  servo1.attach(7);            // attache le servo sur la broche 7 à l'objet d'asservissement
  servo1.write(possition1);   // mis en position1 de départ servo1
  servo2.attach(6);          // attache le servo sur la broche 6 à l'objet d'asservissement
  servo2.write(possition2);// mis en position2 de départ servo2
  irrecv.enableIRIn(); // Démarrer le récepteur
  delay(2000);//Attendez 2 secondes 
  Serial.println("Ready");
  TwiSend("\\:v 255\r\n");// régler le volume, de 0 (minimum) -255 (maximum)
}
void loop()
{
  Serial.println(results.value, DEC);

  if (irrecv.decode(&results))
  {
    codeValue = results.value;
    switch (codeValue)
    {
     
    case 16615543: // touche 4 de la télécomande ouvre la pince
      current  +=80;
      if (current > 180) current = 0;
      servo1.write(current);
      break;
     
     
    case 16582903:// bouton touche 1 de la télécommande ( envoie une parole prochain )
     jouermorceauscpecifique(4);
     TwiSend("\\:n\r\n");
     break;
     

   case 16599223:// bouton touche 3 de la télécommande ( envoie une parole précédente )
     jouermorceauscpecifique(4);
     TwiSend("\\:u\r\n");
      break;
     
   case 16586983:// bouton touche 7 de la télécommande ( pour monté le + volume )
     jouermorceauscpecifique(4);
     TwiSend("\\:v 255\r\n");
      break;
     
     
    case 16619623: // touche 6 de la télécommande ferme la pince
      current -=80;
      if (current < 0) current = 180;
      servo1.write(current);
      break;

    case 16591063: // touche 2 de la télécommande décend la pince
      current +=40;
      if (current > 180) current = 0;
      servo2.write(current);
      break;

    case 16607383: // touche 8 de la télécommande léve la pince
      current -=40;
      if (current < 0) current = 180;
      servo2.write(current);
      break;

      int sensorValue = analogRead(1); // analogique 1, a 10k
      while (sensorValue > 255) { //valeur peut être ajustée, 255 très sensible      
      sensorValue = analogRead(1); //lit la valeur du capteur à nouveau pour la boucle
      }
      servo1.write(possition2);
      current = possition2;
      servo1.write(possition1);
      current = possition1;
      servo2.write(possition2);
      current = possition2;
      servo2.write(possition1);
      current = possition1;
    }
    irrecv.resume();
  }
}

//@seb03000

La suite bientôt , pour de nouvelle modification ou autre.

Bientôt je métré une vidéo.

@Cordialement.

6

Re : Voici Mon robot Jardise dans son évolution de A a Z.

Il progresse vite,  merci pour les photos.

7 Dernière modification par seb03000 (21-03-2012 21:16)

Re : Voici Mon robot Jardise dans son évolution de A a Z.

Merci Julien sa fait plaisir.

8 Dernière modification par seb03000 (21-03-2012 23:42)

Re : Voici Mon robot Jardise dans son évolution de A a Z.

Voici la vidéo de mon robot désolé la vidéo c'est coupé, car je n'avais plus de place sur la carte SD de mon appareil

photo.

http://www.youtube.com/watch?feature=pl … vfI8cVnPuY

9 Dernière modification par seb03000 (20-04-2012 12:57)

Re : Voici Mon robot Jardise dans son évolution de A a Z.

Bonjour a tous , ça fait un moment que je n'est pas donner de nouvel.

Mes j'ai un souci , et je voudrais exposé mon problème , pour que vous puissiez éclairé ma lanterne.

Ya quelque temps , j'ai changé mon chassie , j'ai toujours les mêmes modules qui son brancher sur mon robot.

Quelque jours plus tard , j'ai voulut testé mon robot , il a fonctionné 5 minutes , et paf , il tombe en panne.

Alors j'ai regardé tous mes files si ils été bien connecté ,et si ils été pas dénudé , et bien il son nickel.

Alors je branche mon Arduino ( Carte DFRduino Duemilanove 328 ) , je mes en route l'interface de l'Arduino , et il me

trouve un message d'erreur , c'est comme si qu'il ne reconnaissaient pas ma carte bizarre.

Pour tant mon PC détecte ma carte dans les périphériques.

Voici le message d'erreur , vue sur l'interface .

http://i40.servimg.com/u/f40/15/50/68/13/sans_t84.jpg

J’ai quand même changé de câble USB mes ça ne change rien.

A , oui aussi je précise que Je possède la version 23 du logiciel Arduino , les drivers sont bien installés.

j'ai bien positionné dans Tools/ Serial Port , que j'ai placé sur le port COM3 et,

Tools/ Board , sur Arduino Duemilanove or Nano w/AT mega328.

A , et quand je branche ma carte Arduino , le PWR et allumé donc la carte et bien alimenté , les LED TX et RX clignote 3 fois et la

LED L clignote 8 fois.

A mon avis ça dois venir de la puce qui ma lâché .

Je serré ravis d'avoir un avis de votre par a tous , et si possible me conseille sur la marche a suivre de mon problème.

Merci d'avance , a se qu'il lise mon sujet.

@Amicalement.

10

Re : Voici Mon robot Jardise dans son évolution de A a Z.

j'ai oublier de le précisé , que même en testent la carte a nue , sans

module de branché , et de Shield , j'ai toujours le même problème.

@Cordialement.