Sujet : moi, mon robot et mon probleme.

bonjour d'abord je me présente je m’appelle Axel j'ai 14 ans je en gironde et je suis passionné de robotique elas je débute donc j ai besoin d'aide .

d'abord voici mon robot il se nomme Teinge :
il a 1 capteur Sharp
2 microrupteur
2 servo-moteur
1carte arduino duemilanove

voila le code de teinge:
il recule quand un obstacle et a moins de 10 cm il commence a tourne quand il est a moins de 30 cm il fait une marche arrière quand il touche une objet et il est automne en faite.

int
#include <Servo.h>
 
#define AVANT 1
#define ARRIERE 0
#define GAUCHE 2
#define DROITE 3
 
#define SERVOG 1
#define SERVOD 0
 
#define UPDDG 3
#define UPDDD 4
 
#define SHARP 4
 
#define VMAX 5
 
Servo servog;
Servo servod;
 
int vLdr = 5;
 
int getNeutral(int s)
{
  if(s == SERVOG)
    return 86;
  else
    return 84;
}
 
 
void handleS(int s, int speed)
{
  //Vitesse :
  // 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30
  int tab[6] = {0,1,3,8,10,30};
  int pos = getNeutral(s);
 
  int acc;
  if (speed < 0)
    acc = - tab[abs(speed)];
  else
    acc = tab[speed];
   
  if(s == SERVOG)
      servog.write(pos += acc);
  else
      servod.write(pos -= acc);
}
 
 
void move(int direction)
{
  int m1 = 0, m2 = 0;
  switch(direction)
  {
    case DROITE: m1 = 1; m2 = -1; break;
    case GAUCHE: m1 = -1; m2 = 1; break;
    case AVANT: m1 = 1; m2 = 1; break;
    case ARRIERE: m1 = -1; m2 = -1; break;
  }
  handleS(SERVOG, m1*VMAX);
  handleS(SERVOD, m2*VMAX);  
}  
 
void handleUPDD(int updd)
{
  if(digitalRead(updd) == HIGH)
  {
    move(ARRIERE);
    delay(500);
   
    if (updd == UPDDG)
    {
      move(DROITE);
    }
    else
    {
      move(GAUCHE);
    }
     delay(800);
  }
}
 
void sharp()
{
   int v =  analogRead(SHARP);
      if (v >= 180)
      {
        move(ARRIERE);
        delay(300);
        move(DROITE);
        delay(900);
      }
      else if (v >= 100)
      {
        handleS(SERVOG, VMAX);
        handleS(SERVOD, 0);
        delay(1500);
      }
}
void setup()
{
  pinMode(UPDDG, INPUT);  
  pinMode(UPDDD, INPUT);
 
  Serial.begin(9600);
  servog.attach(10);
  servod.attach(9);
  move(AVANT);
}
 
void loop()
{
     handleUPDD(UPDDG);
     handleUPDD(UPDDD);
     sharp();
     move(AVANT);
    delay(100);
}

maintenant j'aimerai que teinge tourne en rond et quand un objet s’approche de lui j'aimerai qui le suive ( si l'objet s'avance de teinge il reculera et si l'objet s’éloigne de teinge il avancera)

j'ai deja essayer de programmer le code moin meme mes aucun resultat pouvez-vous m'aider a resoudre ce probleme en m'indiquant mes erreur.

int
#include <Servo.h>
 
#define AVANT 1
#define ARRIERE 0
#define GAUCHE 2
#define DROITE 3
 
#define SERVOG 1
#define SERVOD 0
 
#define SHARP 4
 
#define VMAX 5
 
Servo servog;
Servo servod;
 
int vLdr = 5;
 
int getNeutral(int s)
{
  if(s == SERVOG)
    return 86;
  else
    return 84;
}
 
 
void handleS(int s, int speed)
{
  //Vitesse :
  // 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30
  int tab[6] = {0,1,3,8,10,30};
  int pos = getNeutral(s);
 
  int acc;
  if (speed < 0)
    acc = - tab[abs(speed)];
  else
    acc = tab[speed];
   
  if(s == SERVOG)
      servog.write(pos += acc);
  else
      servod.write(pos -= acc);
}
 
 
void move(int direction)
{
  int m1 = 0, m2 = 0;
  switch(direction)
  {
    case DROITE: m1 = 1; m2 = -1; break;
    case GAUCHE: m1 = -1; m2 = 1; break;
    case AVANT: m1 = 1; m2 = 1; break;
    case ARRIERE: m1 = -1; m2 = -1; break;
  }
  handleS(SERVOG, m1*VMAX);
  handleS(SERVOD, m2*VMAX);  
}  

 
void sharp()
{
   int v =  analogRead(SHARP);
      if (v >= 180)
      {
        move(ARRIERE);
      
      }
      else if (v >= 100)
      {
        move(AVANT);
      }
}
void setup()
{

  Serial.begin(9600);
  servog.attach(10);
  servod.attach(9);
  move(AVANT);
}
 
void loop()
{

     sharp();
     move(DROITE);
    delay(100);
}

pour ce code modifier j'ai enlever les micro-rupteur et j'ai modifier void SHARP()

2

Re : moi, mon robot et mon probleme.

Ce code compile-t-il ? Il y a un "int" avant le #include qui me parait suspect.

Bonne continuation.

3

Re : moi, mon robot et mon probleme.

je ne sais pas d'ou viens ce int mais le code compile parfaitement