Trois robots de grande taille à construire et à programmer : Premier robot "CarBot" (Première partie)

Nous commençons la description de nos robots par le plus simple : le CarBot. Dans cette partie, nous nous occuperons de la mécanique et du système de programmation.


Dans la première partie de cette série d’articles de robotique consacrée aux trois robots, nous vous avons présenté la platine commune de contrôle (ou carte-mère) utilisée pour commander CarBot, Filippo et Spider : dans cette partie-ci, nous commençons la description de CarBot en nous occupant de tous les aspects pratiques de sa construction, ainsi que du système particulier de programmation du microcontrôleur de la platine de contrôle.
Ce système permet d’entrer dans le microcontrôleur les programmes que nous avons mis au point ou emprunté à d’autres sources, sans devoir recourir à un programmateur spécifique. Cette méthode, bien sûr, est commune aux trois robots puisqu’ils utilisent tous la même platine de contrôle. A ce propos, rappelons que le coeur du circuit est un microcontrôleur Microchip puissant et aisément adaptable aux divers emplois : le PIC16F876, que tout le monde connaît maintenant, travaille à 20 MHz.

La structure électromécanique de CarBot
CarBot est un véhicule à trois roues se mouvant grâce à deux servocontrôles dûment modifiés et disposant de deux antennes (ou moustaches, mais nous préférons antennes car il ressemble plus à un insecte qu’à un chat…) grâce auxquelles il peut identifier et éviter les obstacles. Sa particularité est sa troisième roue (à l’arrière, elle est pivotante) lui permettant de faire des mouvements dans toutes les directions : cela le rend agile, précis et rapide dans ses déplacements.
CarBot est construit en fibre de verre recouvert sur les deux faces d’une fine couche de cuivre et d’un vernis spécial cuit au four (rendant la surface dure et donc inrayable). En outre, ses différentes pièces ont été faites à la fraiseuse à contrôle numérique, ce qui garantit une précision élevée. Comme le montrent les figures, CarBot est monté sur une platine mécanique de base (voir photo d’entrée d’article) : les pièces sont montées dessus (ou plutôt dessous, le dessus étant réservé à la platine électronique de contrôle). Ces pièces peuvent être assemblées par soudure au tinol (grâce à la couche de cuivre) ou en utilisant de la colle au cyanoacrylate. Toutefois la première solution est celle que nous vous conseillons, car c’est celle que nous avons mise en oeuvre pour construire nos prototypes. Pour le montage, outre un fer à souder et du tinol, donc, il vous faut un tournevis, une paire de pinces, des précelles (cela ressemble à une longue pince à épiler, mais ça n’épile pas !) et des élastiques.
Les figures 1 à 4 expliquent les phases de montage des pièces constitutives de CarBot. Nous nous occuperons donc ici seulement de quelques aspects particuliers exigeant davantage d’approfondissement.
Le système de traction utilise deux servocontrôles Futuba S3003 (bien connus des modélistes). Normalement, on les alimente avec une tension continue de 4,8 à 6 V et ils sont contrôlés par un train d’impulsions dont la durée doit être comprise entre 1 et 2 millisecondes : si l’on envoie des impulsions d’une durée de 1,5 ms, l’axe se met en position centrale, si en revanche elles ont une durée de 1 ms, l’axe se place complètement à droite et si elles ont une durée de 2 ms, l’axe se place complètement à gauche. Selon le type de servocontrôle utilisé, l’angle maximal de déplacement, par rapport à la position centrale, peut être de 60, 90, 120° ou davantage.
Bien sûr, en envoyant des impulsions de durée intermédiaire, l’axe se place dans une position proportionnelle à la durée de l’impulsion. Ces dispositifs sont utilisés depuis des décennies pour la réalisation des modèles aéronautiques, nautiques, terrestres, etc. et leur usage permet de déplacer et de positionner comme on veut les ailerons des avions, le gouvernail des bateaux et les roues des voitures, etc. Les servocontrôles sont constitués essentiellement d’un moteur à courant continu, d’un circuit électronique de contrôle, d’une série de démultiplicateurs (réducteurs à engrenages) et d’un trimmer de “feedback” (retour d’effet). Pour pouvoir se servir de ces dispositifs comme moteur, il est nécessaire de les modifier mécaniquement et électroniquement : essentiellement, il faut éliminer l’arrêt mécanique et remplacer quelques résistances. Pour obtenir la rotation dans un sens, il suffit d’envoyer des impulsions de l’ordre de 1,8 à 2 ms, pour faire tourner le moteur dans le sens opposé, les impulsions doivent avoir une durée de 1 à 1,2 ms et pour arrêter le moteur, une durée de 1,5 ms. Dans notre cas, la vitesse de rotation n’est pas parfaitement proportionnelle à la durée des impulsions, mais il est seulement possible d’obtenir un mouvement en avant ou en arrière à vitesse fixe. Si vous voulez obtenir une vitesse proportionnelle à la durée des impulsions de contrôle, vous devez effectuer une modification plus sophistiquée : ce type d’informations se trouve sur beaucoup de sites dédiés à la robotique (le plus complet sur ce point est sans doute www.seattlerobotics.org, voir notre rubrique Sur l’Internet).
En effet, savoir comment piloter les servocontrôles vous sera très utile quand vous en serez à l’écriture des programmes.
Si plus tard vous effectuez les modifications dont nous venons de parler, vous pourrez régler la vitesse de CarBot en réalisant, par exemple, des départs progressifs ou, au contraire, sur les chapeaux de roues.
Cet aspect étant examiné, nous voudrions maintenant nous occuper un peu de la troisième roue arrière pivotante, dont la fourche est fixée à la structure de CarBot par un boulon avec écrou autobloquant. La roue, comme son support, doivent être librement mobiles mais sans jeu excessif. C’est pourquoi il est important de serrer juste comme il faut l’écrou autobloquant : nous vous conseillons, après avoir vissé à fond l’écrou, de le dévisser d’un quart de tour. Quant à la roue, si elle est bloquée ou si elle tourne difficilement, il faut élargir la fourche avec une pince (figure 3). Et puis, toujours à propos des pièces en mouvement, il est conseillé de mettre, à l’aide d’une seringue, une goutte d’huile de machine (type machine à coudre) entre les côtés de la fourche et la rondelle, ainsi qu’entre la rondelle et la structure de base. Même chose entre la structure de base et la rondelle et entre la rondelle et l’écrou autobloquant.
En ce qui concerne les liaisons électriques, nous recommandons d’insérer le connecteur du moteur gauche dans la prise M1 de la platine de contrôle et le connecteur du moteur droit dans la prise M2. Le fil blanc est à insérer sur le contact 1 et le noir sur le contact 3.
Rappelons enfin que, lorsque le robot est monté, il est possible de placer au-dessus de la platine de contrôle une platine complémentaire sur laquelle on peut insérer des composants divers et différents systèmes comme des capteurs, mini caméra vidéo, afficheur LCD et beaucoup d’autres selon votre imagination ou vos applications particulières.

Figure 1 : La structure porteuse de CarBot.

Pour le montage de CarBot, il vous faut les quelques outils représentés à gauche. A droite, les pièces mécaniques constituant la structure porteuse du robot. La fibre de verre cuivrée des deux côtés est vernie avec un produit spécial rendant sa surface résistante aux rayures.

Pour le montage de la base, il faut avant tout insérer dans les fentes latérales correspondantes les panneaux antérieur et postérieur en faisant coïncider les zones prévues pour les soudures. L’ensemble ainsi obtenu est encastré dans les fentes de la structure de base, là encore en faisant correspondre les zones prévues pour les soudures.

En cas de nécessité, en frappant légèrement avec un marteau, nous pouvons encastrer parfaitement les diverses pièces éventuellement récalcitrantes. Par contre n’insistez pas sur un seul point mais frappez plutôt sur tout le tour de la structure. Afin de nous préparer aux opérations de soudure, il faut immobiliser l’ensemble avec des bracelets élastiques.

Nous conseillons d’employer un fer à souder de 40 W au moins, à panne large. Un seul endroit nécessite une panne à pointe fine (voir plus loin). Utilisez un fil de tinol de bonne qualité d’un diamètre de 0,8 à 1 mm. Il y a en tout 26 soudures à réaliser.

Après avoir terminé toutes les soudures, ôtez les élastiques et nettoyez la structure avec un solvant adapté à l’élimination de toute trace de flux désoxydant. Ensuite, fixez sur la structure (voir à droite) les 4 entretoises métalliques utilisées pour le montage de la platine de contrôle.

Figure 2 : Le montage des moteurs.

Pour la traction, CarBot utilise deux servocontrôles dûment modifiés de façon qu’ils puissent tourner complètement dans un sens ou dans l’autre sans être limités par des butées mécaniques ou par les caractéristiques électroniques internes du servocontrôle lui-même. Le moteur de droite est fixé aux trous que montre la photo de droite.

La photo de gauche montre la position du moteur vu de derrière et les rondelles et écrous de serrage quand c’est terminé. De la même façon, montez le second servocontrôle en le fixant du côté opposé. Vissez les écrous des boulons avec force.

Placez en diagonale les deux premières vis (photo de gauche) et insérez de l’autre côté les rondelles freins et les écrous. Avant de serrer, centrez parfaitement le servocontrôle dans son logement. Ensuite, insérez et fixez les deux autres vis avec les rondelles freins et les écrous.

Voici, à gauche, la structure porteuse vue de dessous avec les deux servocontrôles parfaitement positionnés. La phase suivante consiste à monter le porte-piles au moyen de deux boulons 3MA à têtes fraisées. Le porte-piles reçoit 4 piles bâtons type AA de 1,5 V.

Le porte-piles est monté sur le côté supérieur de la structure (photo de gauche). La fixation se fait à l’aide des deux boulons à têtes fraisées dotés de rondelles freins. La photo de droite montre la position des éléments de fixation vus de dessous.

Figure 3 : L’insertion des roues.

Les roues motrices aussi sont en fibre de verre. A gauche, toutes les pièces nécessaires au montage. Après avoir inséré l’anneau servant de pneu, vissez les vis auto taraudeuses dans le moyeu, en contrôlant bien le centrage, avant le serrage définitif. Même chose pour l’autre roue.

Avant le montage des roues, enlevez les vis des axes des moyeux, insérez ensuite la première roue dans son axe et bloquez-la avec la vis que vous venez d’enlevez. Même chose pour la seconde roue : CarBot commence à prendre forme (à droite).

Pour monter la troisième roue, on a besoin de tous les éléments de gauche. Avec un fer à panne fine, soudez les 4 pièces en fibre de verre métallisée afin d’obtenir la fourche de roue (à droite). Insérez la vis 4MA comme sur la photo de droite.

Fixez le support sur le côté inférieur de la structure en utilisant la vis, les deux rondelles et l’écrou autobloquant. Il est important de serrer juste comme il faut l’écrou pour que la fourche puisse tourner librement. Pour monter la roulette, utilisez la goupille spéciale et les deux entretoises.

Insérez dans l’ordre la goupille (axe), la première entretoise, la roulette et la seconde entretoise. Pour insérer cette dernière, aidez-vous au besoin d’une petite pince. Avec un peu de patience vous réussirez à fixer le tout. A la fin, écartez les deux moitiés de la goupille.

Figure 4 : La phase finale.

Les capteurs permettant à CarBot d’éviter les obstacles sont constitués de deux micro-interrupteurs dont les leviers s’allongent en antenne (d’insecte !). Les composants nécessaires au montage sont visibles à gauche. Les micro-interrupteurs sont placés sur le côté supérieur de la structure et chacun est fixé à l’aide de deux vis.

La photo de gauche montre la structure vue de dessous : on voit les écrous bloquant les 4 vis de fixation des micro-interrupteurs. Maintenant il faut regrouper les câbles des servocontrôles, les fixer à l’aide d’un collier plastique et les faire passer à travers les évidements de la structure comme sur la photo de droite.

Il est nécessaire de faire sortir les câbles à travers l’ouverture antérieure devant le porte-piles. Il ne reste alors qu’à monter la carte-mère sur les entretoises et à la fixer par les 4 vis que vous aurez préalablement enlevées : positionnez bien la carte comme indiqué sur la photo de droite avant de les revisser.

Continuons avec les liaisons électriques : fixez les connecteurs des antennes aux prises correspondantes de la carte-mère (à gauche), le connecteur du moteur gauche à la prise M1 et celle du moteur droit à la prise M2. Le fil blanc correspond au numéro 1 et le noir au numéro 3.

Enfin reliez les fils d’alimentation du porte-piles : le fil rouge va au contact + et le noir au contact –, comme le montrent les deux photos. Le connecteur DB9 (utilisé pour la programmation), est à connecter au port sériel de l’ordinateur dédié par un câble spécial.

Le logiciel de CarBot
Pour ne pas être trop longs, nous nous occuperons seulement du “bootlader” en attendant la prochaine partie pour présenter et commenter les programmes proprement dits.
Signalons tout de même aux lecteurs impatients que ces programmes sont disponibles sur le site www.electronique-magazine.com où ils peuvent être téléchargés gratuitement pour programmer ensuite le microcontrôleur de la carte-mère. Les “cadors” de la programmation des PIC pourront aussi s’amuser à concevoir eux-mêmes un programme ! La figure 5 explique en détail ce qu’est un “bootlader” et comment on l’utilise.
En bref, ce système permet de programmer le microcontrôleur de la platine de contrôle en se servant directement de la sortie sérielle d’un ordinateur, c’est-à-dire sans avoir recours à un programmateur spécifique. Ce système utilise un logiciel particulier PICdownloader.exe permettant de charger dans le microcontrôleur les programmes que nous avons développés (au format .HEX) par l’intermédiaire du port sériel. Cela est possible uniquement si on a préalablement chargé dans les microcontrôleurs un bref programme de support bootldr20Mhz-19200bps.hex logé dans les premières cellules de mémoire : ce logiciel, bien sûr, doit être chargé avec un programmateur habituel.

Figure 5 : Comment charger les programmes.
Pour faire fonctionner CarBot, ainsi que toute notre série de robots utilisant la même carte-mère (décrite dans le premier article de la série), il est nécessaire d’écrire un programme qui fasse faire au robot ce que nous désirons, dans les limites des ressources disponibles.
Ce programme peut être écrit en n’importe quel langage, du Basic au C en passant par l’Assembleur, etc., celui-ci devant être ensuite compilé de façon à obtenir le fichier .HEX adapté pour être mémorisé par le microcontrôleur. Mais nous nous occuperons de tout cela dans le prochain article de la série : nous présenterons et commenterons les programmes écrits pour CarBot.
Nous voulons ici expliquer comment le programme, développé ou prélevé dans le manuel sur CD accompagnant tous les robots, peut être entré dans le microcontrôleur. Avant tout, précisons que, pour rendre plus agréable cette opération ainsi que la vérification des routines, la carte-mère est dotée d’un système de programmation “in-circuit” permettant de laisser le microcontrôleur en place. La programmation se fait directement par le port sériel du PC et la prise DB9 de la carte-mère. Pour ce faire, il est nécessaire d’utiliser un système de programmation spécifique : le “bootlader”. C’est un système utilisant un logiciel spécial, PICdownloader.exe, permettant d’entrer dans le microcontrôleur les programmes que nous avons développés (au format .HEX) au moyen du port sériel. Cela est possible uniquement si le microcontrôleur est préalablement chargé par un bref programme de support, bootldr20Mhz-19200bps.hex, logé dans les premières cellules de mémoire : ce logiciel, bien sûr, doit être chargé avec un programmateur normal.
Le microcontrôleur est déjà programmé en usine par ce bref programme.
Mais voyons à présent comment utiliser le “bootlader”. Créez, avant tout, dans votre PC un répertoire comme C:\Bootlader et, à partir du manuel sur CD ou de notre site Internet, chargez le programme PICdownloader.exe (sauvegardez-le dans le répertoire créé).
Faites un raccourci sur le bureau de ce programme (touche droite de la souris).
Après avoir produit (ou copié) le programme au format .HEX, lancez le PICdownloader par un double clic sur l’icône du bureau et la fenêtre “Figure 5a” s’ouvre :

Figure 5a : Si nécessaire, modifiez les paramètres du port pour qu’ils correspondent avec ceux du PC. Quant à la vitesse, elle doit toujours être de 19 200 bauds. Avec la touche “Search” (ou F2), cherchez et sélectionnez le fichier que vous voulez charger dans le PC (par exemple, CAR_1.HEX).

Figure 5b : Pressez ensuite la touche “Open” et vous obtiendrez cet écran :

Figure 5c : Pressez la touche “Write” et la recherche du “bootlader” commence :

Figure 5d : Si la carte-mère est éteinte, quand vous la mettez sous tension, le programme se charge automatiquement.
Si en revanche elle est déjà allumée, pressez la touche de “reset” sur la carte mère.
Dans le champ “Info” apparaît la barre bleue indiquant la progression du chargement.


Figure 5e : Si nous devons écrire dans l’EEPROM (dans le cas de Filippo, il faudra utiliser la commande DATA), il faut pointer dans la case EEPROM.

Figure 5F : Il est conseillé d’enlever le pointeur s’il n’est pas nécessaire d’écrire dans l’EEPROM.

A suivre...

Trois robots de grande taille à construire et à programmer
Premier robot "CarBot" (Deuxième partie)
Deuxième robot "Filippo" (Première partie)
Deuxième robot "Filippo" (Deuxième partie)
Troisième robot "Spider" (Première partie)
Troisième robot "Spider" (Deuxième partie)

À Découvrir

Schema Electronique