Go Down

Topic: Capteur de position (Read 2919 times) previous topic - next topic

Pontex

Feb 01, 2010, 05:18 pm Last Edit: Feb 01, 2010, 05:23 pm by pontex Reason: 1
Bonjour à tous,

Étant nouveau dans le domaine de la robotique j'ai quelques questions, surement très bêtes, à vous poser.

Je possède une carte Arduino USB + un châssis avec chenille (lien1) + module ultrason.
J'aimerai faire un robot qui se déplace en ligne droite jusqu'à détecter un obstacle, tourne à 90° a droite, tourne à 90°, puis en fonction de la plus grande distance mesurée à gauche ou a droite, part du côté ou il y a le plus de place.

Je ne voulais pas utiliser un servo moteur mais bel et bien le chassis de mon robot pour orienter le capteur de distance (placé à l'avant du robot) vers la gauche ou vers la droite.

Je n'ai pas encore monté tout cela mais je me pose la question de savoir que si je programme le changement de direction juste avec des tempo, il est possible que je ne sois pas toujours avec le même angle à gauche ou a droite.

Je pense qu'il sera donc utile de savoir dans quelle position était mes roues et savoir combien de tour elles ont fait.
Je n'ai pas beaucoup de place dans le chassis pour mettre une roue odométrique mais par contre les pignons de la propulsion sont percés à un endroit.

Je me demandais donc si un capteur du type IR (lien2) pouvait faire l'affaire.
Quand le pignon est plein, le faisceau ne passe pas, quand le trou passe en face du capteur, ca m'envoie un signal.

Est ce que cela vous semble cohérent et si oui est ce que ce type de capteur peut être branché directement sur l'arduino? Comment on le gère, est ce simple à programmer ?

Avez vous d'autre solution pour capter la position d'un pignon pour pas chère ?

Pontex

lien1 : http://www.robotshop.ca/base-mobile-chenilles-dfrobot-1.html
lien2 : http://www.robotshop.ca/interrupteur-infrarouge-gp1a57hrj00f-sfe-1.html

PS: J'aurais bien aimé commandé chez Go Tronic car j'ai déjà un L293D à acheter pour mes moteurs et ça me fait râler d'avoir plus de frais de port que de composants... Donc si vous avez le même type de capteur (ou quelque chose qui pourrait faire l'affaire) chez eux, je suis preneur.


fdufnews

En recyclant une vieille souris d'avant les souris optiques. Tu as le capteur et le circuit qui compte les impulsions.
Pour la connexion à l'arduino, il y a des exemples sur le playground http://www.arduino.cc/playground/ComponentLib/Ps2mouse

Pontex

Merci pour ta réponse rapide.
Le problème est que je n'ai pas de vieille souris sous la main  :(

Comment se branche le capteur du lien 2 ? Il faut d'autre composant ou il agit comme un intérupteur : j'envoi du 5V dedant par exemple et si il y a le faisceau je récupère mon 5V derrière et si il n'y est pas 0 ?

fdufnews

Si tu te reportes à la fiche technique dont le lien se trouve sur le site de lien2 tu vois qu'il faut connecter:
1 et 5 à la masse
2 au +5V à travers une résistance (de l'ordre de 470 Ohms)
3 au +5V
4 sur une entrée de l'arduino

Tu récupère un 0 lorsque le faisceau est coupé

B@tto

Cette solution n'est-elle pas envisageable ?  http://www.sparkfun.com/commerce/product_info.php?products_id=7915

Si je me trompe pas, bien que plus chere, cette solution pourrait te convenir parfaitement ...
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Jean-François

Batto, pourquoi un magnétomètre ?
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

B@tto

#7
Feb 03, 2010, 02:59 pm Last Edit: Feb 03, 2010, 03:02 pm by B@tto Reason: 1
Compass = compas et non magnétomètre  ;) comme ça tu disposeras d'un capteur capable de te donner la direction de ton engin. Cette solution en plus te permet de rester completement indépendant des autres composants moteur (exemple : si tes moteurs commencent à fatiguer, ils ne tourneront plus à la même vitesse et tu devras tout réajuster ...). La précision me semble correcte, il faudra juste se méfier du temps de réaction mais si c'est le même que l'iphone pas de soucis  ;D

EDIT : bin tiens, sur le lien ya aussi de la doc et devine quoi ??  :) http://lusorobotica.com/index.php/topic,36.0.html (bon c'est en espagnol mais google traduction est ton ami)
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Jean-François

#8
Feb 03, 2010, 03:33 pm Last Edit: Feb 03, 2010, 03:41 pm by jfs Reason: 1
Compass en anglais = boussole en français.... ceci est un magnétomètre, qui mesure la position par rapport au pôle nord magnétique, donc une position par rapport à une direction, mais pas une position absolue.

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

B@tto

Un compas et une boussole c'est la même chose ... et ce n'est pas un magnétomètre : http://fr.wikipedia.org/wiki/Magn%C3%A9tom%C3%A8tre

Donc ce module est bel et bien un compas qui indique le nord magnétique. Donc quand ton robot arrive à un obstacle, il mesure la direction. Ensuite tu n'as qu'à faire pivoter ton robot jusqu'a ce que la difference de mesure du compas correspond à 90° et le tour est joué. Qu'importe la direction dans l'absolu, c'est la difference de direction qui doit être égale à 90°.
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Jean-François

#10
Feb 03, 2010, 03:47 pm Last Edit: Feb 03, 2010, 03:51 pm by jfs Reason: 1
Je cite ton lien wikipédia :

[edit]Un magnétomètre est un appareil qui sert à mesurer l'aimantation d'un système[/edit]

La Terre est un système magnétique... dont on mesure le champ ou la direction de ce dernier avec... un magnétomètre.

et dans la datasheet :

[edit]EE Address (hex) Byte Description Factory Default
00 I2C Slave Address 42(hex)
01 Magnetometer X Offset MSB factory test value
02 Magnetometer X Offset LSB factory test value
03 Magnetometer Y Offset MSB factory test value
04 Magnetometer Y Offset LSB factory test value
05 Time Delay (0 - 255  ms) 01(hex)
06 Number of Summed measurements(1-16) 04(hex)
07 Software Version Number > 01(hex)
08 Operation Mode Byte 50(hex)

[/edit]

Il s'agit bien d'un magnétomètre 2 axes.

Par contre tu as répondu à ma question sur la raison d'utiliser cet "appareil" et c'est ce que je te demandais  ;)
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

B@tto

En fait c'est un peu plus compliqué que ça il me semble : il y a effectivement deux magnétomètres (deux magno-résistances pour être plus précis) qui permettent de déduire la direction et forme ainsi une boussole, d'où les magnometer X et Y. M'enfin on s'est compris tous les deux et c'est ça le plus important  :D

Tu comptes utiliser cette solution au final alors ?
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Pontex

Ben j'avais pas pensé à ça mais ça m'a l'air pas mal. Par contre est-ce compliqué à programmer ?

Pour le capteur en liens 2, j'ai dans l'un de mes pignons 1 trou. Ce pignon fait environ 4 tour pour un tour de roue qui entraine ma chenille. Je ne vois pas le problème si les moteurs sont fatigués ou non.
Je comptais incrémenter un compteur à chaque fois que le capteur est en position fermée (que le faisceau puisse traverser le trou) Une fois mon compteur arrivé à X, je coupe mes moteurs.

Aurez tu un lien vers ce même type de capteur sur robotshop, tant qu'à faire je préfère commander tout au même endroit.

Autre question:
Quel est la différence entre une carte du type : http://www.robotshop.ca/controleur-deux-moteurs-2a-48-46-dfrobot.html et un simple composant style le L293D du tuto de pobot : http://www.pobot.org/Controleur-simple-d-un-moteur.html
Qu'est ce que j'ai en plus ? Est-ce qu'il faut prévoir des condo ou résistance supplémentaire si j'utilise seulement le L293D ou non ?

PS: Pour le liens vers robot shop, je prends aussi un lien vers un contrôleur de moteur sur sparkfunk, je ne sais pas où il faut mieux commander pour avoir le rapport prix (frais de port inclus)/délais de livraison le meilleur

Jean-François

La proposition de Batto est mieux que de capter la rotation des moteurs, imaginons que tes chenilles ne soient pas sur le même type de sol et que l'une d'elle patine, tu n'auras pas fait une rotation qui t'amènes à 90[ch730].
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

B@tto

En fait tu y gagne sur à peu près tous les plans vu qu'en plus tu auras une meilleure résolution (0.5° annoncé). Mais après c'est 30$ ... ta solution te coutera presque rien il me semble. Ca dépend de ton budget et de ce que tu veux réellement obtenir : est-ce que tu tiens absolument à ce que ton robot fasse exactement 90° ou bien est-ce que s'il fait un coup 100° et un autre 80° ça va réellement gêner.

Bref la seule inconnue qui reste c'est toi ^^
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Go Up