Aller au contenu


Contenu de samuelfer99

Il y a 17 élément(s) pour samuelfer99 (recherche limitée depuis 18-novembre 08)


#83390 Projet robotique arduino

Posté par samuelfer99 sur 10 mai 2017 - 06:14 dans Autres projets inclassables

Daccord mais si je veut faire en sorte que quand jappuie sur la touche # il s'execute pour detecter les obstacle pendant disons 1 minute, je fait comment ?




#83383 Projet robotique arduino

Posté par samuelfer99 sur 10 mai 2017 - 01:23 dans Autres projets inclassables

Bonjour, j'ai donc procéder autrement, j'ai fait un programme qui télécommande mon robot, et en appuyant sur la touche #, il se met en mode détection d'obstacle pendant 30 seconde, mais quand je televerse tout ca sur mon robot il fonctionne bien pour avancer reculer ou tourner mais des que jappuie sur # il fait qu'avancer et ne sarrete pas...

 

voici mon code : 

#include "IRremote.h"

//capteur ultra-son
#define trigPin 12           
#define echoPin 13


//contrôle moteur
#define avantM1 3 // Marche avant du premier moteur
#define arriereM1 4 // Marche arrière du premier moteur
#define L293DM1 9 // L293D Premier moteur
#define avantM2 5 // Marche avant du deuxième moteur
#define arriereM2 6 // Marche arrière du deuxième moteur
#define L293DM2 10 // L293D deuxième moteur

//Pin Module récepteur IR et variable
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;


#define ETAT_INDEFINI 0
#define ETAT_A 1
#define ETAT_B 2

int etat;

void setup() {
//configurer tous les broches de commande du moteur en sortie
  pinMode(avantM1, OUTPUT);
  pinMode(arriereM1, OUTPUT);
  pinMode(L293DM1, OUTPUT);
  pinMode(avantM2, OUTPUT);
  pinMode(arriereM2, OUTPUT);
  pinMode(L293DM2, OUTPUT);



Serial.begin(9600);

//le récepteur IR
irrecv.enableIRIn();


  pinMode(trigPin, OUTPUT);   //Trig est une sortie
  pinMode(echoPin, INPUT);    //Echo est une entrée

}



/////////////////////////////////////////////////////////////////////////////////////


void loop()
{
Serial.println(results.value, HEX);

//IR signal reçu
if(irrecv.decode(&results))
{

//avant 
if(results.value==0xFF18E7)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, HIGH); 
    digitalWrite(arriereM1, LOW); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW); 
    delay(1000);
}
//recule
else if(results.value==0xFF4AB5)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, LOW); 
    digitalWrite(arriereM2, HIGH); 
    delay(500);
//pivoter vers la gauche
}
else if(results.value==0xFF10EF)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, HIGH); 
    digitalWrite(arriereM1, LOW); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, LOW); 
    digitalWrite(arriereM2, HIGH); 
   delay(150);
//pivoter vers la droite
}
else if(results.value==0xFF5AA5)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW); 
    delay(150);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  
else if(results.value==0xFFB04F)
{
  long duration, distance;
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(2); 
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);               //envoie 10ms sur HIGH
  digitalWrite(trigPin, LOW);       
  // calcul de la distance :
  duration = pulseIn(echoPin, HIGH);   
  distance = duration*340/(2*10000); 
  
  if(distance >= 20) {                 //Si il n'y a pas d'obstacle à plus de 20cm 
    analogWrite(L293DM1, 500);  // avance
    digitalWrite(avantM1, HIGH); 
    digitalWrite(arriereM1, LOW); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW);                             
  }
  else {                               //Sinon (si il voix un objet a moin de 20 cm)
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, LOW); 
    digitalWrite(arriereM2, HIGH); 
    delay(500);
    
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW); 
    delay(300);
    }
 delay(300000);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//recevoir la prochaine valeur
irrecv.resume();

//court délai d'attente pour répéter le signal IR
// (empêcher de s'arrêter si aucun signal reçu)
delay(150);
}

else
{
  analogWrite(L293DM1, 500);    //Alors il bouge pas 
  digitalWrite(avantM1, LOW); 
  digitalWrite(arriereM1, LOW); 

  analogWrite(L293DM2, 500); 
  digitalWrite(avantM2, LOW); 
  digitalWrite(arriereM2, LOW);
 
  
}
}





#83289 Projet robotique arduino

Posté par samuelfer99 sur 08 mai 2017 - 07:02 dans Autres projets inclassables

J'essaye je vous promet..



#83287 Projet robotique arduino

Posté par samuelfer99 sur 08 mai 2017 - 06:43 dans Autres projets inclassables

D'accord, ce que je ne comprends pas c'est
if(etat != etatCourant)
Ainsi que
if(etat == ETAT_A) {

Ou dois-je place la commande pour dire quand il détecte se code ir il effectue ca...



#83285 Projet robotique arduino

Posté par samuelfer99 sur 08 mai 2017 - 06:17 dans Autres projets inclassables

Si vous plait, j'ai beau remplacer les truc essayer mais je n'arrive pas... je doit rendre çà le plus vite possible avant ce vendredi, j'arrive pas a faire changer de mode, vous ne pouvez vraiment pas modifier mon code, je comprendrai quand ca sera fait je pense, façon faudra bien que je l'explique, mais si je laisse le projet comme ca je vais me prendre une sale note... 




#83275 Projet robotique arduino

Posté par samuelfer99 sur 08 mai 2017 - 04:21 dans Autres projets inclassables

Vous pourriez modifier mon programme ? C'est pas que je veux pas le faire mais je comprendrai mieux et pour quelqu'un qui si connais bien c'est plus facile et plus vite fait 😋



#83265 Projet robotique arduino

Posté par samuelfer99 sur 08 mai 2017 - 03:32 dans Autres projets inclassables

Re bonjour a tous, alors voila, j'en suis la :

 

 
#include "IRremote.h"



//capteur ultra-son
#define trigPin 12           
#define echoPin 13




//contrôle moteur
#define avantM1 3 // Marche avant du premier moteur
#define arriereM1 4 // Marche arrière du premier moteur
#define L293DM1 9 // L293D Premier moteur
#define avantM2 5 // Marche avant du deuxième moteur
#define arriereM2 6 // Marche arrière du deuxième moteur
#define L293DM2 10 // L293D deuxième moteur


//Pin Module récepteur IR et variable
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;




#define ETAT_INDEFINI 0
#define ETAT_A 1
#define ETAT_B 2


int etat;


void setupA() {
//configurer tous les broches de commande du moteur en sortie
  pinMode(avantM1, OUTPUT);
  pinMode(arriereM1, OUTPUT);
  pinMode(L293DM1, OUTPUT);
  pinMode(avantM2, OUTPUT);
  pinMode(arriereM2, OUTPUT);
  pinMode(L293DM2, OUTPUT);






Serial.begin(9600);


//le récepteur IR
irrecv.enableIRIn();
}


void setupB() {
  pinMode(trigPin, OUTPUT);   //Trig est une sortie
  pinMode(echoPin, INPUT);    //Echo est une entrée
//configurer tous les broches de commande du moteur en sortie
  pinMode(avantM1, OUTPUT);
  pinMode(arriereM1, OUTPUT);
  pinMode(L293DM1, OUTPUT);
  pinMode(avantM2, OUTPUT);
  pinMode(arriereM2, OUTPUT);
  pinMode(L293DM2, OUTPUT);


}


void loopA() {
Serial.println(results.value, HEX);


//IR signal reçu
if(irrecv.decode(&results))
{


//avant 
if(results.value==0xFF18E7)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, HIGH); 
    digitalWrite(arriereM1, LOW); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW); 
    delay(1000);
}
//recule
else if(results.value==0xFF4AB5)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, LOW); 
    digitalWrite(arriereM2, HIGH); 
    delay(500);
//pivoter vers la gauche
}
else if(results.value==0xFF10EF)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, HIGH); 
    digitalWrite(arriereM1, LOW); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, LOW); 
    digitalWrite(arriereM2, HIGH); 
   delay(150);
//pivoter vers la droite
}
else if(results.value==0xFF5AA5)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW); 
    delay(150);
}
//recevoir la prochaine valeur
irrecv.resume();


//court délai d'attente pour répéter le signal IR
// (empêcher de s'arrêter si aucun signal reçu)
delay(150);
}


else
{
  analogWrite(L293DM1, 500);    //Alors il bouge pas 
  digitalWrite(avantM1, LOW); 
  digitalWrite(arriereM1, LOW); 


  analogWrite(L293DM2, 500); 
  digitalWrite(avantM2, LOW); 
  digitalWrite(arriereM2, LOW);
  
}
}


void loopB() {
 long duration, distance;
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(2); 
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);               //envoie 10ms sur HIGH
  digitalWrite(trigPin, LOW);       
  // calcul de la distance :
  duration = pulseIn(echoPin, HIGH);   
  distance = duration*340/(2*10000); 
  
  if(distance >= 20) {                 //Si il n'y a pas d'obstacle à plus de 20cm 
    analogWrite(L293DM1, 500);  // avance
    digitalWrite(avantM1, HIGH); 
    digitalWrite(arriereM1, LOW); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW);                             
  }
  else {                               //Sinon (si il voix un objet a moin de 20 cm)
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, LOW); 
    digitalWrite(arriereM2, HIGH); 
    delay(500);
    
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW); 
    delay(300);
  }
}


void setup() {
  etat = ETAT_INDEFINI;
}


int lireEtat() {


}


void loop() {
  int etatCourant = lireEtat();
  // Detection du changement d'état
  if(etat != etatCourant) {
    etat = etatCourant;
    if(etat == ETAT_A) {
      setupA();
    }
    if(etat == ETAT_ {
      setupB();
    }
  }
  if(etat == ETAT_A) {
    loopA();
  }
  if(etat == ETAT_ {
    loopB();
  }
}
 
 
 
sauf que je bloque... j'aimerai que quand j'appuie sur la touche # (FFB04F) le robot exécute l’état 1 et quand j'appuie sur * (FF6897) le robot exécute l'Etat 2, comment faire ? merci
 
Modération : C'est du code donc ajout de balise !
Levend



#83103 Projet robotique arduino

Posté par samuelfer99 sur 06 mai 2017 - 11:03 dans Autres projets inclassables

D'accord je vais essayer tout ca merci




#83101 Projet robotique arduino

Posté par samuelfer99 sur 06 mai 2017 - 10:57 dans Autres projets inclassables

mais comment le robot vas comprendre que je passe d'un mode a l'autre ? (avec la telecommande) 




#83100 Projet robotique arduino

Posté par samuelfer99 sur 06 mai 2017 - 10:53 dans Autres projets inclassables

Je vais essayer je vous tient au courant merci




#83097 Projet robotique arduino

Posté par samuelfer99 sur 06 mai 2017 - 10:45 dans Autres projets inclassables

PArceque pour changer de mode ca ce passe avec la télécommande infrarouge mais si on change de code dans lautre setup il y a pas d'infrarouge de programme 




#83096 Projet robotique arduino

Posté par samuelfer99 sur 06 mai 2017 - 10:42 dans Autres projets inclassables

merci e votre réponse, cela a l'air compliquée... vous m'avez un peu perdue, je comprend pas comment vous passer d'un code a l'autre ?




#83094 Projet robotique arduino

Posté par samuelfer99 sur 06 mai 2017 - 10:02 dans Autres projets inclassables

Code pour le télécommande en IR :
 

#include "IRremote.h"
 
//contrôle moteur
#define avantM1 3 // Marche avant du premier moteur
#define arriereM1 4 // Marche arrière du premier moteur
#define L293DM1 9 // L293D Premier moteur
#define avantM2 5 // Marche avant du deuxième moteur
#define arriereM2 6 // Marche arrière du deuxième moteur
#define L293DM2 10 // L293D deuxième moteur
 
 
 
//Pin Module récepteur IR et variable
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
 
 
void setup()
{
 
//configurer tous les broches de commande du moteur en sortie
  pinMode(avantM1, OUTPUT);
  pinMode(arriereM1, OUTPUT);
  pinMode(L293DM1, OUTPUT);
  pinMode(avantM2, OUTPUT);
  pinMode(arriereM2, OUTPUT);
  pinMode(L293DM2, OUTPUT);
 
 
 
Serial.begin(9600);
 
//le récepteur IR
irrecv.enableIRIn();
}
 
 
void loop()
{
Serial.println(results.value, HEX);
 
//IR signal reçu
if(irrecv.decode(&results))
{
 
//avant 
if(results.value==0xFF18E7)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, HIGH); 
    digitalWrite(arriereM1, LOW); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW); 
    delay(1000);
}
//recule
else if(results.value==0xFF4AB5)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, LOW); 
    digitalWrite(arriereM2, HIGH); 
    delay(500);
//pivoter vers la gauche
}
else if(results.value==0xFF10EF)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, HIGH); 
    digitalWrite(arriereM1, LOW); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, LOW); 
    digitalWrite(arriereM2, HIGH); 
   delay(150);
//pivoter vers la droite
}
else if(results.value==0xFF5AA5)
{
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW); 
    delay(150);
}
//recevoir la prochaine valeur
irrecv.resume();
 
//court délai d'attente pour répéter le signal IR
// (empêcher de s'arrêter si aucun signal reçu)
delay(150);
}
 
else
{
  analogWrite(L293DM1, 500);    //Alors il bouge pas 
  digitalWrite(avantM1, LOW); 
  digitalWrite(arriereM1, LOW); 
 
  analogWrite(L293DM2, 500); 
  digitalWrite(avantM2, LOW); 
  digitalWrite(arriereM2, LOW);
  
}
}



#83093 Projet robotique arduino

Posté par samuelfer99 sur 06 mai 2017 - 10:01 dans Autres projets inclassables

Code pour la détection d'obstacle : 

 

 
#define trigPin 12           

#define echoPin 13




//contrôle moteur
#define avantM1 3 // Marche avant du premier moteur
#define arriereM1 4 // Marche arrière du premier moteur
#define L293DM1 9 // L293D Premier moteur
#define avantM2 5 // Marche avant du deuxième moteur
#define arriereM2 6 // Marche arrière du deuxième moteur
#define L293DM2 10 // L293D deuxième moteur




void setup () { 
  pinMode(trigPin, OUTPUT);   //Trig est une sortie
  pinMode(echoPin, INPUT);    //Echo est une entrée
//configurer tous les broches de commande du moteur en sortie
  pinMode(avantM1, OUTPUT);
  pinMode(arriereM1, OUTPUT);
  pinMode(L293DM1, OUTPUT);
  pinMode(avantM2, OUTPUT);
  pinMode(arriereM2, OUTPUT);
  pinMode(L293DM2, OUTPUT);


}
void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(2); 
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);               //envoie 10ms sur HIGH
  digitalWrite(trigPin, LOW);       
  // calcul de la distance :
  duration = pulseIn(echoPin, HIGH);   
  distance = duration*340/(2*10000); 
  
  if(distance >= 20) {                 //Si il n'y a pas d'obstacle à plus de 20cm 
    analogWrite(L293DM1, 500);  // avance
    digitalWrite(avantM1, HIGH); 
    digitalWrite(arriereM1, LOW); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW);                             
  }
  else {                               //Sinon (si il voix un objet a moin de 20 cm)
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, LOW); 
    digitalWrite(arriereM2, HIGH); 
    delay(500);
    
    analogWrite(L293DM1, 500); 
    digitalWrite(avantM1, LOW); 
    digitalWrite(arriereM1, HIGH); 
  
    analogWrite(L293DM2, 500); 
    digitalWrite(avantM2, HIGH); 
    digitalWrite(arriereM2, LOW); 
    delay(300);
  }
}



#83092 Projet robotique arduino

Posté par samuelfer99 sur 06 mai 2017 - 09:57 dans Autres projets inclassables

Bonjour, je reviens vers vous pour avoir un peu d'aide,

 

alors voila j'ai crée 2 programme différent et indepant pour le robot arduino, un qui permet au robot de détecter les mur et de les éviter, un autre qui permet de le contrôler grâce a une petite télécommande.

 

Mon probleme j'aimerai mettre ne lien les deux programme ou faire un truc du style quand j'appuie sur cette touche le robot exécute se programme et quand j'appuie sur une autre touche il exécute autre programme.

 

Voila je doit rendre tout la semaine prochaine.... pour apres etre note pour le bac..

 

merci




#76660 Projet robotique arduino

Posté par samuelfer99 sur 27 novembre 2016 - 05:14 dans Autres projets inclassables

Bonjour,
je sollicite votre aide pour un projet en ISN (informatique science du numérique), au niveau de mes connaissance en programmation elle sont très superficiel, mais au niveau bricolage, soudure ou autre, je me débrouille pas mal :)
Je décide de me lancer dans la construction d’un robot.
Le robot aura pour particularité 2 fonctions :
-       Il disposera d’un mode automatique, qui lui permettra de se déplacer seul en évitant les obstacles.
-       Ainsi qu’un mode manuel, ou il sera contrôlé avec une télécommande infrarouge.
 
Pour cela, j'ai commande le matériel suivant :
Arduino UNO version 3
Kit châssis avec moteur
Modules a ultra son
Carte d’extension L293D Moteur
kit télécommande infrarouge + module de réception
 
Je ne sais pas par ou commencé pour la programmation, je ne veux pas copier colle un code bêtement sur mon arduino mais je chercher plutôt a comprendre se code.
Aider moi s'il vous plait 




#76655 Je me présente

Posté par samuelfer99 sur 27 novembre 2016 - 04:44 dans Et si vous vous présentiez?

Bonjour a tous,

Je m'appelle Samuel, j'ai 17 ans et je suis en Terminal S, je suis très passionner par l'informatique et la robotique.

J'ai une option au lycée en ISN, (informatique et science du numérique) et j'ai une idée de projet bien précis, je solliciterai votre aide un peu plus tard :)