[PROJ] / [REAL] Robot tondeuse

Modérateur : allinside

Avatar de l’utilisateur
mikl
Chef d'équipe
Chef d'équipe
Messages : 85
Inscription : 15 août 2008, 02:00

Re: [PROJ] / [REAL] Robot tondeuse

Message par mikl » 07 nov. 2014, 12:14

Tu habites surement près du triangle des Bermudes !

Peux tu poster ton code (la version la plus simple) je ferais des essais avec ma carte ardunio nano...

Ya pas une procédure de calibration également ?
J'ai essayé de partager le zip sur onedrive : https://onedrive.live.com/redir?resid=5 ... file%2czip
Tu devrait pouvoir le télécharger et après tu a plus qu'a l'ajouter a ta librairie et tu le retrouve dans les exemple du programme arduino, j'ai pas trouver plus simple. :ange:

Pour la calibration je ne sais pas trop, j'ai lu quelque fois que on en ferais sur certains code une via une appli sous Android connecté via Bluetooth a son arduino.
Mais les sources sont rares et pas en français :(

[flash=560,315]

:fou: :fou: :fou: pourquoi j'obtiens pas ce résultat. Chez moi il fait n'importe quoi :cry:
Le triangle des Bermudes doit être plus grand que on le croît, s'il vient jusqu'à chez moi. :lol:

Avatar de l’utilisateur
mikl
Chef d'équipe
Chef d'équipe
Messages : 85
Inscription : 15 août 2008, 02:00

Re: [PROJ] / [REAL] Robot tondeuse

Message par mikl » 07 nov. 2014, 16:25

J'ai refait des essais, toujours a l'intérieur, mais j'ai réussi a utilisé l'algorithme plus stable de la vidéo.
pour se rendre mieux compte, j'ai tracer les résultats sur papier comme une boussole:

Image
Les valeur semble fausse par rapport a une boussole mais j'ai beau secouer et faire des huit (comme pour les téléphones) je retombe quasiment sur les mêmes valeur.
Le plus étrange c'est que:
De 40° a 330°(soit 290°) le GY-80 m'affiche une valeur de 0 a 180°.
De 330 a 40° (soit 70°) le GY-80 affiche une valeur de -180° a -0°. :heink:

Je vais donc plonger dans le code pour voir ce qu'il ce passe.

Avatar de l’utilisateur
mikl
Chef d'équipe
Chef d'équipe
Messages : 85
Inscription : 15 août 2008, 02:00

Re: [PROJ] / [REAL] Robot tondeuse

Message par mikl » 30 nov. 2014, 19:53

Salut a tous, le robot a peu évolué ses derniers jours, avec ce temps c'est pas gagné pour faire des essais en plus :cry:

J'ai réussi a obtenir un résultat satisfassent avec le GY-80, grâce au code crée pour les drones, il s'appela multiwii et est compatible avec pas mal de capteur différent.
Le seul bémol c'est que il utilise une librairie très ressemblante de wire, je n'ai donc pas réussi a utilisé le i2c ni le serial pour communiquer avec l'autre arduino.
J'ai donc utilisé une sortie pwm et raccordé a une entrée analogique (en passant par des condo et résistance bien sur) pour faire communiquer les arduino.

Tout fonctionnait bien, mais lorsque j'installe tout sur le robot le GY-80 est perturber et ne pointe plu que ver une seul direction, il ne sui plu le nord :(
J'ai même essayer de l'installer sous le robot, mais rien a faire il pointe toujours ver 56°.
J'ai néanmoins remarquer que même si magnétomètre ne fonctionne pas correctement ,le reste fonctionne. Lorsque je tourne légèrement le robot la valeur augmente ou descend puis revient a 56°, ça doit être le gyroscope et l'accéléromètre qui voie que le robot tourne.

Donc pour le moment je vais me contenter de ça pour que le robot aille tout droit. Mais j'ai pas eu le temps de faire des essais réel, il fait nuit trop tôt.

En créant ma carte de gestion des batteries avec un arduino nano, j'ai fait une erreur.
Comme un arduino qui fonctionne 24h/24 peu crée des problèmes avec la fonction millis(), j'ai choisi d'utiliser l'arduino nano de la carte de gestion des batteries pour compter le temps de fonctionnement grâce a la fonction delay() et faire passer le robot en mode recherche de la station de recharge.
Vue que cette arduino nano gère aussi toute les alimentations, j'ai mis des mosfet en sortie de l'arduino, et j'ai bêtement mi un mosfet sur sortie de l'arduino qui gère le temps de fonctionnement. La sortie de la carte était donc en 7v et je lai relier a mon arduino uno :whistle:
Il a fini par déconner et une sortie est inutilisable. J'ai donc acheter un arduino mega :D , ainci je serai plu en manque de sortie.

Avatar de l’utilisateur
matthieuweb
Ingénieur
Ingénieur
Messages : 380
Inscription : 17 nov. 2009, 01:00

Re: [PROJ] / [REAL] Robot tondeuse

Message par matthieuweb » 01 déc. 2014, 18:10

Salut Mikl,

désolé je n'ai pas encore eu le temps de faire des tests avec mon GY-80.

La librairie wire, c'est le protocole one wire de chez Dallas ? La GY-80 permet cela ou c'est une bidouille logicielle ?

Fais des test sur le PC puis en approchant la carcasse de ton robot, pour voir l'influence des champs électromagnétiques / masses métalliques et aimants des moteur sur le magnétomètre...

A+

Matt

Avatar de l’utilisateur
mikl
Chef d'équipe
Chef d'équipe
Messages : 85
Inscription : 15 août 2008, 02:00

Re: [PROJ] / [REAL] Robot tondeuse

Message par mikl » 01 déc. 2014, 20:49

La librairie wire, c'est le protocole one wire de chez Dallas ? La GY-80 permet cela ou c'est une bidouille logicielle ?
Enfaite wire c'est une librairie que on utilise pour communiquer via i2c sur arduino.
Mon souci c'est que le code multiwii qui fonctionne bien pour le compas, utilise les entrée SDA et SLC de l'arduino pour communiquer avec le GY-80. Et ce sont justement ces entrée que on utilise pour le i2C.
Leur code dois fonctionné avec une librairie équivalente mais pas compatible avec wire que je dois utilisé pour transmettre les donné a l'autre arduino.
Normalement on peu communiqué avec plusieurs appareil avec le bus i2c, mais là pas moyen. :heink:

J'ai dit peut-être des bêtises, mais apparemment on peu communique seulement par i2c ou serial entre deux arduino et j'ai le même problème pour utilisé le serial.
Il faut pas oublier que il y a quelque mois j'y connaissait rien :whistle:
Fais des test sur le PC puis en approchant la carcasse de ton robot, pour voir l'influence des champs électromagnétiques / masses métalliques et aimants des moteur sur le magnétomètre...
J'ai fait pas mal de test, et le plus étrange c'est que tant que je tien le GY-80 dans les mains cela fonctionne bien, mais une foi fixé au robot(même avec des vis en plastic et tout)il pointe a droite du robots .
je l'ai fixé sous le robot, pensant que la plaque en métal sous le robot aurait coupé les champ magnétique. Mais rien a faite le résultat est le même.
J'ai fais plusieurs calibrage avec le robot entier: rotation de 360° dans chacun des 3 axe en 30 seconde (pas facile avec un robot de 18kg. :sweat: ). et le résultat est le même.
Je vais faire des essais autour du robot avec le GY-80 et arduino nano relier directement a l'ordi. ;)

Avatar de l’utilisateur
matthieuweb
Ingénieur
Ingénieur
Messages : 380
Inscription : 17 nov. 2009, 01:00

Re: [PROJ] / [REAL] Robot tondeuse

Message par matthieuweb » 03 déc. 2014, 11:44

Ok je vois,

Électriquement effectivement, il n'y a pas de soucis, mais la ton pb est que tu as 2 ardunio + la Gy80.

1 ardunio (la méga) est maitre du bus et communique avec l'autre ardunio (la nano) et cette dernière est maitre de la gy80... 2 maitres sur le bus i2c, ....c'est compliqué à gérer.

3 solutions:

L'ardunio maitre (la Méga), le devient également pour la gy80 (1 maitre, 2 esclaves) => Mais as tu assez de ROM pour que la méga pilote la GY80+ la nano ?

Ou

Tu utilises une librairie I2C logicielle sur 2 autres pattes...

Ou

Tu utilises le bus SPI ou le sérial (RS232 en TTL) entre les 2 ardunio..
Je le fais en RS232 (TTL) avec 2 PIC l'un en hardware, l'autre en software :pt1cable: , ça marche très bien mais il faut prendre ses précautions car c'est du asynchrone (attendre que l'autre PIC traite les données donc gérer des acquittement d’instructions et des trucs comme ça).

Le SPI c'est + simple, l'I²C un peu moins. Le sérial à l'avantage de pouvoir être espionné par un PC avec un port série (usb ou natif)

...En tout cas tu apprends drôlement vite :)

Si ça peut t'aider..

Avatar de l’utilisateur
mikl
Chef d'équipe
Chef d'équipe
Messages : 85
Inscription : 15 août 2008, 02:00

Re: [PROJ] / [REAL] Robot tondeuse

Message par mikl » 04 déc. 2014, 00:10

Merci matthieuweb, j'étais partie pour utilisé le i2c car on trouve facilement des tuto, mais c'est vrai que le serial est plus facile a surveiller et il est plus facile de dépanner.
Mon problème est plus d'un point de vue programmation. Sur le code que j'utilise (multiwii), dès que je veut utiliser le serial ou l'i2c le code ne ce compil pas :fou: et j'ai rien trouvé sur internet, pas typique comme problème. :pfff:

Bref pour le moment je vais me concentrer sur le reste puisque le compas fonctionne pas non plu.
J'ai fait des tests avec le Gy80 autour du robot, et il s'avère que dès que je l'approche d'un élément métallique il ignore le nord, or mon robot est quasi tout en métal.
Le Gy80 fonctionne bien au dessus du robot temps qu'il est éloignées de 5cm des métaux mais a partir de 3cm c'est mort. Sur les côté il commence être imprécis et a faire n'importe quoi a moins de 10cm.
Mais j'ai pas prévu mon robot pour installer un capteur aussi haut. :cry:

rom_007
Apprenti
Apprenti
Messages : 25
Inscription : 24 déc. 2012, 01:00

Re: [PROJ] / [REAL] Robot tondeuse

Message par rom_007 » 04 déc. 2014, 19:38

Salut,

As-tu essayer de mettre un plaque en alu ou fer doux entre le robot et l'antenne pour couper les champs magnétiques.
Le Gy80 fonctionne bien au dessus du robot temps qu'il est éloignées de 5cm des métaux mais a partir de 3cm c'est mort. Sur les côté il commence être imprécis et a faire n'importe quoi a moins de 10cm.
Tu as fait tes tests moteurs arrêtés ou en marche ?

Avatar de l’utilisateur
mikl
Chef d'équipe
Chef d'équipe
Messages : 85
Inscription : 15 août 2008, 02:00

Re: [PROJ] / [REAL] Robot tondeuse

Message par mikl » 05 déc. 2014, 00:44

Salut,

As-tu essayer de mettre un plaque en alu ou fer doux entre le robot et l'antenne pour couper les champs magnétiques.
Le Gy80 fonctionne bien au dessus du robot temps qu'il est éloignées de 5cm des métaux mais a partir de 3cm c'est mort. Sur les côté il commence être imprécis et a faire n'importe quoi a moins de 10cm.
Tu as fait tes tests moteurs arrêtés ou en marche ?
Merci de ton aide rom_007.
Au début j'ai seulement essayer de bricoler un peu en isolant le capteur du robot avec du papier alu mais c'était pas mieux.
J'ai une plaque en fer d'un millimètre sous le robot, j'ai donc aussi essayé d'installer le capteur dessous mais en vain.

J'ai fait mes tests moteur arrêter et quelques tests robot allumé mais toujours moteur éteint. Pour le moment j'ai pu seulement faire des tests en intérieur.
Les parties métallique sont reliés a la masse.

rom_007
Apprenti
Apprenti
Messages : 25
Inscription : 24 déc. 2012, 01:00

Re: [PROJ] / [REAL] Robot tondeuse

Message par rom_007 » 08 déc. 2014, 21:36

Tu utilises des moteurs à aimant permanent il vient de là ton problème, un test que tu peux vérifier avec une boussole à aiguille que tu rapproches elle va sûrement dévier.

Quand tu vas démarrer les moteurs vont générer d'autres champs magnétique à vérifier aussi.

Il faudrait peut-être un câble blindé entre le GY80 et arduino relier à la masse au châssis !

@+ rom

Répondre

Revenir à « Robotique »