Le javascript est désactivé sur votre navigateur
 
Prononcer /'po.bot/
Accueil du siteNos robotsRobots du clubBase roulante "Pobot Easy"
  publication inférieure à 7 jours
  publié < 7j sous cette rubrique
     
À propos de l'article
    Publié le 12 mars 2011
    par Julien H.

    Mis à jour le 12 mars 2011
Choisir votre langue :

Premier code pour tester le robot

Voici un premier programme Arduino pour tester le robot une fois assemblé (mécanique).

Il faut d’abord avoir trouvé le neutre pour chacun des deux servomoteurs à rotation continue.

 
#include 


#define POS_NEUTRE_D  77
#define POS_NEUTRE_G  76

Servo servG;
Servo servD;

void setup()
{
  // serial communication 
  Serial.begin(9600);
  // using "detach" makes the robot not move at all,
  // as servomotors will not be controlled yet
  servG.detach();
  servD.detach();

}

void loop()
{
  // as soon as someithing is received from the serial communication
  if (Serial.available())
  {
    // every command is only one byte long (character)
    char val = Serial.read();
    switch (val)
    {
    case ' ':
      // stop
      Serial.println("> Robot stop");
      servG.detach();
      servD.detach();
      break;
    case '8':
      // en avant
      servG.attach(10);
      servD.attach(9);
      servG.write(POS_NEUTRE_G+10);
      servD.write(POS_NEUTRE_D-10);
      Serial.println("> Robot forward");
      break;
    case '5':
      // arrière
      servG.attach(10);
      servD.attach(9);
      servG.write(POS_NEUTRE_G-10);
      servD.write(POS_NEUTRE_D+10);
      Serial.println("> Robot backward");
      break;
    case '4':
      // à gauche
      servG.attach(10);
      servD.attach(9);
      servG.write(POS_NEUTRE_G+10);
      servD.write(POS_NEUTRE_D+10);      
      Serial.println("> Robot left");
      break;
    case '6':
      // à droite
      servG.attach(10);
      servD.attach(9);
      servG.write(POS_NEUTRE_G-10);
      servD.write(POS_NEUTRE_D-10);      
      Serial.println("> Robot right");
      break;
    default:      
      servG.attach(10);
      servD.attach(9);
      // the received value int value (and not char)
      // is used as the speed (same for both)
      servG.write(POS_NEUTRE_G+val);
      servD.write(POS_NEUTRE_D-val);
      Serial.println("> Robot controlled");
      break;
    }
  }
}

 
Répondre à cet article
Vous avez aimé cet article ? Merci de nous recommander !