Go Down

Topic: codeur incrémental (Read 2 times) previous topic - next topic

hussa

Bonjour à tous ,

je tiens à préciser que je suis débutant en robotique :-[.je travaille sur un projet de guidage de robot  avec deux moteur DC (24v ) et une duelmilanove. pour connaitre leurs vitesse je dois insérer des codeurs incrémental (pour avoir un contrôle précis).Mon souci c'est que je ne sais pas comment faire le choix de ces codeurs ? ou les commander et quels sont les critères pour avoir des codeur compatible .

Merci d'avance, et dsl pour ces questions de débutant.
Bonne journée .

Luj06

Quel est ton moteur ? Il n'y a pas de codeur dessus ? Je sais que Philips fait des codeurs pour moteur (on en trouve chez Farnell par exemple).

Nous avons choisi d'équiper notre robot d'encodeurs indépendant des moteurs (sur des roues folles) pour calculer la position par odométrie. C'est un peu différent mais le choix des codeurs est proche.

Mon conseil est de ne pas considérer la précision souhaitée, mais la vitesse d'acquisition possible. Est-ce que la carte Arduino devra faire autre chose en plus de compter les pas des moteurs ? Est-ce que tu souhaites faire un asservissement en vitesse ou également estimer la position du robot ?

Plus il y aura de fonctionnalités dans la même carte, moins il y aura de temps pour faire les traitements, et plus la fréquence d'acquisition descendra... donc la précision aussi, car il ne faudrait pas être obligé de ralentir les moteurs parce qu'on n'arrive pas à contrôler l'ensemble. Or c'est souvent ce qui arrive ! Certains arriveront à utiliser des codeurs à 1000 pas par tour, d'autres seulement 2 pas par tour.

N'hésites pas à faire un petit fichier Excel avec les formules de calcul pour : vitesse du moteur, vitesse du robot, nombre de pas par tour à cette vitesse, fréquence d'acquisition du codeur (1 signal par pas ou 2 ou 4 ?), temps de calcul disponible entre deux signaux, temps nécessaire pour faire un calcul, fréquence de calcul (toutes les secondes, toutes les 20 millisecondes, tous les 100 pas reçus ?)

hussa

merci de ta réponse.
Quel est ton moteur ? moto-réducteur (cc) 24v et du coup pour le codeur il m'en faut un que je peux mettre à l'arrière coté  moteur. d'une part  pour avoir plus de vitesse( = plus de précision)et d'autre part parce que le coté réducteur et relié avec une roue.  
Est-ce que tu souhaites faire un asservissement en vitesse ou également estimer la position du robot ?
En effet il a été constaté que les moteurs tournaient plus vite l'un par rapport à l'autre pour une même tension à ses bornes, ce qui provoque un problème de dérive du robot. Il est donc nécessaire de placer des codeurs rotatifs incrémentaux sur chaque roue, ce qui nous permet de contrôler les moteurs en vitesse.

encore merci.


Hexa Emails

j'ai moi aussi le problème de moteurs plus rapides que l'autre, qui entraîne une dérive. Sauf que moi ce sont des moteurs beaucoup plus petits, et je compte simplement corriger par MLI par tâtonnements. Car je me vois mal utiliser l'arduino pour asservir ET faire les autres fonctionnalitées ( évitement d'obstacles etc) donc je préfère gérer "l'égalité" des moteurs à part.
J'apprends tous les jours!

hussa

bonjour,
j'ai trouvé cela http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=516-2030-ND vous en pensez quoi??

merci d'avance.

Luj06

Oui c'est exactement ça, HEDS d'Avago.

L'idéal pour toi serait :

- quadrature incremental avec index (signal spécifique pour un tour)
- alimentation 5 volts
- open center (+ diamètre de ton moteur)

Mais ça coûte quand même 40 euros + il faut faire la mécanique de montage. A ce prix-là, on trouve des moteurs équipés de leur propre encodeur : http://www.gotronic.fr/catalog/robotique/reducteurs.htm#01592

Je conseille d'ailleurs le kit complet avec la carte MD23.

hussa

oui merci pour ta réponse . tu peux m'envoyer le liens de celui que tu me conseil de prendre (celui a 40euro). :-/
je peux pas prendre le kit complet vu que je dispose de plusieurs moteur de ce type.
ce ci dit je reste ouvert à toute autre proposition!

hussa

Bonjour, et bon début de semaine a tous,

voila j'ai trouvé cela et je ne sais pas si sa peux me servir comme codeur ?

http://fr.rs-online.com/web/6666482.html?cm_mmc=Google-_-EEM-MPN-_-GP1A52LRJ00F-_-Line-Level&gclid=CIPknPH8hKUCFZ392AodZhnaPQ#


merci  .

Luj06

Oui si tu arrives à faire la méca pour le fixer à une roue sur l'axe

hussa

pour la méca il n'y a pas de soucis . juste une question par rapport au schema. si on regarde la datasheet  http://docs-europe.origin.electrocomponents.com/webdocs/0d1b/0900766b80d1bd99.pdf  on remarque il ya de input curent (50mA sur le 1er tableau et 5 mA sur le 2éme) . vu qu'on dispose d'une sortie 5V sur la carte arduino je compte m'en servir pour alimenter le vcc qui est de 5V et aussi pour la diode ( 1.1V d'apres la data sheet) . donc pour cela je doit faire un schema et intégré une résistance .  la question c'est que je ne peut pas connaitre la valeur de cette résistance si je n'ai pas le courant ?
dites moi si je me trompe   V diode = U - Vr = 5 -1.1 = 3.9
aussi R= Vr/I

donc c'est le I que je ne connais pas .

merci .

Hexa Emails

le raisonnement est bon, tu limites ton courant à 20mA par exemple, ce qui donne 3.9/20E-03=195[ch937]. après t'as une certaine marge de man?uvre, regarde les spécifications de ta LED pour voir quel est le courant max, et si tu n'as pas besoin de trop d'intensité lumineuse quelques mA peuvent suffire...
J'apprends tous les jours!

hussa

merci .
est ce qu'il existe une lib encoder.h?

Go Up