Premiers pas en robotique


Kits commerciaux

Il existe plusieurs kits commerciaux qui permettent l'apprentissage de la robotique. Je décrirai ici les produits offerts par trois compagnies avec des approches différentes: OWI, LEGO et Parallax.

Robots OWI

La compagnie OWI offre la possibilité d'acheter des kits permettant la construction de robots-jouets. Ces robots sont généralement peu coûteux et facile à construire. Il existe plusieurs catégories de produits présentant des niveaux de difficultés différents. Certaines catégories ne requiert aucune soudure. Ces robots sont idéaux pour les enfants en bas âges et pour ceux qui ne veulent se casser la tête.


OWI RocKit Robot

Voici une description de quelques uns de ces robots:

Bien qu'intéressant du point de vue technique, il me semble que ces robots ont leurs limites du point de vue pédagogique.

LEGO MindStorm (Robot Invention System 2.0)

Une autre approche consiste à faire la découverte de la robotique à partir des kits éducationnels LEGO MindStorms. Le ligne de produits LEGO MindStorms a été développée par des chercheurs du MIT. Le coût de ces kits est d'environ 300$.


Robotics Invention System

L'ensemble LEGO MindStorms Robotics Invention System contient un module de contrôle que l'on peut relier à un ordinateur, un environnement de programmation, deux moteurs, des engrenages, deux senseurs tactiles, un senseur de lumière et plusieurs blocs de construction.


RCX Microcomputer


Motor


Sensor

Le kit LEGO, bien qu'il semble à prime abord plus ludique qu'éducationnel permet de construire des robots très avancés. Le kit LEGO permettra de s'initier à la mécanique des robots, aux senseurs et à la programmation. J'ai été très impressionné par la qualité de ce produit. Cet ensemble comprend de nombreuses pièces, connecteurs, engrenages et roues qui peuvent être utilisés pour construire des robots originaux. Le côté mécanique de ce kit est très avancé. Le Robotics Invention Systems contient un tutoriel qui montre les fondements de la programmation pour la robotique. Le tutoriel montre de façon intéractive comment utiliser l'environnement de programmation pour construire et télécharger des programmes pour contôler la brique RCX. Jusqu'à cinq programmes peuvent être présents sur la brique RCX simultanément. Le tutoriel montre comment installer les senseurs, comment programmer des séquences de mouvements, comment utiliser les senseurs pour modifier le comportement d'un robot, ainsi de suite. L'environnement de programmation est très facile à utiliser, et offre des possibilités très intéressantes. L'image ci-bas montre un programme construit à l'aide de cet environnement. Ce programme permet à un robot de suivre une ligne noire circulaire.

Le livre d'instruction fourni avec le kit MindStorms contient plusieurs de plans pour la construction de robots originaux (robot sur roue, robot sur chenille, robot marcheur, robot qui bouge les bras et les yeux, etc...). Le livre montre aussi comment construire des structures de base comme des antennes et des pare-chocs.

D'autre part, le Web est une vaste source d'information pour les fans des LEGO MindStorms. On y trouvera plusieurs idées et astuces pour pousser les limites du kit, langages de programmation évolués (Not Quite C).

Le kit LEGO MindStorms ne demandera pas, ni n'approfondira les connaissances d'électronique. Si un de vos buts est d'approfondir vos connaissances en électronique, il faudra plutôt regarder un kit comme le Board of Education. Cependant, il n'y a pas de doute que l'ensemble LEGO MindStorms est un produit de grande qualité avec un potentiel pédagogique très intéressant.

Parallax (Board of Education/Boe-Bot)

Les kits Parallax sont des kits éducationnels qui font l'objet d'un curriculum accessible mais tout de même élaboré ciblant le groupe d'âge de 15 à 18 ans. Le curriculum est disponible en ligne sur le site de Parallax à la page Downloads of Educational Curriculum. Le "Board of Education" est l'outil principal utilisé dans le curriculum et peut être utilisé pour une foule de projets d'électronique et de robotique. Le microcntrôleur que l'on trouve sur le "Board of Education" est le BASIC Stamp. Le curriculum Parallax comprend les titres suivants: What's a microcontroller?, Robotics!, Earth Measurement, Industrial Control, Basic Analog and Digital et StampWorks). Les manuels ne sont disponibles qu'en anglais, à l'exception du manuel d'introduction aux microcontrôleurs (Qu'est-ce qu'un microcontrôleur?) qui est disponible en français.

Le "Board of Education" est disponible chez HVW Tech pour 93.95$. Il introduit les principes de la robotique. Il ne contient pas tout le nécessaire pour construire un robot, mais permet d'apprendre sur le fonctionnement des microcontrôleurs et des senseurs. Il est possible d'acheter de façon séparée le pièces et composants pour construire le Boe-Bot, compatible avec le "Board of Education" (pour 190$). Le Boe-Bot utilise le "Board of Education" comme plaque de contrôle et des senseurs de lumiére et d'infrarouge pour naviguer.


Boe-Bot

En plus du "Board of Education", il est possible de se procurer un ensemble pour créer une carte de contrôle BASIC Stamp de Parallax. Un autre produit qui offre des possibilités similaires au BASIC Stamp est le OOPic de Savage Innovations.


Il est plus aisé de construire différents robots et de développer le côté mécanique avec le kit LEGO MindStorms. Il est davantage possible d'apprendre les fondements de l'électronique avec les kits Parallax.

En résumé, l'achat de kits est la façon la plus simple de s'initier à la robotique. Par contre, l'utilisation de kits a ses limites. Je vais maintenant présenter les étapes pour bâtir son propre robot sans l'aide de kits.


Robot artisanal

Dans la présente section, je vais décrire toutes les étapes nécessaires à la conception de robots pour les personnes qui voudraient bâtir leur propre robot de façon artisanale. Cette méthode est la moins coûteuse (du moins à long terme - car le coût de démarrage n'est pas négligeable) et permet la construction de robots et circuits de forme et de fonction arbitraires. Cette méthode demande évidemment plus de temps et de patience.

Dans le texte qui suit, j'essaierai de présenter certaines approches qui permettront de diminuer le coût des projets (conception de programmateurs, utilisation d'outils de programmation tels interpréteurs et compilateurs du domaine public, etc...).

Il y a trois facettes à considérer dans la conception d'un robot:

Dans la présente page, je me concentrerai surtout sur l'aspect électronique et programmation (ma spécialité).

Première plaque de contrôle

Pour ceux qui débutent, il est souvent avantageux de tester les premiers circuits sur un plateau à douilles (voir image). Il est possible de se procurer un tel plateau dans un bon magasin de composants électronique. L'utilisation du plateau à douilles permet de concevoir un circuit rapidement sans devoir effectuer de soudures. Certains concepteurs intègre leur plaque à douilles directement dans leur robot!

Une fois le circuit testé on peut le concrétiser sur une plaque de circuit en y soudant les composants. L'image suivante nous montre à un exemple d'une telle plaque.

Il est aussi possible de concevoir le schéma de son circuit dans une application CAO et ensuite faire manifacturer sa plaque dans une compagnie spécialisée. L'image suivante nous montre la réalisation de la plaque IGORE créée par Aaron Ramsey grâce au logiciel EAGLE et manifacturée chez Olimex.


Plaque d'IGORE

Ce qu'il faut pour bâtir sa première plaque de contrôle, c'est:

De plus, si vous utilisez un compilateur ou un assembleur, il peut être avantageux d'utiliser un "bootloader" pour télécharger les programmes en ligne (voir détails plus loin).

Je recommande le microcontrôleur PIC16F877. Il possède un bon nombre de broches entrées/sorties, peut utiliser un quartz de 20 MHz, a une mémoire flash de 8 kilooctets, 2 canaux PWM, et supporte plusieurs interfaces (RS232, I2C, SPI, etc...). De plus, ce microcontrôleur est peu dispendieux.

Programmateur

Le programmateur est utilisé pour écrire de façon permanente le programme à exécuter lors du démarrage du microcontrôleur. Le programme du microcontrôleur peut être "brûlé" de façon permanente dans la mémoire EEPROM ou flash du microcontrôleur. Une fois "brûlé", même si la tension est enlevée du circuit, le microcontrôleur conservera son programme et le réexécutera lorsque la tension reviendra dans le circuit.

Il existe plusieurs types de programmateurs. Certains programmateurs permettront de programmer des microcontrôleurs de famille différente. Le fonctionnement des programmateurs est assez simple. Prenons pour exemple les microcontrôleurs à mémoire flash PIC de Microchip. Pour effacer le contenu de toute la mémoire flash, on applique un voltage élevé sur une des broches du microcontrôleur. Puis, on fait varier le voltage sur des broches spécifiques du microcontrôleur pour transférer les instructions du programme aux adresses désirées de la mémoire flash.

Il est possible d'acheter un programmateur commercial. Le coût sera d'environ 150$. Il est aussi possible de bâtir son propre programmateur pour presque rien. Il existe deux sortes de programmateur: ceux qui utilisent le port parallèle et ceux qui utilisent le port série pour programmer le microcontrôleur.

J'aime bien le programmateur de type JDM qui utilise le port série pour programmer les microcontrôleurs PIC de Microchip. Les plans de ce programmateur se trouvent sur le site Programmateur de PIC - JDM . 2. Dans le schéma présenté sur ce site, on explique comment bâtir ce programmateur pour programmer un PIC16F84. Il est facile d'ajouter le support pour des PIC de modèle différent, comme le PIC16F876 ou PIC16F876. Il s'agit d'ajouter des fils entre le connecteur du PIC16F84 et les broches correspondantes du PIC des autres modèles. Par exemple, on reliera la broche 4 (MCLR) du connecteur PIC16F84 à la broche 1 du PIC16F877. Les broches à relier sont les suivantes: Vdd, Vss, MCLR, RB6 et RB7.


Programmateur de type JDM

Un des avantages du programmateur JDM est qu'il ne requiert pas d'adapteur d'alimentation pour le mettre sous tension car il utilise la tension du port série directement.

Pour les microcontrôleurs AVR, on peut trouver les schémas de construction d'un programmateur sur le site de Peter Fleury.

Logiciel pour programmateur

Une fois que l'on possède son programmateur, il faut aussi trouvé le logiciel qui permettra de stimuler le programmateur. S'il s'agit d'un programmateur commercial, le logiciel sera fourni avec le programmateur. S'il s'agit d'un programmateur artisanal, il faudra trouver le logiciel compatible. Pour le programmateur de type JDM, il est possible d'utiliser le logiciel du domaine public IC-Prog. IC-Prog permet la programmation d'une vaste gamme de microcontrôleurs et supporte un certain nombre de programmateurs.

Le logiciel PonyProg supporte les microcontrôleurs PIC de Microchip et AVR d'Atmel.

Environnement de développement

Pour générer des programmes qui pourront être exécuter sur le microcontrôleur, il faudra se procurer un environnement de développement. Il existe plusieurs possibilités. Je recommande l'utilisation d'un interpréteur ou compilateur BASIC pour les néophytes ou l'utilisation d'un compilateur C pour ceux qui sont plus confortables avec le langage C. L'utilisation du langage assembleur est une autre possibilité mais demandera une étude approfondie de l'architecture du microntrôleur et de son jeu d'instructions.

Comme environnement BASIC, il existe deux options pour les microcontrôleurs PIC: utiliser le compilateur commercial PicBasic ou l'interpréteur du domaine public PicPuter. Dans le cas du PicPuter, il faudra d'abord "brûlé" l'interpréteur sur le microcontrôleur. Ensuite, on chargera les programmes en établissant une liaison RS232 avec le microcontrôleur et en entrant les instructions en ligne à l'aide d'une application de terminal comme HyperTerminal. Il sera aussi possible d'exécuter des commandes instantanément pour activer le signal sur les broches du microcontrôleur, afficher des résultat sur l'afficheur LCD, etc... Cet interpréteur est très intéressant.

Pour les microcontrôleurs PIC, il est possible de télécharger gratuitement l'environnement MPLAB qui comprend un gestionnaire de projet, un éditeur, un assembleur et une interface qui intègre la programmation des microcontrôleur et l'invocation de compilateur. Sans autres outils, il faudra écrire ses programmes en assembleur, ce qui n'est pas tâche facile pour les débutants.

Je connais deux compilateurs C pour les microcontrôleurs PIC: CCS et Hi-Tech PICC. CCS est plus abordable du point de vue coût et contient une bonne librairie de routines pour interfacer avec divers périphériques. Le compilateur Hi-Tech PICC est réputé pour usage industriel, mais il est dispendieux. Il existe cependant une version d'introduction gratuite (qui comprend certaines limitations) qui est un excellent choix pour des petits projets.

Pour les microcontrôleurs AVR d'Atmel, il existe un compilateur du domaine public nommé avr-gcc.

Bootloader

Afin de reprogrammer un microcontrôleur, il faut enlever le microcontrôleur de son circuit et l'insérer dans le programmateur à pour ensuite "brûler" le nouveau programme. Cette opération est fastidieuse et mène inévitablement à l'endommagement des broches du microcontrôleur. Heureusement, pour les microcontrôleurs qui possèdent assez de mémoire flash (4 kilooctets et plus), il est possible de "brûler" un programme spécial sur le microcontrôleur qu'on appelle un "bootloader" qui permettra le téléchargement en ligne de programme. Une fois ce programme installé, plus besoin d'utiliser le programmateur. Il est à noter que certains microcontrôleurs, comme le H8 Tiny de Hitachi ou le DS89C420 de Dallas Semniconductors intègrent un "bootloader" à même leur mémoire morte. Pour ces microcontrôleurs, il n'est donc pas nécessaire de se procurer un programmateur.

Composants recommendés

Conseils pratiques sur l'obtention de composants

Dernière mise-à-jour: Le 12 février 2006