Aller au contenu


Photo
- - - - -

Robot telecommandé avec IR


  • Veuillez vous connecter pour répondre
19 réponses à ce sujet

#1 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 13 octobre 2014 - 09:29

Salut a tous ,

 

voila donc je viens de réaliser dernièrement un robot éviteur d'obstacle , j'ai utiliser un capteur Ultrason ,un servo pour le balayage du capteur ,un châssis Magician acheter sur internet avec 2 moteurs , un L293D et le tout basé sur une carte Arduino Mega2560. Il marche très bien et prochainement je vous ferais une vidéo de celui ci avec des explications et bien sur le code source ;)

 

Mais en attendant j'ai besoin de vous car je voudrais rendre ce robot un peu plus Sympa en lui rajoutant le contrôle par une télécommande infrarouge (télécommande de télévision).

Donc dans un premier temps je vais rendre ce robot seulement contrôlable par la télécommande IR , je vais enlever le capteur US et le servo de balayage. Quand j'aurais réussis je mettrais ces 2 options au robot : Autonome(capteur US) et contrôlable (Télécommandé).

 

 

J'ai donc commencé a bossé sur la partie Programmation de mon robot puisqu'il est déjà tout prêt. J'utilise un capteur IR (voir image jointe) et une télécommande de télévision que j'ai trouvé. J'ai donc utiliser ce code pour recevoir les données de ma télécommande et les convertir en nombre Décimale :

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
    irrecv.resume(); // Receive the next value
  }
  delay(100);
} 

J'ai ouvert le moniteur et noter les touches que j'avais besoin en l'occurrence :  les 4 touches fléchés pour les directions du robot et le bouton central OK pour l'arrêt du robot.

 

Après cela j'ai essayé le code du robot : 

#include <IRremote.h>
#include <IRremoteInt.h>

//declaration des moteurs + L293D
#define motor1Pin1 3
#define motor1Pin2 4
#define motor2Pin1 6
#define motor2Pin2 7
#define enable1 2
#define enable2 5
 
//declaration des mouvements + codes telecommande en DEC
#define AVANT 2155813095
#define ARRIERE 2155831965
#define GAUCHE 2155840125
#define DROITE 2155844205
#define STOP 2155848285


 
unsigned long ircode; // Variable servant à mémoriser le code reçu
 
void setup()
{
     //reglage des moteurs en mode sortie
     pinMode(motor1Pin1, OUTPUT);
     pinMode(motor1Pin2, OUTPUT);
     pinMode(motor2Pin1, OUTPUT);
     pinMode(motor2Pin2, OUTPUT);
 
     ir.begin(); //commencer la reception IR
}
 
void loop()
{
   while (ir.available()) // tant que le capteur est disponible ...
   {
     // Lire et mémoriser le code dans la variable  ircode
      ircode = ir.read();
 
      if (ircode == AVANT) avant();
      if (ircode == ARRIERE) arriere();      
      if (ircode == GAUCHE) gauche();
      if (ircode == DROITE) droite();
      else if (ircode == STOP) arret();
   }
}
 
void avant() //aller en avant
{
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
}
 
void arriere() //aller en arriere
{
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
}
 
void gauche() //aller a droite
{
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
}
 
void droite() //aller a gauche
{
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
}
 
void arret() //stop/arret
{
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
}

mais celui me donne une erreur :

sketch_oct13b.ino: In function 'void setup()':
sketch_oct13b:31: error: 'ir' was not declared in this scope
sketch_oct13b.ino: In function 'void loop()':
sketch_oct13b:36: error: 'ir' was not declared in this scope
 
Donc je ne comprends pas quelle est l'erreur dans cette ligne car je dois lancer la réception Infrarouge a ce moment la ( a moins qu'il y a une autre manière)
Si quelqu'un pourrait m'éclairer sur ce point.
 
Et pour finir ,quelle est la distance maximum a peu prés que je peux garder entre le robot et la telecommande IR ?
 
Merci de votre aide.

Fichier(s) joint(s)

  • Fichier joint  image9.gif   5,25 Ko   1 téléchargement(s)

Merci a tous
Cordialement Dylan.

#2 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)

Posté 13 octobre 2014 - 09:51

Il ne trouve pas le code INCLUDE

Est ce que tu as bien téléchargé et installé les librairies IRremote.h et IRremoteInt.h  dans le bon dossier ?


Christian

#3 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 13 octobre 2014 - 01:18

Oui et par précaution je viens de le re-télécharger et j'ai placé le dossier dans 'librairies" qui ce trouve dans le dossier Arduino. 


Merci a tous
Cordialement Dylan.

#4 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 14 octobre 2014 - 02:36

Oui et par précaution je viens de le re-télécharger et j'ai placé le dossier dans 'librairies" qui ce trouve dans le dossier Arduino. 

Je pense aussi que tu as un problème d'include ... es tu sur d'avoir mis les bon noms ? Est ce que tu les vois dans tes librairies disponible quand tu click sur croquis puis "importer un bibliothèque " ?  Sinon essaye add library 

Sinon pour tester de façon barbare tu peux coller les fonction et les définition du IRremote.h et IRremoteInt.h mais c'est pas une bonne solution pour le long terme ...  à bientôt !


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#5 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 14 octobre 2014 - 08:48

Lorsque je clique sur la librairie IRremote cela m'ajoutes ces 2 lignes au début du code :

 

#include <IRremote.h>

#include <IRremoteInt.h>
 
Peut être ai je fais une mauvaise manipulation ou oublier quelques choses pour installer la librairie ? 
 
J'ai télécharger la librairie en format ZIP , je la décompresse et le dossier décompresser doit être copier dans "Librairies" dans le dossier Arduino (qui chez moi ce trouve dans Program Files) 
C'est bien ca , non ?
 
Et sinon comment puis-je coller les fonction et les définition du IRremote.h et IRremoteInt.h ?

Merci a tous
Cordialement Dylan.

#6 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 17 octobre 2014 - 09:09

Salut,

 

Je reviens vers vous parce que cela fait 3 jours que je cherche une solution pour le problème programmation mais sans résultats. Quelqu'un aurais peut être une solution ou une astuce a me conseiller ??


Merci a tous
Cordialement Dylan.

#7 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 17 octobre 2014 - 07:54

Salut,

 

Je reviens vers vous parce que cela fait 3 jours que je cherche une solution pour le problème programmation mais sans résultats. Quelqu'un aurais peut être une solution ou une astuce a me conseiller ??

 Peux tu poster ici le contenu des .h et .c des fichiers  IRremote et IRremoteInt ?
 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#8 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 18 octobre 2014 - 06:38

Je vous poste la librairie entièrement en .zip cela sera surement plus simple.

Fichier(s) joint(s)


Merci a tous
Cordialement Dylan.

#9 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)

Posté 18 octobre 2014 - 07:23

Avec cette librairie il n'y a pas de ir.begin();

 

On se sert de irrecv.enableIRIn(); pour initialiser la réception, exactement comme dans ton premier code.


Christian

#10 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 18 octobre 2014 - 08:30

Oui c'est vrai et en plus de cela je me suis rendu compte que je n'avais pas déclarer mon capteur au début du code !! Je l'ai donc modifié : 

#include <IRremote.h>
#include <IRremoteInt.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
//declaration des moteurs + L293D
#define motor1Pin1 3
#define motor1Pin2 4
#define motor2Pin1 6
#define motor2Pin2 7
#define enable1 2
#define enable2 5
 
//declaration des mouvements + codes telecommande en DEC
#define AVANT 2155813095
#define ARRIERE 2155831965
#define GAUCHE 2155840125
#define DROITE 2155844205
#define STOP 2155848285

unsigned long ircode; // Variable servant à mémoriser le code reçu

void setup()
{
     //reglage des moteurs en mode sortie
     pinMode(motor1Pin1, OUTPUT);
     pinMode(motor1Pin2, OUTPUT);
     pinMode(motor2Pin1, OUTPUT);
     pinMode(motor2Pin2, OUTPUT);

  Serial.begin(9600);
  irrecv.enableIRIn(); //commencer la reception IR
}
 
void loop()
{
   while (ir.available()) // tant que le capteur est disponible ...
   {
     // Lire et mémoriser le code dans la variable  ircode
      ircode = ir.read();
 
      if (ircode == AVANT) avant();
      if (ircode == ARRIERE) arriere();      
      if (ircode == GAUCHE) gauche();
      if (ircode == DROITE) droite();
      else if (ircode == STOP) arret();
   }
}
 
void avant() //aller en avant
{
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
}
 
void arriere() //aller en arriere
{
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
}
 
void gauche() //aller a droite
{
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
}
 
void droite() //aller a gauche
{
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
}
 
void arret() //stop/arret
{
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
}

et donc il me reste une petite erreur qui est : 

 

Robot_IR_1.ino: In function 'void loop()':
Robot_IR_1:37: error: 'ir' was not declared in this scope
 
Quel est le probleme avec  ir.available et ir.read  ???

Merci a tous
Cordialement Dylan.

#11 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)

Posté 18 octobre 2014 - 09:12

Car ces 2 méthodes ne font pas partie de la librairie ir (ouvre les fichiers  .h pour voir ce qu'il y a dedans)


Christian

#12 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 18 octobre 2014 - 11:08

j'ai telecharger la bibliotheque "NECIRrcv" celle qui permet d'utiliser ir.read et ir.available et donc j'ai modifier mon code

#include <NECIRrcv.h>


#define IRPIN 10
//declaration des moteurs + L293D
#define motor1Pin1 3
#define motor1Pin2 4
#define motor2Pin1 6
#define motor2Pin2 7
#define enable1 2
#define enable2 5
 
//declaration des mouvements + codes telecommande en DEC
#define n1 2155813095
#define n2 2155831965
#define n3 2155840125
#define n4 2155844205
#define n5 2155848285

NECIRrcv ir(IRPIN) ;
unsigned long ircode; // Variable servant à mémoriser le code reçu

void setup()
{
     //reglage des moteurs en mode sortie
     pinMode(motor1Pin1, OUTPUT);
     pinMode(motor1Pin2, OUTPUT);
     pinMode(motor2Pin1, OUTPUT);
     pinMode(motor2Pin2, OUTPUT);

  Serial.begin(9600);
  ir.begin() ;
  
}
 
void loop()
{
   while (ir.available()) // tant que le capteur est disponible ...
   {
     // Lire et mémoriser le code dans la variable  ircode
      ircode = ir.read();
 switch(ircode)
    {
        case n1:
        {
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
                break;
        }
        case n2:
        {
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
                break;
        }
        case n3:
        {
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
                break;
        }
        case n4:
        {
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
                break;
        }
        case n5:
        {
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
                break;
        }
    }     
  }
}

Le code s'upload avec succès mais le robot lui ne fonctionne pas ou pluton ne réagit pas avec la télécommande.

Avez vous une idée du probleme ? 


Merci a tous
Cordialement Dylan.

#13 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)

Posté 19 octobre 2014 - 08:53

Serial.print(ir) permetterait de voir si les commandes sont bien reçues ou pas.


Christian

#14 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 24 octobre 2014 - 07:18

Salut ,

 

Voila j'ai donc rajouter Serial.print(IRPIN); dans la boucle loop et lorsque j'upload le code le Serial Moniteur me fait défiler des 010101010101 a la suite sans arrêt. Normalement il devrait attendre de recevoir des instructions par la télécommande IR et m'afficher a l'écran la touche pressée. 

 

Je vais essayer de voir ce que je peux faire pour y remédier , si vous avez des conseils ou des infos n'hésitez pas !

 

Merci.


Merci a tous
Cordialement Dylan.

#15 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)

Posté 24 octobre 2014 - 12:07

C'est normal, IRPIN est une constante qui vaut 10.

C'est la valeur lu de  ircode qu'il faut regarder.


Christian

#16 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 24 octobre 2014 - 02:38

Je suis vraiment idiot ! Je l'ai changer et j'ai mis 

 Serial.print(ircode);

Et lorsque j'ai uploader mon code le Serial Moniteur m'afficher des valeurs completement differentes de ce que j'avais pre-programmer. J'ai donc decider de changer les anciennes valeurs avec ces nouvelles et la ... !!  Le robot c'est mis a fonctionner exactement comme je le voulais !! 

Je vous partage le code donc finis et correct : 

// telecharger la librairie sur ce lien http://www.4shared.com/zip/JgqhuOpr/NECIRrcv.html
#include <NECIRrcv.h>

//declaration du capteur qui est sur le pin 10
#define IRPIN 10 
//declaration des moteurs + L293D
#define motor1Pin1 3
#define motor1Pin2 4
#define motor2Pin1 6
#define motor2Pin2 7
#define enable1 2
#define enable2 5
 
//declaration des mouvements + codes telecommande en DEC
#define n1 3877174785 
#define n2 3108437505
#define n3 3191995905
#define n4 3058302465
#define n5 3125149185

NECIRrcv ir(IRPIN) ;
unsigned long ircode; // Variable servant à mémoriser le code reçu

void setup()
{
     //reglage des moteurs en mode sortie
     pinMode(motor1Pin1, OUTPUT);
     pinMode(motor1Pin2, OUTPUT);
     pinMode(motor2Pin1, OUTPUT);
     pinMode(motor2Pin2, OUTPUT);

  Serial.begin(9600);
  ir.begin() ;
  
}
 
void loop()
{
   while (ir.available()) // tant que le capteur est disponible ...
   {
     // Lire et mémoriser le code dans la variable  ircode
      ircode = ir.read();
      Serial.print(ircode);
 switch(ircode)
    {
        case n1:
        {
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
                break;
        }
        case n2:
        {
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
                break;
        }
        case n3:
        {
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
                break;
        }
        case n4:
        {
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
                break;
        }
        case n5:
        {
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
                break;
        }
  }     
  }
}


Merci a tous
Cordialement Dylan.

#17 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 24 octobre 2014 - 02:43

Merci beaucoup pour votre aide !! surtout a toi ChristianR tu m'as vraiment bien aide ;)

Je vais prochainement vous partager une vidéo de mon robot "en action" avec le matériel utilisé et les schéma électronique. Je vais aussi partager la 1ère version du robot lorsqu'il était autonome avec son capteur US et son servomoteur qui lui sert de balayage. Et par la suite je vais essayer d'utiliser la télécommande IR pour que le robot passe en mode autonome ou en mode télécommandé chaque mode sera représenté par une touche de la télécommande.

 

En tout cas merci !!  


Merci a tous
Cordialement Dylan.

#18 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 30 octobre 2014 - 11:15

Alors comme promis voila la présentation de mon robot V1.0 et bientôt je mettrais la Version V2.0. Donc dans un premier temps les composants :

 

_Arduino (Mega2560 dans mon cas)

_Kit Magician Châssis (contient: 2 moteurs, 2 roues , un châssis , une roue folle , support piles)

_Contrôleur de moteur L293D

_Capteur infrarouge TSOP1838 (voir modèle joint)

_Télécommande infrarouge (télé, DVD, ou n'importe)

_Pile 9V (alimention Arduino)

_4 piles AA 1.5V (alimentation moteurs)

 

ensuite le schéma électronique est joint ci-dessous (Le capteur Infrarouge n'est pas bon mais le câblage oui , regarder image jointe du capteur )

 

Et pour finir le code ! 

Télécharger la bibliotheque :  NECIRrcv.h et installer la sur Arduino.

 

Ensuite il faut d'abord noter les codes Hex des touches de la télécommande pour les attribuer a des directions/ordres. Donc on upload le code suivant et des qu'il est uploader , ouvrir le serial monitor et appuyer sur une touches de la télécommande pour afficher a l'écran le code HEX de la touche pressée. Après avoir noter la touche et son code vous aller copier le code HEX dans la partie a changer du code :

// telecharger la librairie sur ce lien http://www.4shared.com/zip/JgqhuOpr/NECIRrcv.html
#include <NECIRrcv.h>

//declaration du capteur qui est sur le pin 10
#define IRPIN 10 
//declaration des moteurs + L293D
#define motor1Pin1 3
#define motor1Pin2 4
#define motor2Pin1 6
#define motor2Pin2 7
#define enable1 2
#define enable2 5
 
//Partie du code a changer ! 
#define n1 3877174785 //noter le code HEX ,reçu sur le serial monitor pour la touche 1
#define n2 3108437505 // faites de même avec les autres
#define n3 3191995905
#define n4 3058302465
#define n5 3125149185

NECIRrcv ir(IRPIN) ;
unsigned long ircode; // Variable servant à mémoriser le code reçu

void setup()
{
     //reglage des moteurs en mode sortie
     pinMode(motor1Pin1, OUTPUT);
     pinMode(motor1Pin2, OUTPUT);
     pinMode(motor2Pin1, OUTPUT);
     pinMode(motor2Pin2, OUTPUT);

  Serial.begin(9600);
  ir.begin() ;
  
}
 
void loop()
{
   while (ir.available()) // tant que le capteur est disponible ...
   {
     // Lire et mémoriser le code dans la variable  ircode
      ircode = ir.read();
      Serial.print(ircode);
 switch(ircode)
    {
        case n1:
        {
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
                break;
        }
        case n2:
        {
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
                break;
        }
        case n3:
        {
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, HIGH);
                break;
        }
        case n4:
        {
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
                break;
        }
        case n5:
        {
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
                break;
        }
  }     
  }
}

Re-Uploader le code pour que le robot fonctionne avec la télécommande.

Fichier(s) joint(s)


Merci a tous
Cordialement Dylan.

#19 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 31 octobre 2014 - 09:25


 

Très beau message de description ;) Juste une remarque concernant le schémas déposé ? Est tu sur qu'il est correcte au niveau des branchements de l'alimentation ? 

En tout cas le branchement proposé est fonctionnel mais peu commun... Sur le câblage proposé tu as deux masse distincte et ton référentielle commun est le 5V ...  La manière la plus correcte serait de lier les masse de tes blocs de piles et non pas leur borne positive...

 

En tout cas bonne continuation et à bientôt ! =)


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#20 dydyouaki

dydyouaki

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 792 messages
  • Gender:Male

Posté 31 octobre 2014 - 10:19

Effectivement j'ai fais une gaffe dans le schéma , voila le schéma rectifier.

Fichier(s) joint(s)


Merci a tous
Cordialement Dylan.




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

0 members, 0 guests, 0 anonymous users