Bonjour,
J'ai créé un code pour une voiture autonome cependant en changeant son nom celui ci ne veut plus s'ouvrir comment faire ?
Merci d'avance
-----
Bonjour,
J'ai créé un code pour une voiture autonome cependant en changeant son nom celui ci ne veut plus s'ouvrir comment faire ?
Merci d'avance
La réponse est dans les images fournies. C'est évident.
Si tu es aussi clair à ta soutenance devant jury que pour présenter ton problème, je crains le pire.
Franchement, comment veux-tu que l'on comprenne de quoi tu parles avec aussi peu d'éléments
Je suis désolé je voulais a la base présenter mon code sauf qu'au moment de le copier je me suis rendu compte qu'il ne s'ouvrait pas d'ou mon message plutot etrange (entre temps j'avais coller une copie qui en fait n'en etait pas une x) du coup je me suis embrouillé et comme je sais pas supprimer un post ...
Du coup mon programme ne s'ouvre pas, car j'ai changé le titre du dossier et du fichier, cependant meme en le renommant de la meme facon qu'avant rien n'y fait et Arduino m'affiche :
"impossible d'afficher le croquis"
puis "impossible d'ouvrir le croquis F:\capteur 2.00\capteur2.00\capteur.ino"
Merci d'avance et désolé pour le message précédent
J'ai enfin trouvé une copie a peu près valable de mon programme et donc a l'aide de l'image qui a la base devait illustrer le principe de la voiture : j'explique le principe
Si il y a un obstacle en face elle le contourne et le longe jusqu'a trouver une voie libre dans laquelle s'engager :
voici mon code
Pouvez vous me dire quels sont les defauts et comment faire pour les corriger ou meme dire si il fonctionne bien comme il devraitCode:#define trigPin 13 // capteur devant #define echoPin 12 // capteur devant #define trigPin2 11// capteur 2= capteur de droite #define trigPin3 9// capteur 3=capteur de gauche #define echoPin2 10 // capteur 2 #define echoPin3 8 // capteur 3 int pinServo=4; int periode=20000; //temps alimentation servo #define trigPin4 7 // capteur arriere #define echoPin4 6 #define led 2 //led rouge #define led2 3 //led verte void setup() { Serial.begin (9600); // initialise la connexion pinMode(trigPin, OUTPUT);//mise en place des capteurs pinMode(echoPin, INPUT); //mode reception pinMode(trigPin2, OUTPUT); //mode emission pinMode(echoPin2, INPUT); pinMode(trigPin3, OUTPUT); pinMode(echoPin3, INPUT); pinMode(pinServo,OUTPUT);// on prepare le pin en mode OUTPUT c est a dire sortie digitalWrite(pinServo,LOW); // on l initialise a l etat bas pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(led, OUTPUT); pinMode(led2, OUTPUT); } void loop() { long duration,distance; digitalWrite(trigPin,LOW); delayMicroseconds(2); digitalWrite(trigPin,HIGH); delayMicroseconds(10); digitalWrite(trigPin,LOW); duration = pulseIn(echoPin,HIGH); distance = (duration/2) / 29.1; // capteur 2 = capteur de droite long duration2,distance2; digitalWrite(trigPin2,LOW); delayMicroseconds(2); digitalWrite(trigPin2,HIGH); delayMicroseconds(10); digitalWrite(trigPin2,LOW); duration2 = pulseIn(echoPin2,HIGH); distance2 = (duration2/2) / 29.1; // capteur 3 capteur de gauche long duration3,distance3; digitalWrite(trigPin3,LOW); delayMicroseconds(2); digitalWrite(trigPin3,HIGH); delayMicroseconds(10); digitalWrite(trigPin3,LOW); duration3 = pulseIn(echoPin,HIGH); distance3 = (duration3/2) / 29.1; // capteur 4 = capteur arriere long duration4, distance4; digitalWrite(trigPin4,LOW); delayMicroseconds(2); digitalWrite(trigPin4, HIGH); // emission d un ultrason delayMicroseconds(10); digitalWrite(trigPin4, LOW); duration4 = pulseIn(echoPin4, HIGH); // reception de l ultrason distance4 = (duration4/2) / 29.1; // calcul de la distance a l aide de la formule d = v*t et conversion en cm if(distance<10){ if(distance2<10){ digitalWrite(pinServo,HIGH);// tourne a gauche setAngle(0); delay(1000); digitalWrite(pinServo,LOW); digitalWrite(pinServo,HIGH); setAngle(90); // remets les roues droites delay(1000); digitalWrite(pinServo,LOW); do{ // longe l obstacle jusqu a qu il y ait une voie libre delay(500); }while(distance<20); digitalWrite(pinServo,HIGH);//tourne a droite setAngle(179); delay(1000); digitalWrite(pinServo,LOW); digitalWrite(pinServo,HIGH);//puis continue tout droit donc contourne l obstacle setAngle(90); delay(1000); digitalWrite(pinServo,LOW); } if(distance3<20){ digitalWrite(pinServo,HIGH);// tourne a droite setAngle(179); delay(1000); digitalWrite(pinServo,LOW); digitalWrite(pinServo,HIGH);// remets les roues droites setAngle(90); delay(1000); digitalWrite(pinServo,LOW); do{ delay(500); }while(distance3<20); digitalWrite(pinServo,HIGH);// tourne a gauche setAngle(0); delay(1500); digitalWrite(pinServo,LOW); digitalWrite(pinServo,HIGH); setAngle(90); // remets les roues droites delay(1000); digitalWrite(pinServo,LOW); } else if (distance2>10,distance3>20){ //obstacle ni a gauche ni a droite mais devant digitalWrite(pinServo,HIGH);// tourne a droite setAngle(179); delay(1500); digitalWrite(pinServo,LOW); digitalWrite(pinServo,HIGH);// remets les roues droites setAngle(90); delay(1500); digitalWrite(pinServo,LOW); do{ delay(500); }while(distance3<20); digitalWrite(pinServo,HIGH);// tourne a gauche setAngle(0); delay(1500); digitalWrite(pinServo,LOW); digitalWrite(pinServo,HIGH); setAngle(90); // remets les roues droites delay(1500); digitalWrite(pinServo,LOW); } } if(distance2<10){ //obstacle a droite if(distance3<20){ //obstacle a gauche delay(1500); //continue tout droit } else if(distance3>20){ // pas d obstacle a gauche digitalWrite(pinServo,HIGH); setAngle(45); //decale a gauche digitalWrite(pinServo,LOW); delay(1500); digitalWrite(pinServo,HIGH); setAngle(90); // remettre les roues droite pour continuer la trajectoire digitalWrite(pinServo,LOW); } } if(distance3<20&&distance2>20){ digitalWrite(pinServo,HIGH); setAngle(135); // decaler a droite digitalWrite(pinServo,LOW); mise hors tension du servo moteur delay(1500); digitalWrite(pinServo,HIGH); setAngle(90); //continue sa trajectoire digitalWrite(pinServo,LOW); } if (distance4 < 15) { // si il y a un obstacle a l arriere digitalWrite(led,HIGH); // la lumiere rouge s allume digitalWrite(led2,LOW); // la lumiere verte s eteint } else if (15<distance4<30) { // sinon si il n y a pas d obstacle proche digitalWrite(led,LOW); // lumiere rouge eteinte digitalWrite(led2,HIGH); //lumiere verte allumee } if (distance4 >= 200 || distance <= 0){ // pas d obstacle a l arriere digitalWrite(led,LOW); digitalWrite(led2,LOW); Serial.println("Out of range"); } else { Serial.print(distance); Serial.println(" cm"); } delay(500); } void setAngle(int a){ // fonction angle du servo moteur int duree=map(a,0,179,1000,2000);// on transforme l angle en microsecondes et on stocke dans la variable duree digitalWrite(pinServo,LOW);//on met le pin a l etat bas for(int t=0;t<300;t++){ digitalWrite(pinServo,HIGH);// on envoie l impulsion delayMicroseconds(duree); // pendant la bonne duree digitalWrite(pinServo,LOW); // on stoppe l impulsion delayMicroseconds(duree); // on attend le temps restant pour atteindre la periode } }
Nous précisons que nous avons pour capteur des HC SR04
Merci d'avance et je m'excuse pour la laideur de mon premier message
Ok, c'est un peu plus clair. Il s'agit donc d'un programme pour arduino.
Comme il ne s'agit pas vraiment d'un problème de programmation ou d'algorithmique, je transfère ce fil en électronique où tu devrais trouver plus de réponses.
Edit: j'ai posté pendant que tu publiais ton code, qui est bien de la prog. Mais je pense que le forum elec reste le plus adapté.
Dernière modification par Jack ; 30/01/2017 à 21h49.