2

.Leg : l’Holomarcheur

Comment gérer dans une équipe lorsque certaines personnes veulent faire un robot marcheur et d’autres un robot holonome ? Chez .Leg on a trouvé la solution en créant un robot holomarcheur.

Le principe est exactement le même qu’un robot holonome, sauf que vous remplacez chaque roues par 4 pattes munie de petites roues leurs permettant de glisser en transversal. Pour l’asservissement, les moteurs qui entrainent les pattes sont équipées de codeurs et on réutilise le gyro XG1300L qui a fait ses preuve l’année dernière pour l’orientation.

Une petite vidéo des premiers mouvements du robot, ça va être fun !!

 

0

Retour d’experience sur les batteries LiFePo4

20120528-202325.jpg

L’année 2011 s’était conclue sur un aveu d’échec en ce qui concerne les batteries, nous leur avons donc cherché un remplaçant cette année. Le but était de remplacer nos vieux packs de 12 piles bâton NiMh 1,2v à 3000mAh par un système plus performant.
Les problèmes constatés sur ces batteries étaient:
- faible autonomie : 3 à 4 min de condition réelle guère plus.
- faible courant de décharge. Impossible de fournir un fort courant même pendant un temps assez court
- rapide diminution du voltage de sortie. Lors de la décharge, le voltage de sortie chute assez rapidement en dessous la valeur de départ situé à 1,2V.

Les intérêts de ces batteries restent quand même leur prix, la facilité de s’en procurer et de les recharger.

Notre attention s’est naturellement porté vers le Lipo dont de nombreuses équipes de la coupe de France se sont déjà équipées. Ces batteries ou plutôt packs de batteries sont bien connus des amateurs de modélisme qui les adoptent pour leur bon ratio poids / puissance / capacité.
En réalité deux technologies assez proches coexistent: les LiPo (lithium polymère) et Life (ou LifePo4 : lithium Fer Phosphate). Les capacités et spécifiés des deux types de batteries sont assez proches et nécessitent toutes les deux des précautions lors de la charge et la décharge.
Néanmoins les LiFe sont de par leur nature chimique plus stable et expose donc l’utilisateur à moins de risque en cas de mauvaise charge / décharge. La différence de prix étant assez faible avec les Lipo, c est ce type de batteries (les LiFe) que nous avons décidé de tester.
Pour l alimentation de nos robots le voltage maximum nécessaire est de 12V (utilisé par les moteurs de propulsion), c’est donc des packs de 4 cellules en série (4x 3,3V/cellule => 13,2V pour la batterie 4S) que nous avons cherché.
À noté qu’il est aussi possible de trouver des packs en parallèle permettant d’augmenter la capacité.
Nous avons ainsi acheté 4 packs de Life 4S1P 4200mAh Zippy Flightmax depuis le site Hobbyking, bien connu des amateurs de modélisme là encore.
Pour compléter cet achat nous nous sommes aussi procurés sur le même site 2 chargeurs adaptés à cette technologie : des Turnigy Accucel 6 de 50W.

L’utilisation de chargeurs adaptés est importante car les batteries doivent êtres chargées à un voltage précis, le voltage de chaque cellule doit être surveillé pendant la charge pour éviter les déséquilibres. Le but de l’équilibrage de la charge entre les cellules étant d’éviter qu’au cours de la charge ou de la décharge une cellule puisse se trouver au dessous ou au dessus de sa valeur critique. Ceci provoquerait des dommages sur la cellule et donc sur la batterie en général.

Dernière chose à ne pas oublier, ces batteries sont vendues avec des connecteurs spécifiques des pk 5.5 (ou polymax 5.5 selon les noms) aussi présent sur le chargeur heureusement mais malheureusement difficile à trouver pour les monter sur nos cartes de puissance. Après un peu de recherche, on parvient tout de même à en trouver sur un site français : RC-France-Modelisme

En conclusion: après une utilisation intensive durant la coupe: test toute la journée et une bonne partie de la nuit, le résultat est excellent!!! On a l’impression que les batteries ne se vident jamais. Un pack tient plusieurs heures de tests intensif ( pas en roulant en continue quand même, il faut pas exagérer). Il y a pourtant 2 moteurs MDP qui prennent un peu plus d’1A et deux servos plus les cartes de commande.

Pour la recharge, deux petites heures suffisent pour des cellules bien balancées, en mode un peu plus bourrin on peut même diviser par deux en passant sur la balance des cellules.
Le mieux, les cellules gardent le même voltage de sortie sur 90% de leur capacité.

Pour plus d infos, l excellent article de Pobot :  ou encore Wikipédia.

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.

 

1

Asservissement.net (part. 2)

Nous avons déjà vu la base de notre asservissement en .net

Voici maintenant la suite : comment intégrer ce PID dans le cadre de notre Robot, avec un asservissement en distance et en rotation.

Notre code de PID utilise des delegates pour passer les différentes valeurs et renvoyer celles de sortie. Il y a donc 6 fonctions à définir (3 par PID).

Les deux premières concernent la récupération des valeurs réelle obtenue en lisant les codeurs. Dans notre cas, nous utilisons des composants nommés LS7366 qui, de manière autonome, récupère les pas renvoyés par les codeurs. Il suffit ensuite de les interroger par SPI pour connaitre l’état des codeurs. Ce composant s’occupe de filtrer les pas dus à la vibration du robot et prend en compte correctement le sens de rotation des moteurs. Nous ferons sans doute un article à son sujet (car il le mérite).
Pour en revenir à nos deux fonctions, elles renvoient pour l’avance la moyenne du codeur droit et gauche pour l’avance et la différence entre les deux pour la rotation.

… Lire la suite

2

Asservissement.net

Comme l’a dit précédemment PAC, cette année, pour le robot métallique, tout passe par du .net. Ou plus précisément en microframework.

Tout passer en .net, ça passe également par une migration de l’asservissement en .net. A première vue, cela peut paraître dangereux, le microFramework n’étant pas un OS temps réel, cependant notre expérience positive de l’an dernier sur la partie IA, capteurs et actionneurs nous a pousser à tenter l’asservissement.

Voici déjà en introduction une petite vidéo de ce que nous avons déjà réussi à obtenir (il reste à régler les PID mais c’est un bon début).

Je passe tous les concepts classique sur les PID de robot que l’on trouve très bien présentés sur d’autres site comme le club elekRCVA ou ce très complet ppt également de RCVA. Mon objectif est de faire un asservissement en polaire donc avec un PID pour l’angle et un pour l’avance.

Pour point de départ, nous sommes partit de ce code trouvé sur codeprojet.net : http://www.codeproject.com/Articles/49548/Industrial-NET-PID-Controllers

C’était un bon point de départ avec tout de même quelques défauts (boucle infinie, tests bizares autour du terme I…)

Dans les bons points, on note l’utilisation de delegate (pointeurs sur fonction) pour passer les valeurs d’entrée et de sortie, ainsi on peut utiliser une même classe pour plusieurs PID (dans notre cas, un polaire et un en distance).

… Lire la suite

Pages ... 1 2 3 4