Accueil
LE CERVEAU du ROBOT : MICROCONTROLEURS et CARTES de PC
Microcontroleurs
Le choix du cerveau du robot est important . En général on commence par utiliser un micro contrôleur pour piloter les déplacements du robot et collecter les observations des détecteurs d' obstacles.
Il y en a de toutes sortes et j' ai choisi un Basic Stamp 2 (BS2 de Parallax) qui n'est ni le seul ni le plus performant mais trés abordable pour un débutant. Il est programmable avec un langage basic accessible sans compilation. Le programme se charge trés simplement dans le contrôleur par un simple câble série (pour le montage voir par exemple le livre de Tavernier : Montages autour des basic stamp) on teste , on corrige et on réessaie (ça ne marche jamais du premier coup !). D'autre part ce contrôleur a des commandes adaptées au pilotage de servomoteurs et de détecteurs d' obstacles .Enfin il y a une communauté d'utilsateurs trés active sur internet , des tas d'exemples de programmes , des forums nombreux (notamment sur le site de Parallax).
Parmi les autres microcontroleurs: on peut citer les PIC de Microchip , les AVR Atmel et le Propeller de Parallax.
Depuis quelques mois nous avons remplacé progressivement nos Basic stamp par des Propeller car ces micrcontroleurs : gérent 8 taches en paralléle , sans avoir a gérer les interruptions, programmables en langage Spin ils devraient bientot bénéficier d'un compilateur C.
Connection a un ordinateur
On découvre rapidement que le microcontroleur est précieux pour commander assez directement des moteurs ou récolter les renseignements de détecteurs mais dés qu'il faut mémoriser, calculer, avoir une stratégie, traiter des images , il faut qu'il soit supervisé par un véritable ordinateur.
Généralement les commandes sont échangées par le port série (dit encore RS232) de l'ordinateur (pour les PC récents qui n'ont plus que des prises USB ! utiliser un cable USB/série, vendu dans les magasins d'informatique). Si le robot embarque une carte de PC on peut passer à une liaison par réseau wifi.
Dans un ordinateur qui commande à distance il faut au moins deux types de fonctions:
- des fonctions de communication au travers du port série , pour que l'ordinateur envoie des ordres de déplacement et recueille les données des détecteurs du robot
- des fonctions de contrôle des déplacements du robot:
- au niveau le plus simple pour faire: avancer, reculer, tourner à droite ou a gauche, stopper.
- puis : mémoriser des parcours , se sortir de situations de blocage, etc
- différents outils intallés sur le PC (tableurs, analyseurs d'images) peuvent élargir les possibilités, mais une partie du travail est fait grâce a des fonctions écrites par les utilisateurs . Programmer dans tel ou tel langage dépend de ses performances , mais surtout des habitudes du programmeur. Les langages C et Java sont les plus utilisés , mais comme je ne suis pas professionnel j'écrivais plutôt des fonctions en Visual Basic 2005. En fait aprés avoir essayé le C# j'estime que c'est le mieux adapté car: la version Express est chargeable gratuitement sur le site de Microsoft , on retrouve les fonctions du genre du Java mais la mise en oeuvre est bien plus facile , une fonction <Serialports > efficace pour gérer les liaisons avec le robot, la gestion d'événements ou de plusieurs taches en paralléle possible, enfin il y a pas mal d'exemples d'utilisations sur Internet.
- il faut signaler de bons exemples de programmes en langage C plus classique sur le site des Fribottes et des exemples en Java dans le livre de S.Preston "Building Java Robots"
Windows ou linux sur votre PC?
- beaucoup de roboticiens amateurs utilisent un ordinateur sous linux (variante gratuite d'Unix) .Parmi ses avantages : des programmes nombreux (généralement en C) et gratuits , des ports série qu'on ouvre comme de simples fichiers..
- pour les inconvénients de linux : une certaine complexité et surtout sous linux on ne peut disposer de nombreux programmes , outils, drivers de périphériques disponibles sous Windows : j'ai eu l'impression dêtre obligé d'investir trop de temps pour aboutir parfois a un impasse avec linux..Cest ce dernier point qui m'a faire revenir a Windows aprés un passage dans le monde linux.
- donc choisir c'est une affaire de philosophie ,de collaborations avec d'autres utilisateurs, et surtout de pratique habituelle avec l'un ou l'autre systéme: il ne faut surtout pas en changer pour faire des robots.
- cela dit les programmes en C restent les mêmes ou presque (sauf le graphisme) quelque soit le systéme Unix ou Windows