
aide sur capteur ultrason URM37 V3.2
#23
Posté 22 août 2011 - 10:54
sur ce post les sorties sont deja reglé sur 6 et 7
donc ta rien a changer tout devrais fonctionné de cette maniere
moi aussi c'est une pseudo uno (DFRduino duemilanove)
Bonjour,
Voici aussi un lien avec 3 exemples differentes d'utilisation de ce capteur avec en plus un la lib URMSerial.h
http://www.botbuilder.co.uk/codeandprojects/bbsonar/index.html
Toutefois, si vous avez un code pour son utilisation en I2C (donc avec la Lib Wire.h je suis preneur...
Cdlt
Yves
#26
Posté 24 août 2011 - 05:47
moi j'ai se si ès-que c'est normale ??????
je sais pas si tu savais? mais tu as outils de capture sur seven (dans acessoire) car la c'est dur de lire t'a capture
tu ne t'es pas trompé dans le sens de connexion des borne 6 et 7 ?
moi j'avais un timeout quand le capteur ne fonctionné pas(faut contacte sur 6 et 7) et pour ressoudre j'ai du verifier un cable puis appuyer sur reset ( jusqu'a trouver la source du prob)
tu peux m'envoyer une photo de l'arriere de ton urm ( c'est peux etre les cavalier?!)
#31
Posté 24 août 2011 - 06:17
Autant pour moi, non non c’était pas le cavalier c’était une soudure ^^ ! Il fonctionne parfaitement!
Merci de ton aide Julkien!
Cool je me demandais si mes indication etais aussi mauvaises

seb re-verifie ton cablage a mon avis c'est le probleme
sinon tes cavaliers sont dans la bonne position
#37
Posté 25 août 2011 - 07:01
Juste une question, c'est bien une Uno que vous utilisez. Donc avec un seul et unique port serie.
Si je ne me trompe pas, c'est donc le meme port que vous utilisez avec la liaison PC pour avoir votre affichage et celui sur lequel vous essayez de brancher votre capteur US.
Donc si c'est bien ça, c'est normal. A vérifier, mais soit vous devez débranchez votre PC pour que le capteur fonctionne, soit vous créez un port serie virtuel.
Mais de mémoire, il n'y a que la Mega qui comporte plusieurs ports serie. Donc sur une autre Boers c'est le meme port que celui qui est converti en USB.
Je verifie ça et vous le confirme.
Cdlt
Yves
#38
Posté 25 août 2011 - 08:13
#include <URMSerial.h> #include <NewSoftSerial.h> #include "URMSerial.h" // déclaration de la mesure de distance #define DISTANCE 1 // déclaration de la mesure de température #define TEMPERATURE 2 // déclaration de variable d'erreur #define ERROR 3 // déclaration de non lecture #define NOTREADY 4 // déclaration de limite de temps #define TIMEOUT 5 URMSerial urm; #include <Servo.h> int vitesse1 = 6; int vitesse2 = 5; int direction1 = 7; int direction2 = 4; Servo myservo; // créer un objet de servo pour contrôler un servomoteur int potpin = 0; // broche analogique utilisé pour connecter le capteur int val; // variable pour lire la valeur de la broche analogique void Moteur1(int valeur_vitesse, boolean sens_avant) { analogWrite(vitesse1,valeur_vitesse); //valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum if(sens_avant) { digitalWrite(direction1,HIGH); } else { digitalWrite(direction1,LOW); } } void Moteur2(int valeur_vitesse, boolean sens_avant) { analogWrite(vitesse2,valeur_vitesse); //valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum if(sens_avant) { digitalWrite(direction2,HIGH); } else { digitalWrite(direction2,LOW); } } void setup() { Serial.begin(9600); urm.begin(6,7,9600); Serial.println("URM37 Library by Miles Burton - Distance. Version 2.0"); myservo.attach(2); // attache le servo sur la broche 2 à l'objet servo int i; for(i=4;i<=8;i++) pinMode(i, OUTPUT); //met les pin 4,5,6,7 en mode sortie } void loop() { Serial.print("Measurement: "); Serial.println(getMeasurement(DISTANCE)); Serial.print("Temperature:"); Serial.println(getMeasurement(TEMPERATURE)/10.0); delay(1000); } int value; int getMeasurement(int mode) { // Demander une distance de lecture de la URM37 switch(urm.requestMeasurementOrTimeout(mode, value)) { case DISTANCE: // Serial.println (valeur); return value; break; case TEMPERATURE: return value; break; case ERROR: Serial.println("Error"); break; case NOTREADY: Serial.println("Not Ready"); break; case TIMEOUT: Serial.println("Timeout"); break; } val = analogRead(potpin); // lit la valeur du capteur (valeur comprise entre 0 et 115) val = map(val, 0, 115, 0, 300); // l'échelle pour l'utiliser avec le servo (valeur entre 0 et 300) myservo.write(val); // définit la position d'asservissement en fonction de la valeur à l'échelle delay(100); // attend que le servo pour y arriver if (val >= 255) // si on est à moins de quelque CM d'un obstacle { Moteur1(0,true); //j’arrête le moteur 1 Moteur2(0,true); // j’arrête le moteur 2 delay(300); //j’attende quelque seconde Moteur1(0,true); //j’arrête le moteur 1 Moteur2(0,true); // j’arrête le moteur 2 delay(500); //la valeur à mettre reste à définir en fonction de la vitesse du robot Moteur1(255,true); //J'avance tout droit en mettant les 2 moteurs à fond Moteur2(255,false); //J'avance tout droit en mettant les 2 moteurs à fond } else { Moteur1(255,false); Moteur2(255,true); } }
#39
Posté 25 août 2011 - 08:51
http://www.arduino.cc/en/Main/ArduinoBoardDuemilanove
Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the FTDI USB-to-TTL Serial chip.
Je ne vois qu'un seul et unique pour série...
Seules les Méga en ont plusieurs
http://arduino.cc/en/Main/ArduinoBoardMega2560
Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip.
Mais à vérifier que c'est bien lié à ton probleme.
dlt
Yves
#40
Posté 25 août 2011 - 09:53
Ben a en croire la doc, c'est la même chose...
http://www.arduino.c...oardDuemilanove
Je ne vois qu'un seul et unique pour série...
Seules les Méga en ont plusieurs
http://arduino.cc/en...noBoardMega2560
Mais à vérifier que c'est bien lié à ton probleme.
dlt
Yves
et pourtant moi elle est connecter sur les borne 6 et 7, et pour ajouté un point a cette enigme on posséde tout les 2 la meme carte
c'est un peu comme si on emulé un port serie non ?
enfin moi ca marche !
Répondre à ce sujet

1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users