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

0

Communication FEZ Domino sur le bus CAN en microframework

Carte de test du bus CAN

Premier pas dans la communication entre la carte d’asservissement et la carte mère du robot 2011, la communication sur le bus CAN (cf article sur le fonctionnement de la propulsion 2011).

Pour assurer cette bonne communication, la première étape était de réussir à faire communiquer deux cartes du même type entre elles. Possédant deux exemplaires de notre carte mère, nous cherchions à envoyer et recevoir des messages entre ces 2 cartes pour valider la bonne communication sur le port CAN.

Adapteur SOIC / DIP

Adapteur SOIC / DIP

La carte FEZ Domino comporte un controleur CAN mais pas de transceiver. Il faut donc adjoindre un transceiver CAN pour permettre à la carte de communiquer sur le bus. Nous avons commencé par tester la gamme des transceivers TI VP230. Il nous a été impossible  de trouver ce transceiver en mode DIP et avons donc été obligés de nous tourner vers un packaging SOIC souder sur un adaptateur DIP/SOIC. Le grand intérêt de la gamme TI VP230 est de fonctionner en logique 3.3V ce qui correspond à la logique de la FEZ Domino

… Lire la suite

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

2

Choix de la carte mère

.net

Cette année, l’association s’est enrichie de plusieurs membres expérimentés dans les technologies Microsoft .net.

Pour profiter de ces compétences et nous permettre de les approfondir, nous avons rapidement envisagé d’utiliser ce type de technologie dans l’une de ses versions adaptées à un usage électronique.

Dans ce domaine, deux solutions existent : les cartes Windows CE et celles MicroFramework.

Cartes Windows CE

Exemple de carte Windows CE : FriendlyArm mini 2440

Une carte embarquant Windows CE du genre FriendlyARM Mini2440 ferait l’affaire.

L’intérêt de ce genre de cartes, outre le fait de permettre la programmation avec le Compact Framework .net que je commence à maitriser (c’est un peu mon boulot…), est qu’elles présentent une grande variété d’interfaces (UART, ethernet, Carte SD, USB hote, I2C…). De plus, ce genre de plateforme propose des processeurs puissant (ARM920T de 400MHz dans le cas de la carte ci contre).

L’alimentation de la carte est simplifiée avec une seule alimentation (au lieu du port ATX nécessitant une demie douzaine de tentions d’alimentations différentes utilisé par les cartes mères standard type VIA Epia que nous avons pu utiliser par le passé).

D’un autre coté, cette plateforme impose la présence d’un OS + un framework ce qui implique des pertes de performances dans l’exécution du programme.

Enfin on peut également déplorer que le développement sur compact framework nécessite la version Professionnal de Visual Studio qui, bien que présentant un environnement de travail trés convivial et permettant le debbugage très simplement, est complètement hors budget (compter 1000€ par licence).

Cartes MicroFramework

Depuis quelques années, Microsoft s’est lancé dans un framework orienté pour l’électronique : le MicroFramework. Il est depuis devenu open source et peut être développé dans la version gratuite de Visual studio : Visual Studio Express. Ce « Framework » est en fait un CLR qui tourne sur la carte et execute le code managé, remplacant à la fois l’OS et le framework. Celui-ci est bien plus limité que le .net Framework classique mais offre un panel trés large de possibilités (gestion des entrées/sorties, Multi-threading, gestion de l’affichage, debuggage USB, nombreux driver de communication…). De plus, les cartes sont souvent moins cher que celles sous Windows CE !

Parmis les constructeurs de ce type de carte, on trouve Device Solution avec ses cartes Meridian/P ou Tahoe II, des cartes complètes proposant de nombreuses entrées/sorties, plusieurs port de communication (UART, I2C, SPI…) le tout alimenté en 5V.

D’autre part, on trouve un autre constructeur, GHI Electronic, qui sur son site Tiny CLR propose plusieurs cartes très intéressantes à partir de 35$ la carte pour la FEZ Panda, ainsi que de nombreux periphériques adaptés et leur drivers associés (et leurs sources !). Ces cartes sont pour la plupart plus petites que celles de Device Solution avec un processeur de 72Mhz permettant la communication grâce à 4 UART, un SPI, un I2C et deux CAN. Enfin, elles peuvent être alimentées avec une tension entre 5V et 12V.

Le choix

Dans le robot, nos contraintes sont les suivantes :

Carte FEZ Domino

  • Utilisation de l’I2C pour la communication avec nos divers périphériques et cartes déjà en notre possession (carte boussole, de contrôle de plusieurs servo-moteur et cartes à base de PIC)
  • Alimentation idéalement en 12V (directement sur les batteries) ou éventuellement en 5V (régulé par une autre carte)
  • Utilisation d’un port CAN pour communication avec la carte d’asservissement (offerte par Manitou et qui fera l’objet d’un prochain post)
  • Autant d’entrées/sorties que possible : même si nous aurons de toute facon d’autres cartes pour gérer certains actionneurs et capteurs du robot, il est bon de les limiter au maximum.
  • Si possible, suffisamment d’espace de stockage pour effectuer des logs.
  • Un prix aussi raisonnable que possible bien sur!

Au final, notre choix se fait donc sur la carte FEZ Domino, qui répond à tous les critères énoncés ci-dessus.

Vous aurez donc bientôt des nouvelles sur l’utilisation de cette carte ! En attendant, je vous encourage vivement à aller voir le post de Pierre Cauchois sur le sujet.

FriendlyARM Mini2440

Pages ... 1 2 3