Aller au contenu


Photo
- - - - -

Mon premier robot à deux roues


129 réponses à ce sujet

#81 rbot99

rbot99

    Membre passionné

  • Membres
  • PipPipPip
  • 514 messages
  • Gender:Male

Posté 20 juin 2012 - 10:24

dsl de mon absence sur mon sujet pour vous reconpencer ( :tatice_03: ) :

CAPTURE 1 CHASSIS.jpg
CAPTURE 2 CHASSIS.jpg
CAPTURE 3 CHASSIS.jpg
CAPTURE 4 CHASSIS.jpg
CAPTURE 5 CHASSIS.jpg
CAPTURE 6 CHASSIS.jpg
CAPTURE 7 CHASSIS.jpg
CAPTURE 8 CHASSIS.jpg

je prefere notifié que j'ai fait ca a l'arrache( mal de crane :dash2: :black_eye: )
qu'en pensez vous?
cordialement
rbot99
N'entretiens pas l'espoir de ce qui ne peut être espéré , Pythagore

#82 Black Templar

Black Templar

    Membre

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

Posté 20 juin 2012 - 10:28

dsl de mon absence sur mon sujet pour vous reconpencer ( :tatice_03: ) :
[...]
qu'en pensez vous?


Pas besoin de nous récompenser !
Sinon, c'est sympa ce que tu as fait. T'as fait ça avec quel logiciel ?

Par contre, la roue folle ne me semble pas assez grande et j'ai l'impression que c'est la chassi arrière qui va toucher le sol... Je me trompe peut-être

++
Black Templar

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


#83 SRWieZ

SRWieZ

    Membre

  • Membres
  • PipPip
  • 231 messages
  • Gender:Male
  • Location:Evreux, Haute-Normandie, France

Posté 20 juin 2012 - 10:32

Google Sketchup, ça se voit tout de suite :D

Sinon moi j'aurais centré les roues.

#84 rbot99

rbot99

    Membre passionné

  • Membres
  • PipPipPip
  • 514 messages
  • Gender:Male

Posté 20 juin 2012 - 10:37

Google Sketchup, ça se voit tout de suite :D

Sinon moi j'aurais centré les roues.

pour les roue je compte les laissé comme ceci,pour la roue folle je vais la surélever au besoin (un grand merci a black templar sans lequelle j'aurai fait une belle conner**)
et pout le logiciel c'est évidament google sketchup (j'essaye blender mais je n'y arrive pas!!)
cordialement
rbot99
N'entretiens pas l'espoir de ce qui ne peut être espéré , Pythagore

#85 Black Templar

Black Templar

    Membre

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

Posté 21 juin 2012 - 06:10

et pout le logiciel c'est évidament google sketchup (j'essaye blender mais je n'y arrive pas!!)


Sinon, tu as solidworks, mais ce n'est pas un logiciel gratuit...

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


#86 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 21 juin 2012 - 06:36

Il y a des touche raccourci sur sketcup
Et pi regard dans fichier banque d'images tu trouvera moteur etc

#87 Francky

Francky

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 967 messages
  • Gender:Male

Posté 21 juin 2012 - 04:47

Sinon, tu as solidworks, mais ce n'est pas un logiciel gratuit...

J'aime ce logiciel :) Sauf quand il plante... :Alvarin_07:
Sinon il y a des versions étudiantes (si l'école a plus d'un certain nombre de licence). :Archie_07:

#88 swolf

swolf

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 626 messages
  • Gender:Male

Posté 21 juin 2012 - 06:24

J'aime ce logiciel :) Sauf quand il plante... :Alvarin_07:
Sinon il y a des versions étudiantes (si l'école a plus d'un certain nombre de licence). :Archie_07:


toi aussi tu as eu le fameux crash en plein TP, celui qui t'oblige à tout recommencer en un minimum de temps alors que t'avais enfin réussi? Image IPB
Notre blog, à FJprod et moi: http://2froblog.wordpress.com/

#89 Francky

Francky

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 967 messages
  • Gender:Male

Posté 21 juin 2012 - 07:13

toi aussi tu as eu le fameux crash en plein TP, celui qui t'oblige à tout recommencer en un minimum de temps alors que t'avais enfin réussi?

Oulah alors là j'en ai des pas mal à raconter... Dont les 3 annulés qui ont planter solidworks supprimant toutes mes avancées... Et surtout sur le modèle numérique du PPE : pièces qui changent de taille (des vis faites avec la toolbox), des contraintes qui disparaissent, des côtes qui étaient complètement fausses, des cercles non coaxiaux alors qu'ils étaient côtés de la même manière... Et encore j'en passe !
Mais bon, grâce à ce logiciel on apprend à sauvegarder à chaque changement (c'est à dire toutes les 10s environ) xD

#90 rbot99

rbot99

    Membre passionné

  • Membres
  • PipPipPip
  • 514 messages
  • Gender:Male

Posté 23 juin 2012 - 11:03

voici le premier code de mon bot il ne comprend pas la télécom mais juste mes 3 UPDD et mon capteur HCsr04
voici mon code!!!!!!
#include <Servo.h>
#include <Ultrasonic.h>
 
#define TRIGGER_PIN  12
#define ECHO_PIN     13

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
 
#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 UPDDA 10
 
#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 setup()
{
  pinMode(UPDDG, INPUT);  
  pinMode(UPDDD, INPUT);
  pinMode(UPDDA, INPUT);
  
  Serial.begin(9600);
  servog.attach(10);
  servod.attach(9);
  move(AVANT);
}
 
void loop()
{
     float cmMsec, inMsec;
  long microsec = ultrasonic.timing();

  cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
  inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
  Serial.print("MS: ");
  Serial.print(microsec);
  Serial.print(", CM: ");
  Serial.print(cmMsec);
  Serial.print(", IN: ");
  Serial.println(inMsec);
  delay(1000);
  
  if(microsec <= 360)
  {
    handleS(SERVOG, 0);
        handleS(SERVOD, VMAX);
        delay(1500);
  }else
  {
    handleS(SERVOG, VMAX);
    handleS(SERVOD, VMAX);
}

if(UPDDD, LOW)
{
  move(ARRIERE);
        delay(300);
        move(DROITE);
        delay(900);

}else if(UPDDA, LOW)
{
  handleS(SERVOG, 0);
        handleS(SERVOD, VMAX);
        
}
else
{
  handleS(SERVOG, VMAX);
    handleS(SERVOD, VMAX);
}
if(UPDDG, LOW)
{
  move(ARRIERE);
        delay(300);
        move(GAUCHE);
        delay(900);
}
else if(UPDDA, LOW)
{
  handleS(SERVOG, 0);
        handleS(SERVOD, VMAX);
}
        
 else
{ 
    handleS(SERVOG, VMAX);
    handleS(SERVOD, VMAX);
}
}
et voila!!
N'entretiens pas l'espoir de ce qui ne peut être espéré , Pythagore

#91 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 24 juin 2012 - 12:35

Et ben, on voit que tu ne l'as pas testé sur un vrai robot, ça ne risque pas de marcher :D

indice :

if(UPDDD, LOW)


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#92 rbot99

rbot99

    Membre passionné

  • Membres
  • PipPipPip
  • 514 messages
  • Gender:Male

Posté 24 juin 2012 - 01:00

Et ben, on voit que tu ne l'as pas testé sur un vrai robot, ça ne risque pas de marcher :D

indice :

if(UPDDD, LOW)

oups:

if (UPDDD, HIGH)
N'entretiens pas l'espoir de ce qui ne peut être espéré , Pythagore

#93 rbot99

rbot99

    Membre passionné

  • Membres
  • PipPipPip
  • 514 messages
  • Gender:Male

Posté 24 juin 2012 - 01:03

LE VOILA
#include <Servo.h>
#include <Ultrasonic.h>
 
#define TRIGGER_PIN  12
#define ECHO_PIN     13

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
 
#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 UPDDA 10
 
#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 setup()
{
  pinMode(UPDDG, INPUT);  
  pinMode(UPDDD, INPUT);
  pinMode(UPDDA, INPUT);
  
  Serial.begin(9600);
  servog.attach(10);
  servod.attach(9);
  move(AVANT);
}
 
void loop()
{
     float cmMsec, inMsec;
  long microsec = ultrasonic.timing();

  cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
  inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
  Serial.print("MS: ");
  Serial.print(microsec);
  Serial.print(", CM: ");
  Serial.print(cmMsec);
  Serial.print(", IN: ");
  Serial.println(inMsec);
  delay(1000);
  
  if(microsec <= 360)
  {
    handleS(SERVOG, 0);
        handleS(SERVOD, VMAX);
        delay(1500);
  }else
  {
    handleS(SERVOG, VMAX);
    handleS(SERVOD, VMAX);
}

if(UPDDD, HIGH)
{
  move(ARRIERE);
        delay(300);
        move(DROITE);
        delay(900);

}else if(UPDDA, HIGH)
{
  handleS(SERVOG, 0);
        handleS(SERVOD, VMAX);
        
}
else
{
  handleS(SERVOG, VMAX);
    handleS(SERVOD, VMAX);
}
if(UPDDG, HIGH)
{
  move(ARRIERE);
        delay(300);
        move(GAUCHE);
        delay(900);
}
else if(UPDDA, HIGH)
{
  handleS(SERVOG, 0);
        handleS(SERVOD, VMAX);
}
        
 else
{ 
    handleS(SERVOG, VMAX);
    handleS(SERVOD, VMAX);
}
}

N'entretiens pas l'espoir de ce qui ne peut être espéré , Pythagore

#94 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 24 juin 2012 - 01:47

C'est pas mieux :P


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#95 thermo_nono

thermo_nono

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 825 messages

Posté 24 juin 2012 - 03:09

Je crois que tu devrais déjà remplacer les lignes correspondantes par ça :

  long microsec = ultrasonic.Timing();

  Serial.print("MS: ");
  Serial.print(microsec);
  Serial.print(", CM: ");
  Serial.print(ultrasonic.Ranging(CM));
  Serial.print(", IN: ");
  Serial.println(ultrasonic.Ranging(INC));
  delay(1000);

... et il restera apparemment encore un souci que je n'ai pas encore trouvé.
(j'espère qu'on a bien la même version de la lib ultrasonic).

#96 swolf

swolf

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 626 messages
  • Gender:Male

Posté 24 juin 2012 - 03:11

Je crois que tu devrais déjà remplacer les lignes correspondantes par ça :

... et il restera apparemment encore un souci que je n'ai pas encore trouvé.
(j'espère qu'on a bien la même version de la lib ultrasonic).


comme disait Jbot, le souci est dans le if...

Indice supplémentaire en général dans un if, il faut un opérateur ;)
Notre blog, à FJprod et moi: http://2froblog.wordpress.com/

#97 rbot99

rbot99

    Membre passionné

  • Membres
  • PipPipPip
  • 514 messages
  • Gender:Male

Posté 24 juin 2012 - 04:51

comme disait Jbot, le souci est dans le if...

Indice supplémentaire en général dans un if, il faut un opérateur ;)

mais je ne comprend pas...quand je compile il me dit que mon code est bon...
N'entretiens pas l'espoir de ce qui ne peut être espéré , Pythagore

#98 thermo_nono

thermo_nono

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 825 messages

Posté 24 juin 2012 - 06:26

mais je ne comprend pas...quand je compile il me dit que mon code est bon...

Moi quand je fais une vérification avec le logiciel de dev arduino_1.0.1 il trouve des erreurs.

indice supplémentaire :
la virgule n'est pas un opérateur, par contre "==" en serait un.

#99 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 24 juin 2012 - 01:55

mais je ne comprend pas...quand je compile il me dit que mon code est bon...

Ce n'est pas parce qu'un code compile qu'il fonctionne, loiiiiiinnnnnnnn de la !


Malédiction du Créatif :
Plus vous avez d’idées et moins vous arrivez à les structurer.


#100 rbot99

rbot99

    Membre passionné

  • Membres
  • PipPipPip
  • 514 messages
  • Gender:Male

Posté 24 juin 2012 - 06:17

Ce n'est pas parce qu'un code compile qu'il fonctionne, loiiiiiinnnnnnnn de la !

merci de vos réponses,j'ai peut être trouvé le probleme:

else if(UPDDD==HIGH)

j'ai trouvé??ou pas?
cordialement
rbot99
N'entretiens pas l'espoir de ce qui ne peut être espéré , Pythagore



Répondre à ce sujet



  


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

0 members, 2 guests, 0 anonymous users