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 ?
- Robot Maker
- → Contenu de samuelfer99
Contenu de samuelfer99
Il y a 17 élément(s) pour samuelfer99 (recherche limitée depuis 09-juin 13)
Par type de contenu
Voir pour ce membre
#83390 Projet robotique arduino
Posté par samuelfer99 sur 10 mai 2017 - 06:14 dans Autres projets inclassables
#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
#83287 Projet robotique arduino
Posté par samuelfer99 sur 08 mai 2017 - 06:43 dans Autres projets inclassables
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
#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(); } }
#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
- Robot Maker
- → Contenu de samuelfer99
- Privacy Policy