Pages: 1 2 [3]   Go Down
Author Topic: help code robot autonome  (Read 2220 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui c'est vraiment bizarre.
J'ai un capteur infrarouge je vais essayé voir si çà marche mieux car il me renvoie directement une distance.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ahah (nerveux) je viens de griller mon capteur sharp  smiley-mad
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ahah (nerveux) je viens de griller mon capteur sharp  smiley-mad
Comment t'as fait ton compte smiley-eek les capteurs IR sharp c'est increvables, à moins de lui avoir coller du 12v à l'envers je vois pas comment ta fait ...
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3414
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

merci pour votre aide...

Voilà les résultats dans le serial monitor qui prouvent que tout va bien pourtant...(j'ai mis mes mains devant le capteur quand les mesures sont faibles...)

Dist D : 134
Dist G : 252
Go C
Dist D : 136
Dist G : 252
Go C
Dist D : 8
Dist G : 252
Go G
Dist D : 5
Dist G : 6
Go D
Dist D : 5
Dist G : 7
Go D
Dist D : 191
Dist G : 252
Go C


Si la logique de commande est bonne alors le problème est ailleurs.
Il faut investiguer la partie pilotage des moteurs. Ou comme je le proposais précédemment la partie mécanique. Une roue qui patine un peu, un moteur qui tourne un peu moins vite et assez rapidement la ligne droite devient une courbe.

Une autre question ne tourne-t-il pas trop vite? En regardant ton code on voit que tu mets un moteur dans un sens et l'autre en sens inverse donc le mobile tourne rapidement sur lui même. Cela ne perturbe pas les mesures?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ben je sais pas non pourtant c'est bien en 5v mais je pense avoir inversé la masse et le +5v en tout cas le capteur était très chaud et odeur de cramé donc je pense qu'il est mort surtout qu'en mettant le capteur sur la patte analogique 5 quand je met ma main devant ou non j'obtiens tout le temps 900 avec ce code basique:

Code:
const int Voie_5=5;
int mesure_brute=0;


void setup()   { 

Serial.begin(115200);
}

void loop(){
 
mesure_brute=analogRead(Voie_5);

Serial.println(mesure_brute);

delay(100);

}

Sinon je vais essayé ce que tu me recommandes fdufnews mais comme je l'ai expliqué si j'enlève les capteurs et que je fait tout simplement avancer(130,130) ou droite(130,130) en ben çà marche !! :S vraiment bizarre

Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ben je sais pas non pourtant c'est bien en 5v mais je pense avoir inversé la masse et le +5v en tout cas le capteur était très chaud et odeur de cramé donc je pense qu'il est mort surtout qu'en mettant le capteur sur la patte analogique 5 quand je met ma main devant ou non j'obtiens tout le temps 900 avec ce code basique:
Défaut matériel peut être ... si y avait une odeur de cramé il est foutu.

Sinon je vais essayé ce que tu me recommandes fdufnews mais comme je l'ai expliqué si j'enlève les capteurs et que je fait tout simplement avancer(130,130) ou droite(130,130) en ben çà marche !! :S vraiment bizarre
Donc en gros la situation actuelle : WHAT THE F*CK ! smiley-mr-green
C'est pas la logique, c'est pas les moteurs, c'est pas les capteurs ...
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Une première bonne nouvelle même si c'est pas encore çà.
J'ai essayé un nouveau code sur un autre robot (à servomoteur au lieu des moteurs CC) du coup j'ai utilisé mon arduino uno au lieu de ma carte romeo vu qu'il n'y avait plus de moteurs CC à piloter.

Donc le code marche seulement le robot tourne seulement 5 secondes après que j'ai mis ma main devant un des capteurs (même si je l'enlève tout de suite après l'avoir mise çà marche quand même comme si le robot après avoir vu un obstacle arrêtait de prendre des mesures attendait 5 secondes (mais il avance toujours du coup) et après il tourne. Et c'est exactement ce que j'observe dans le serial monitor...tant qu'il n'y a pas d'objet les mesures s’enchaînent puis si je met ma main là il prend la mesure (distance proche car obstacle) stop 5 secondes puis recommence à enchaîner les mesures vu que j'ai enlevé ma main.

Savez vous d’où peut provenir un tel retard?

Du coup pour mon premier robot le problème doit venir de moteurs CC car j'ai essayé la carte romeo avec les servomoteurs et çà marche comme pour l'arduino (retard de 6 secondes cette fois).
J'ai vu sur le forum que le problème pouvait venir de l'alimentation aussi s'il n'y a pas assez d'ampérage?
J'utilisais 5 piles standard AA 1,5V (donc 7,5V) qui alimentaient à la fois la romeo et les moteurs (6V)
Qu'en pensez vous?
Merci
« Last Edit: January 22, 2012, 07:45:59 am by mopi » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sa y est je pense savoir d'où vient le problème.
J'ai remarqué que le moteur droit avait un gros problème. Il n'arrive pas à tourner dans 1 sens. EN l'occurence il n'arrive pas à avancer dans mon exemple. Quand je lui demande de reculer il le fait parfaitement, mais quand je lui demande d'avance il recule aussi. Le programme est juste mais la fonction droite du coup est comme la fonction reculer (vu que le moteur droit recule au lieu d'avancer) et la fonction avancer est comme la fonction tourner à droite (pour la même raison).
Je suis vraiment soulager même si je ne sais pas comment je vais procéder.
J'avais acheter le chassis dfrobot et les roues s'emboitaient mal dans le moteur j'ai du forcer c'est peut être là qu'il y a eu un problème.
Quelqu'un sait d'où çà peut venir électroniquement (si il y a trop de frottement, pic d'intensité et le moteur tourne dans l'autre sens? (je dis peut être n'importe quoi ^^)
Merci pour votre aide en tout cas
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bizarre je l'ai entièrement démonté et là je me suis dit que j'étais bête que j'avais qu'à appliquer 6v sur le moteur droite pour voir si il tournait bien dans les 2 sens (donc une fois la borne + sur la + et une fois sur la -) et oui tourne dans les 2 sens.
Je vais devoir tout recabler pour voir si çà marche comme par miracle ou sinon m'orienter vers un problème matériel de la carte pour le contrôle du moteur droit non?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yeeeeeaaaaahhhhh!!!
J'ai trouvé mon erreur   smiley
Bon je dois une explication à ceux qui m'ont aidé même si j'ai honte d'avoir perdu 4 semaines à cause d'une erreur d'1 chiffre...Hé oui!!!

Code:
const int capteurdroit = 7;

.........
.......

#define M2 7

J'avais déclaré 2 entiers sur la patte 7 de ma carte je pense que c'est ce qui fait qu'elle faisait un peu n'importe quoi non?
En tout cas j'ai mis le capteur droit sur la 8 et le gauche sur la 9 et çà marche !!!!!

Dernière question après je vous laisse tranquille:
Avec le serial monitor le robot marche à la perfection
SI je le lance dans "l’arène" et ben il répond bien quand je met ma main devant el capteur droit ou gauche mais il a tendance à tourner pour rien (pas d'obstacles). C'est assez récurrent du coup çà pose un problème pour la suite de mon projet. Et si j'ouvre le serial monitor en même temps que le robot se déplace, en effet, le robot a l’impression de détecter quelque chose alors que si je coupe l'alimentation des moteurs le serial monitor est parfait il détecte 1 obstacle que s'il y en a 1.
D'où çà peut provenir? Des erreurs du aux vibrations du sol? Çà influe sur les moteurs?

Merci beaucoup!!!!
Logged

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Ton problème commencait à devenir bizarre  smiley-lol

Encore un problème dû à la couche 9 = utilisateur  smiley-lol

Quote
D'où çà peut provenir? Des erreurs du aux vibrations du sol? Çà influe sur les moteurs?

Ce sera difficile à determiner depuis notre clavier. Il faudra que tu fasses un certain nombre de mesures et experimentations si tu veux déterminer les causes réelles. Une photo de la bête ???

Une option serait d'avoir deux confirmations avant de tourner soit à droite soit à gauche ou alors d'utiliser la logique floue pour indiquer un rapprochement, etc.
Peut être également en allongeant légerement les delaymicroseconds() qui m'ont l'air d'être au taqué.

EDIT1 : D'où çà peut provenir? --> Effet de rebond avec retard ??? --> environnement ? angle de dispertion des ondes ??

@+

Zoroastre.
« Last Edit: January 22, 2012, 05:54:09 pm by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

smiley-yell arg! l'erreur c*nne smiley-mr-green
Bon pas grave au moins maintenant c'est réglé smiley-mr-green

(note pour plus tard : vérifier systématique les define / const)
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: 1 2 [3]   Go Up
Jump to: