Anatomie d'un robot


Qu'est-ce qu'un robot? Un robot est un système composé de pièces mécaniques, de composants électroniques et électriques qui remplit un ensemble de fonctions spécialisées. Le contrôle du robot s'effectue par le biais de circuits électriques et électroniques qui opèrent des variations de courant et de voltage de façon à d'obtenir un comportement donné.

A la base, un robot peut être conçu à l'aide de composants électroniques de base, tels résistances, condensateurs et transistors. Cependant, il existe plusieurs circuits intégrés spécialisés qui facilitent la conception de robots (portes logiques, mémoire, microcontrôleurs, interface pour afficheur LCD, amplificateurs opérationnels, minuterie, etc...).

Etude d'un robot simple: Bobette

Prenons pour exemple Bobette, un des robots que j'ai conçu. Ce robot peut se promener dans un environnement arbitraire à la recherche de chandelles allumées.


Bobette

Ce robot comporte un chassis, un système de locomotion, un ensemble de senseurs et un ensemble de circuits électroniques qui permettent l'analyse des données fournies par les senseurs et le contrôle des périphériques (moteurs, afficheur LCD, etc...).

Le cerveau de Bobette est son microcontrôleur. Le microcontrôleur est un circuit intégré apparenté au microprocesseur que l'on retrouve dans les ordinateurs. Tout comme le microprocesseur, ce circuit intétégré est très versatile et car il permet l'exécution de séquences d'instructions arbitraires. Il existe cependant des différences entre les deux types de circuits intégrés qui rendent les microcontrôleurs attrayants pour la robotique. Les microcontrôleurs possèdent certaines fonctions que l'on ne retrouve pas sur les microprocesseurs les plus communs, comme de la mémoire "flash" pour emmagasiner des programmes, certaines fonctions spécialisées permettant le contrôle de moteurs, la conversion analogue-digitale, des fonctions de liaison RS232, I2C, etc... Lorsqu'un microprocesseur est utilisé, on doit souvent effectuer ces fonctions sur des circuits intégrés externes ce qui augmente la complexité du circuit de contrôle. Il est aussi souvent nécessire d'ajouter un bus d'adresses et de données.

La beauté du microcontrôleur réside dans sa capacité d'exécuter des programmes très variés que l'on taille sur mesure selon les besoins de l'application.

Les microntrôleurs ne sont habituellement pas très avancés au niveau des calculs arithmétiques. En général, les microcontrôleurs sont beaucoup moins rapides que les microprocesseurs car les fonctions qu'ils effectuent ne demandent pas beaucoup de temps de calcul. Il faut aussi comprendre que la taille de la mémoire vive et de la mémoire "flash" est habituellement limitée. Par exemple, la mémoire vive d'un microcontrôleur Microchip PIC16F877 est de 368 octets. Oui, vous avez bien lus, on ne parle pas de megaoctets ici, ni même de kilooctets! La taille des programmes que l'on peut emmagasiner sur un microcontrôleur se mesure en kilooctet (typiquement entre un et 64 kilooctets). Il faut donc écrire des programmes très concis.

Bâtir un robot dont le coeur du contrôle se fait à l'aide d'un microcontrôleur ne demande donc pas une architecture complexe. Un tel robot peut généralement être construit à l'aide de quelques résistances, condensateurs et circuits intégrés. Le tableau suivant décrit les circuits intégrés utilisés sur Bobette.

PIC16F877 Microcontrôleur PIC16F877: Ce microcontrôleur est le coeur du robot. C'est lui qui contrôle le comportement du robot.
7805 Régulateur de voltage 7805: Ce circuit intégré permet d'assurer une source de voltage constante de 5V aux composants qui requièrent un voltage fixe.
L293D Circuit intégré L293D: Ce circuit intégré de type pont H quadruple utilise les entrées du microcontrôleur pour faire fonctionner les deux moteurs du système de locomotion.
74LS05 Sextuple inverseur: Ce circuit intégré permet d'inverser un bit en entrée et est utilisé pour réduire le nombre de broches nécessaires pour le contrôle de direction des moteurs.
LM741 Amplificateur opérationnel LM741: Cet amplificateur opérationnel a plusieurs applications. Il permet de comparer deux sources de voltage analogues (par exemple pour déterminer laquelle de deux températures est la plus éleveée) ou d'amplifier un signal, par exemple un signal sonore.
LM567 Décodeur de fréquence LM567: Ce circuit intégré permet de détecter un signal à une fréquence donnée (par exemple la sonnerie d'un détecteur de fumée).
74HCT174 Bascule D avec reset: Cette bascule permet la temporisation de bits pour l'interface à l'afficheur LCD. Réduit le nombre de broches nécessaires pour interfacer au microcontrôleur.
MAX232 MAX232: Ce circuit intégré convertit un signal de +/-15V tel que généré sur le port série (COM) d'un PC en un signal TTL 5V compatible avec la plupart des microcontrôleurs.

Il faudra ensuite ajouter les senseurs. Bobette possède plusieurs senseurs qu'il utilise pour se situer dans son environnement. Le tableau suivant fournit une liste de ses senseurs.

GP2D12 Senseur de distance à infrarouge Sharp GP2D12: Ce senseur permet de détecter des obstacles à une distance de 10 à 80 cm. Une lumière infrarouge est émise par le LED du senseur. Un photodiode ajuste le voltage par rapport à l'intensité lumineuse détectée. Plus l'obstacle est proche, plus le reflet du rayon infrarouge sera fort.
SRF04 Module de détection à ultrasons Devantech SRF04: Ce senseur permet la détection d'obstacle jusqu'à une distance de 3 mètres. Pour déterminer la distance des obstacles, on observe le temps pris pour recevoir l'écho des ultrasons émis par le module.
QRB1114 Senseur de proximité QRB1114: Ce senseur est composé d'un LED et un photodiode. Le LED émet un rayon lumineux infrarouge à. Le photodiode situé aux cotés du LED observe la réflection de la lumière. Il est possible de prendre la lecture du voltage à la base du photodiode. Ce voltage reflète l'intensité lumineuse capté par le photodiode. Comme une surface blanche reflète la lumière plus qu'une surface noire, il est possible d'utiliser ce senseur pour détecter les variations de couleur au sol.
Vector 2X Boussole électronique Vector 2X: Cette boussole électronique peut être utilisée pour déterminer la direction géographique du robot.
OP800SL Phototransistor OP800SL: Ce senseur permet d'estimer l'intensité lumineuse. Plus l'intensité lumineuse est élevée, plus le voltage que l'on retrouve à l'émetteur du phototransistor sera faible. C'est à l'aide de ce senseur que Bobette détecte la flamme des chandelles.
Microphone electret Microphone electret: Ce microphone capte les sons environants.

Il existe plusieurs autres types de senseurs, tels les photorésistances (varient la résistance selon l'intensité lumineuse), les thermistors (varient la résistance en fonction de la température), les détecteur d'accélération, les détecteurs d'ultraviolet, etc...

On peut catégoriser les senseurs en deux classes: analogue et digital. Pour les senseurs analogues, on observe le voltage affiché sur la ligne de sortie du senseur pour déterminer la mesure recherchée. Par exemple, pour les senseurs Sharp GP2D12, on effectue une lecture du voltage sur la ligne de sortie pour dériver la distance d'un obstacle. Plus le voltage est petit sur cette ligne, plus l'obstacle est loin du senseur. La lecture du voltage se fait à l'intérieur du microcontrôleur à l'aide de la fonction de conversion analogue-digitale.

Les senseurs digitaux transmettent leur information sous forme binaire ou en faisant varier la durée d'un signal. Par exemple, sur une boussole Vector 2X, plus la boussole génére un signal d'une certaine longeur. Plus le signal est long, plus la direction du robot en degré est élevée.

Une fois que le robot a accès à l'information de ses senseurs, il peut utiliser cette information pour modifier son comportement (par exemple en ajustant sa trajectoire). Le microcontrôleur peut ainsi contrôler d'autres types de périphériques comme ceux présentés dans la table suivante.

Moteur Moteur: Il existe divers types de moteurs (courant continu, courant alternatif, pas-à-pas). Bobette utilise des moteurs à courant continu de 12V effectuant 100 révolutions par minute.
LCD Afficheur LCD: L'afficheur LCD permet d'afficher des informations.

Pour me contacter, écrivez à l'usager mdubuc au domaine freeshell.org.

Dernière mise-à-jour: Le 19 août 2004.