0

Asservissement Etape 2 : Controle de distance sur les 2 roues

Relais C.I. 12V 2RT 8A HF115F

Rappel de l’étape précédente : le robot avancait dans une seule direction, le déplacement était « surveillé » par un codeur sur une seule des roues.

Les nouveautés

Nouvelle étape dans l’asservissement : le robot peut se déplacer avec un controle des pas sur les 2 roues et changement de sens de rotation grace a un relai commandé par la carte d’asservissement (ESX-IOX).

Pour cela nous avons travaillé sur la création de petites cartes de prototype reliant les sorties des codeurs vers les entrées de la carte d’asservissement ainsi que leur alimentation en provenance du 5V de la carte mère. Une deuxième carte permet de rendre plus distribuer les alimentations à chaque carte et de mettre en commun les masses. On évite donc l’amas de pince crocodile de la première étape.
Un relai inverseur a aussi été ajouté entre la sortie PWM de la carte d’asservissement et un des moteurs pour controler son sens de rotation. La commande du relai est faite par une sortie numérique de la carte d’asservissement. Lors de la prochaine étape, on fera la meme chose pour l’autre moteur dès réception du deuxième relai.
1

Utilisation des données en provenance des codeurs avec un LS7084 ou LS7083

screenshot.22.png

L’information en provenance des codeurs est fournie sur 3 signaux dont 2 réellement utiles (le troisième signal étant déduit par le codeur depuis les 2 premiers). L’utilisation des créneaux fournis par un des signaux permet déjà d’avoir une première information sur l’évolution du cycle moteur. Cependant il est indispensable d’étudier les 2 signaux pour connaitre le sens de rotation du moteur (par simple observation du premier front montant entre le signal A et B).

C’est le rôle du LS7084N (http://www.lsicsi.com/pdfs/Data_Sheets/LS7083N_LS7084N.pdf) de LSICSI qui reçoit en entrée le signal A et B et ressort en sortie deux signaux l’un étant un créneau « mixant » les créneaux des entrées A et B et l’autre une indication sur le sens de rotation des moteurs. Il est de plus possible de paramétrer le mode « mixage » des signaux A et B pour récupérer un coefficient multiplicateur entre x1, x2 et x4 entre le nombre de créneau sur une des voies d’entrées A ou B et la sortie.

Le schéma ci-dessous décrit les différents créneaux de sortie (CLK) suivant le mode de multiplication choisi.

screenshot.21

LS7084N Output

Ainsi, chaque codeur est relié à un LS7084N qui est lui-même relié à 2 entrées numériques de la carte d’asservissement. Chaque CLK est relié sur une entrée Fréquence de la carte d’asservissement et les UP/DN sont reliées sur des entrées numériques de la carte d’asservissement. Le paramétrage du mode est fait par une liaison directe au 12V qui permet de sélectionner le mode x4 en continue.

0

Gestion des sources

CodexPlex Logo

Les premières lignes de code sont en train d’être produites. Au programme :  test du bus CAN entre la carte d’asservissement : l’IOX et la carte mère une GHI FEZ Domino. Pour faciliter notre travail en interne, nous avons décidé d’utiliser Codeplex comme gestionnaire de source. Les avantages sont multiples : Gestion de multitples projets, Sauvegarde du source code, référentiel de version pour l’ensemble de l’équipe,… bref tous les avantages d’un serveur de gestion de source. Pour ceux qui veulent en savoir plus sur cette fonction, je vous renvoi vers cet article sur la gestion de sources.

Sans plus de bavardage, vous pouvez vous rendre sur : http://mlrobotic.codeplex.com/ qui contiendra petit à l’ensemble du code nécessaire au projet. Pour l’instant seul quelques exemples de code micro framework sont présents mais tout cela va s’enrichir dans les prochaines semaines.

Astuce : Pour ceux qui essayent d’utiliser Codeplex directement dans Visual Studio (ce qui est mon cas) il y a une astuce qui évite de ressaisir le mot de pass de connexion à Codeplex à chaque ouverture du projet. Différents articles décrivent déjà la solution pour Windows 7/Vista ou Windows XP

0

Premiers tours de roue

Voici les images des premiers tours de roue réalisés hier soir par la base roulante. Ca semble un peu bancal car pour l’instant, il n’y a pas d’asservissement et un seul des deux codeurs était connecté. Mais les premiers résultats sont là : on maitrise le nombre de tours de roue là ou le codeur est relié.

La carte d’asservissemement sert de carte d’alimentation à la carte mère dans cet exemple. Cette dernière étant uniquement utilisé ensuite comme réducteur 12V / 5V pour alimenter les codeurs.

Prochaine étape, ranger un peu les cables, faire des branchements plus propres et démarrage des essais d’asservissement !!!

5

La carte FEZ Domino

FEZ

Comme présenté dans mon dernier post, notre choix s’est posé sur la carte microframework FEZ Domino de GHI Electronique, voici donc une description plus complète de celle-ci.

La carte FEZ Domino

Puissance

La carte s’alimente soit en 5V, soit en 7 à 12V. Dans notre cas ce sera du 12V soit la tension d’alimentation fournie par nos batteries.

La carte permet ensuite de fournir une sortie en 5V stabilisée et une autre en 3.3V.

Attention toutefois, bien qu’aucune indication dans les datasheets n’indique le courant maximum en sortie, ces sorties ne sont pas à utiliser pour la puissance (pas de moteur, actionneur, etc.). Ces tentions sont toutefois idéales pour alimenter des capteurs (suiveurs de lignes, télémetres, capteurs à languette…) ou autres LEDs ou ecran LCD.

Bus et ports

La carte offre un grands nombre de protocoles de communication : 3 UART, 1 USB Hôte, 2 SPI, un bus I2C et un CAN.

Dans notre cas, nous utiliserons l’I2C, le CAN (pour communication avec la carte d’asservissement).

L’UART et l’USB Hôte seront éventuellement envisagés en fonction des besoins, en revanche le SPI sera probablement laissé de coté à cause du nombre important d’entrées/sorties qu’il utilise (deux pins pour le bus plus un pin par périphérique contrôlé).

Autres pins

Si on lit la datasheet, on trouve que la carte présente 30 entrées/sorties dont 6 sorties PWM, 6 entrées analogiques et une entrée analogique.

En réalité, ceci est a relativiser avec l’utilisation des ports décris ci-dessus. En effet, les pins sont souvent utilisables soit en tant que bus/port soit en tant qu’entrée/sortie.

L’utilisation du BUS CAN empèche par exemple l’usage de deux des entrées/sorties. Il faudra donc plutôt compter sur une vingtaine d’entrées/sorties.

Enfin, une grande partie des pins peuvent servir d’entrée sous forme d’interruption (le logiciel exécute un morceau de code au moment ou le pin passe a l’état 1) ce qui pourra être bien utile dans nos logiciels.

Autres

Cette carte permet enfin l’usage d’une carte micro SD ce qui pourra être utile pour le log d’information et l’étude ultérieure du comportement du robot.

Concernant la consommation de la carte, compter 110mA ce qui reste très faible en comparaison de la consommation d’un moteur ou autre actionneur.

Pour en apprendre plus sur cette carte, vous trouverez une description succincte ici et une plus complète là.

Pages ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19