Bonjour,
Je me lance dans la robotique, j'arrive à faire deux / trois trucs avec la carte en programmation.
Par contre une fois que les instruction sont lancées plus moyen de les arrêter (si je demande au robot d'aller tout droit, il y va indéfiniment !)
Le bouton stop de l'interface logiciel...ne fonctionne plus.
Quelqu'un a-t-il une idée ?
Merci d'avance
Maxime
Code arduino qui ne s'arrête pas
Débuté par majab, sept. 10 2011 12:55
4 réponses à ce sujet
#3
Posté 10 septembre 2011 - 01:43
On fois que tu transfert le code dans l'Arduino, il restera dedans (dans la mémoire de ton Arduino) et comme il a une boucle infini (la boucle "void loop(){}" ba ça tournera indéfiniment. Essaye d'envoyer des commandes du genre "AV" ou "STOP" via le port série afin de contrôler ton robot.
Pour te donner une idée de la façon dont je procède pour ça :
Et ma fonction pour récupérer des données sur le port série
P.S. Je pense que la fonction peu-être améliorable avec des String au lieu d'un tableau de char, j'essayerai de le faire quand j'aurais fini mon projet
Pour te donner une idée de la façon dont je procède pour ça :
#define MAX_DATA 20 char data[MAX_DATA]; int resetData; void setup() { Serial.begin(9600); } void loop() { if(Serial.available() > 0) // interruption sur le port serie { /*Reset les data avant d'en reçevoir de nouveaux*/ for(resetData = 0; resetData < MAX_DATA; resetData++) data[resetData] = 0; GetStringFromPc(); Serial.println(data); /* strcmp permet de comparer des chaînes de caractères */ if(strcmp(data, "avance")==0) /* Fait avancer ton robot ici */ if(strcmp(data, "InitServo")==0) // Fait stopper ton robot ici } }
Et ma fonction pour récupérer des données sur le port série
/* GetStringFromPC * Permet de récupérer des commandes * envoyées via le port série * depuis le PC */ void GetStringFromPc() { int i; for(i = 0; Serial.available() > 0; i++) { data[i] = Serial.read(); delay(2); } }
P.S. Je pense que la fonction peu-être améliorable avec des String au lieu d'un tableau de char, j'essayerai de le faire quand j'aurais fini mon projet
#4
Posté 10 septembre 2011 - 05:19
Bah, j'esaie de faire le robot Robby, pour l'instant j'en suis à la phase 1, il avance et tourne et je pige à peu près le code .
Je cherche juste à arrêter le robot pour faire des tests, sans qu'il boucle sans fin.
Je pensais que cela pouvait être facilement via le bouton "stop" de l'interface Arduino (un peu comme lorsque l'on balance le nouveau programme), mais cela n'a pas l'air d'être le cas ...
Je cherche juste à arrêter le robot pour faire des tests, sans qu'il boucle sans fin.
Je pensais que cela pouvait être facilement via le bouton "stop" de l'interface Arduino (un peu comme lorsque l'on balance le nouveau programme), mais cela n'a pas l'air d'être le cas ...
Répondre à ce sujet
0 utilisateur(s) li(sen)t ce sujet
0 members, 0 guests, 0 anonymous users