5

LS7366 : Compter les pas des codeurs

LS7366

Dans le robot 2011 nous avions décidé d’utiliser des LS8074N pour s’interfacer entre les codeurs et la carte d’asservissement. J’avais d’ailleurs fait un article léger l’année dernière sur ce composant que vous pouvez retrouver ici.

L’utilisation de composant nous a finalement posé bien des problèmes l’année dernière. La problèmatique rencontrée était de réussir à détecter les changements d’états sur la patte compteur du composant. En effet celle-ci suit la vitesse de changement d’état imposée par la CLK qui ne peut pas être supérieure à 30µs. Malheureusement ces changements d’états trop rapides (>33kHz)  étaient indétectable par la carte d’asservissement.  Rappelons quand meme que la fréquence max des impulsion des codeurs de notre robot ne dépasse pas les 5 kHz (1 tour  de roue de codeur par seconde soit 4096 pas par seconde).

L’objectif de cette année était donc de trouver un nouveau composant permettant de compter les pas de nos codeurs et s’interfacant avec notre carte d’asservissement de 2012. Nous nous sommes naturellment tournés vers un autre composant de chez LSI/CSI, le LS7366.

Les avantages de ce composant sur le LS7084N sont nombreux:

  • C’est un compteur, c’est à dire qu’il possède des registres internes permettant de stocker un nombre de pas entre deux interrogations jusqu’a 32 bits en positif ou négatif (soit plus de 2 milliards).
  • Il est inerrogeable à travers un protocol SPI et ne nécessite donc pas de port d’interruption ni d’entrées tout ou rien à vérifier régulièrement.
  • De nombreux modes de fonctionnement pour paramétrables (compteur modulo N, utilisation de l’index du codeur,…)
Il conserve les avantages déjà présents dans le LS7084N de 2011:
  • Détection du sens
  • Décodage en quadrature x1, x2 et x4
  • Filtrage du signal…
Voici ci-dessous un exemple de notre carte de codeurs qui met 2 LS7366 (1 par codeur) commandé par le même SPI.

 

0

La propulsion du robot 2011

6

Je vais essayer de présenter en quelques lignes le fonctionnement global du robot 2011 tel qu’il est prévu à l’étape ou nous en sommes. Pour l’instant la majorité des choix technologiques et solutions techniques sont faits. Des portes vers certaines solutions mécaniques sont encore ouvertes mais les grandes lignes sont fixées.

Comme Paul l’a présenté dans un article précédent, nous avons prévu l’ensemble de la solution électronique du robot 2011 autour de 2 axes :

  • L’utilisation du micro Framework .net
  • L’utilisation de la carte ESX-IOX (STW) de notre sponsor Manitou

Je vous renvoie à l’article sur le choix de la carte mère qui détaille les raisons qui nous ont poussées à choisir la carte FEZ Domino comme carte micro Framework .net

… Lire la suite

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

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 !!!