Contrôleur de servomoteurs FPGA sur plate-forme Armadeus

Dans le troisième numéro d’Open Silicium qui est paru le 15 juillet 2011, Yvan Roch publie deux articles sur un projet complet de contrôleur de servomoteurs (servos R/C) basé sur un système embarqué GNU/Linux Armadeus et son FPGA.

La robotique expérimentale utilise souvent comme actionneurs des servomoteurs de radiocommande en grand nombre. Leur pilotage demande la génération d’autant de signaux temporellement précis et synchrones.
Même si les systèmes embarqués disposent aujourd’hui d’une puissance de calcul impressionnante, elle n’est pas suffisante pour produire des signaux de commandes ayant ces caractéristiques à cause des problèmes de latences du système d’exploitation.
Seule une alternative matérielle peut y pallier. Le FPGA est la solution disponible aujourd’hui, polyvalente et facilement accessible.
Le projet proposé ici permet de commander jusqu’à 32 servomoteurs de radiocommande avec un système embarqué Armadeus : la puissance d’un ARM9 sous GNU/Linux alliée à celle d’un FPGA.

Téléchargement de l’archive originale du projet: fpga-servo-controller-00.00.01.tgz

Par soucis de partage de connaissances et de contribution, le code est sous licence GPL et les articles sont sous licence Creative Common BY-NC-ND 2.0. Il sont accessibles sur UnixGarden, le site éditorial des Éditions Diamond, aux URL suivantes:

Correctifs et améliorations

Une nouvelle version de l’archive du projet vient d’être publiée contenant les améliorations et correctifs suivants:

  • Support du BSP Armadeus 5.0.
  • Support des noyaux Linux 2.6.29.6 et 2.6.38.8.
  • Contrôle des servos 24 à 31 dans le serveur de commandes.
  • Contrôle des servos 24 à 31 dans la GUI.
  • Ajout des fichiers Eagle de l’interface de commande (schéma et circuit imprimé).
  • Ajout des fichiers Gerber de l’interface de commande pour une réalisation du circuit imprimé par un professionnel du PCB.
  • Correction d’un bug d’activation des servos 16 à 31 dans le driver servo.
  • Correction d’un bug d’activation du servo 20 dans la GUI.

Téléchargement de la nouvelle version: fpga-servo-controller-00.00.02.tgz