
Voici une réalisation qui devrait intéresser un bon nombre de lecteurs débutants. Ce robot utilise une mécanique disponible en kit et une carte qui regroupe l’ensemble des éléments électroniques nécessaires pour piloter cette base mécanique.
La problématique, quand on fait ses premiers pas en robotique, c’est d’abord de devoir réaliser une mécanique ludique et suffisamment fiable. Mais c’est aussi la nécessité de disposer d’une carte électronique pour piloter cette mécanique, avec des possibilités d’extensions, pince, capteurs,caméra, etc.
La plupart des débutants veulent passer à la programmation sans avoir se soucier des problèmes de conception. C’est dans ce but qu’a été conçu ce robot.
Cette réalisation doit vous permettre d’apprendre à programmer progressivement un robot classique, sans nuire aux performances à venir.
Force est de constater le fossé existant entre les électroniciens, les mécaniciens et les programmeurs en robotique. De nombreux jeunes (et moins jeunes) désirent se lancer dans la robotique, mais ne dominent pas les trois disciplines.
La partie la plus agréable, pour beau-coup de personnes, réside dans la programmation d’un robot que l’on voit évoluer en performance et intelligence. Il est, en effet, très gratifiant de tester des bouts de programmes, de les améliorer et de constater l’évolution de sa créature.
La notion de « passe-temps » porte bien ici son nom.
L’électronique, même si elle est forte-ment minimisée, reste une partie délicate pour de nombreux amateurs. Assembler sur une petite surface d’époxy les différents composants électroniques nécessite plusieurs compétences. Il faut les connaître, faire son choix parmi ceux qui sont les plus disponibles, connaître les structures classiques de « commande » des divers actionneurs, moteurs, servomoteurs, puis savoir dessiner un circuit imprimé pour l’ensemble des composants sélectionnés.
Parfois, il convient aussi de faire quelques compromis.
Pour finir, il faut souder correctement les composants, une mauvaise sou-dure étant un véritable « casse-tête » à dépanner.
Il en est de même de la mécanique, pour laquelle il faut trouver un concept simple, mais néanmoins efficace. Même si le châssis de base en robotique est la plate-forme ronde à deux moteurs de type « différentiel ». elle n’est pas simple à réaliser. Si, de plus, on souhaite y ajouter plus tard un outil comme un capteur, une pince ou une caméra, il peut être nécessaire de repenser l’ensemble.
Cette réalisation doit permettre d’apprendre à programmer progressivement un robot classique. Elle dispose pour cela d’un cœur puissant à base d’un microcontrôleur PIC, d’une interface pour piloter deux moteurs à courant continu, de trois leds rouges et de trois poussoirs, sans oublier un bruiteur piézo. L’afficheur est devenu incontournable pour dispenser des messages pertinents. Divers connecteurs pour programmer le microcontrôleur PIC, piloter des servomoteurs, lire des entrées analogiques et d’autres extensions en entrées ou en sorties complètent le tableau. Pour piloter ce robot, on dispose d’un récepteur IR de type TV et d’une liaison RS232 pour PC
Le châssis est un kit disponible auprès de la société Easy Robotics (1). Cette jeune société s’est spécialisée dans la conception de bases mécaniques en aluminium pour la robotique ludique et pédagogique. Son idée initiale fût de développer et de proposer une cage pour servomoteur. Autour de cette cage, plusieurs modèles de robots peuvent être réalisés. Le modèle que nous avons choisi est disponible nu ou associé à une pince ou à un support de caméra (photo A).
Il s’agit d’une base roulante équipée de deux servomoteurs à rotation continue sans électronique. Le kit est proposé avec des servomoteurs modifiés pour la rotation continue ou avec des moteurs en boîtiers servos. Il s’agit, à la base, de servomoteurs standards qui sont modifiés pour permettre la rotation complète en fonction de la commande et dans lesquels on a supprimé toute l’électronique pour les transformer en moto-réducteurs. Les roues usinées utilisent un joint torique comme pneu. Elles se fixent directement sur l’arbre de sortie des servomoteurs de propulsion. La vitesse de déplacement du robot n’est pas très élevée du fait de la grande démultiplication propre aux servomoteurs, mais ce n’est pas ce que l’on attend d’un robot pédagogique.
Le modèle que nous avons choisi est équipé de deux servomoteurs en moto-réducteurs avec une pince. La pince est mue par deux servomoteurs standards qui permettent d’ouvrir, de fermer, de lever et de baisser la pince. Celle-ci nous permettra de saisir des petits objets, comme des petites balles ou encore des canettes de soda (photo B).
Ces actionneurs fonctionnent sous une alimentation de 6 V.
Malgré l’ensemble de ses possibilités, cette carte électronique est plutôt réduite (100 mm x 80 mm).
La faute et c’est tant mieux en revient au microcontrôleur qui gère la plupart des ressources.
On y retrouve, en plus d’un PIC quarante broches, un résonateur 8 MHz, un afficheur 2 x 16 caractères, un connecteur de programmation JP2 et deux connecteurs: JP3 pour une liai-son RS232 avec un PC et JP4 pour une liaison l²C pour les extensions (figure 1).
Le microcontrôleur sélectionné, un PIC18F452, est un modèle très performant qui permettra sans problème d’accepter des programmes complexes. Il serait trop long d’énumérer ici ses performances, mais sachez malgré tout qu’il est possible d’augmenter la vitesse de calcul de manière interne, qu’il accepte un programme de 32 Ko et qu’il possède quatre timers. La plupart des autres caractéristiques sont communes aux circuits de la famille 16F comme pour le PIC16F877 que l’on peut, d’ailleurs, utiliser à la place du 18F. Pratiquement, les quarante broches du circuit sont utilisées, sauf deux. L’afficheur est un outil indispensable de mise au point des programmes et apporte un confort de lecture de l’état du robot.
On s’en servira pour visualiser les différents modes pour les tests, les entrées analogiques, les déplacements et les états internes, l’état de la batterie, etc.
La liaison RS232 entre le robot et un PC reste un moyen simple de dialoguer par une liaison filaire ou HF, à l’aide de modules de type XBee par exemple.
C’est un outil de développement très utilisé qui permet de visualiser des résultats de mesures et de modifier des paramètres internes.
Quant à la liaison l²C, elle est un autre moyen simple de réaliser des extensions vers des cartes spécialisées. On peut imaginer de concevoir ensuite une carte évoluée pour une caméra ou, plus simplement, pour d’autres capteurs, type capteurs de vitesse ou capteurs de ligne.
On nomme ainsi les trois boutons poussoirs, les trois leds, le bruiteur de type piézo et l’interface infrarouge (figure 2). Ces éléments permettent de piloter en direct le robot, sans nécessiter de dialoguer avec un PC. Le photo-module infrarouge permet de piloter le robot par une télécommande de type TV. C’est pratique pour modifier les paramètres du robot pendant qu’il se déplace, lorsque la liaison RS232 n’est plus utilisable.
Il nous reste à voir le pont diviseur de tension, réalisé avec des résistances de précision à 1 %. Il s’agit ici d’avoir un suivi de la tension des batteries. La tension d’alimentation est divisée par deux, après avoir chuté de 50 mV à travers le transistor d’entrée Ti.
On dispose de deux sorties (connecteurs JP5 et JP6), pour piloter deux servomoteurs sur les lignes RB1 et RB2 du microcontrôleur, de deux entrées (connecteurs JP7 et JP8), pour lire des capteurs analogiques sur les lignes RA1 et RA3 et de deux entrées/sorties, au choix (connecteurs JP9 et JP10), sur les lignes RA4 et RCO pour lire des entrées de type compteurs de vitesse ou pour piloter d’autres servomoteurs (figure 3).
Elle utilise un circuit spécialisé pour la commande des moteurs à courant continu, le L293D, ou mieux le SN75441 ONE. Les deux transistors T3 et T4 et leurs résistances associées permettent de réaliser deux inverseurs. Ils servent à simplifier la commande des moteurs en réalisant l’inversion de deux signaux pour le circuit L293D.
Avec ces deux inverseurs à transistors NPN, on réduit à deux le nombre de lignes pour piloter chaque moteur, sens et vitesse (figure 4).
Ce schéma est un grand classique des montages électroniques, à l’exception du transistor T1. Lequel permet d’éviter les inversions de polarités de la source d’alimentation. La chute de tension aux bornes de ce transistor est inférieure à 0,1 V au maximum, ce qui n’est pas gênant. Le régulateur est un modèle à faible chute de tension LDO (Low Drop Output voltage) de type LM2940-5 ou équivalent (figure 5). La tension non régulée en entrée du régulateur ne doit pas descendre sous 5,25 V. Dans ces conditions, la différence de tension entre l’entrée et la sortie du régulateur n’est plus que de 300 mV et le régulateur atteint sa limite basse de fonctionnement.
La source d’alimentation de 6 V sera réalisée avec quatre piles de 1,5 V ou cinq accus de 1,2 V. Si l’on souhaite faire fonctionner l’ensemble avec quatre accus de 1,2 V seulement sous 4,8 V, le système doit être modifié. Suppression du régulateur avec pont entre l’entrée et la sortie, rem¬placement du pont de mesure R9/R10 par une diode zéner de 3 V environ accompagnée de sa résistance de polarisation de l’ordre de 470 Ω.
La carte (figures 6 et 7) sera réalisée par l’un des moyens à votre disposition. Par exemple, imprimer les deux faces sur deux feuilles de calque, grain fin pour dessin, avec une imprimante de type Desk-jet ou, mieux, Laser-jet.
On découpe la plaque correctement en limant les bords pour peaufiner. On perce, en premier, tous les trous avec un foret de Ø 0,8 mm, puis on reperce ceux pour les composants plus gros et pour les divers trous de fixation:
– à Ø 1 mm pour le régulateur, les trois poussoirs, l’inter et les connecteurs mâles,
– à Ø 1,2 mm pour la résistance variable,
– à Ø 2,5 mm pour les quatre trous de fixations de l’afficheur,
– à Ø 3,2 mm pour les quatre trous de fixations de la carte et le trou du régulateur.
Pour ceux qui ne peuvent pas (ou ne veulent pas) se lancer dans la réalisation de ce circuit imprimé, il sera disponible auprès de la même société qui propose ses composants et la base mécanique.
Résistances
R1, R5, R6, R7 : 1 kΩ (marron, noir, rouge, or)
R2 : 47 kΩ Uaune, violet, orange, or)
R3, R4 : 3,3 kΩ (orange, orange, rouge, or)
R8 : 100 Ω (marron, noir, marron, or)
R9, R10, R11, R12, R14: 10 kΩ (marron, noir, orange, or)
R13, R15 : 4,7 kΩ (iaune, violet, rouge, or)
R16, R17 : 22 kΩ (rouge, rouge, oran¬ge, or)
RV1 : 10 kΩ horizontal
Condensateurs
C1 : 470 I-lF/16 V
C2: 100 nF
C3, C4, C6 : 100 I-lF/10 V
CS: 10 I-lF/10 V
Semiconducteurs
D1, D2 : led rouge Ø5 mm 03 : led orange Ø5 mm 04 : led verte Ø5 mm
T1 : IRF09024
T2, T3, T4 : 2N2222 CI1 : LM2940-5
C12: PIC 16F877, PIC18F452 CI3 : T80P1838
C14: L2930, SN754410NE
Divers
Q1 : résonateur 8 MHz BZ1 : piézo
81 : interrupteur
82, 83, 84 : poussoirs CI
JP1 à JP12 : barrettes « sécable » mâles AFF1 : afficheur LCO 2 x 16 connecteur en bas
Barrettes »sécable » mâles et femelles (afficheur)
On soude les composants dans l’ordre habituel, les plus bas profils en premier, tels que les vias (liaisons d’une face à l’autre), puis les résistances, les supports de CI (des barrettes « sécable »), les poussoirs, les connecteurs, la résistance variable, les condensateurs et les transistors. On finit par les leds, le régulateur, le quartz, le piézo, l’inter et le photo-module (figure 8).
Certains composants doivent être également soudés coté composants. L’afficheur est équipé d’un connecteur mâle pour venir s’enficher dans un connecteur femelle qui, lui, est soudé sur la carte.
Si nécessaire, il est possible de bloquer l’afficheur sur la carte par quatre entretoises adaptées.
La carte est fixée au châssis en alu-minium par quatre vis M3 et quatre entretoises M3 de 5 mm.
• Test sans placer les deux circuits intégrés sur leur support
– Vérifier la présence d’une tension de 5 V en divers points du circuit.
– Test des leds par court-circuit (broches 8, 9, 10 avec 11 sur C12)
– Mesure de la tension batterie sur RAO (broche 2 de C12)
– Test des poussoirs sur CI2 (broches 36,37 et 38)
• Test avec le circuit intégré L293D
– Test des moteurs par court-circuit (broches 16, 17 avec 11 sur C12)
– Inversion du sens de rotation des moteurs en même temps que le test précédent (broches 4, 7 avec 32 sur C12)
• Test avec le circuit intégré PIC
– Programmer le PIC avec les différents programmes de test
– Suivre les indications sur l’afficheur (photo C)
– Régler son contraste avec RV1.
Une erreur classique provient de l’in-version de certains composants: les leds, les transistors, les circuits intégrés, les condensateurs polarisés. Mais également lors de la soudure de certains composants : les supports de circuits intégrés ou l’oubli d’une soudure du coté composants.
La programmation, c’est à vous de l’écrire. Ce que nous allons vous donner, ce sont les fichiers de tests du robot et quelques conseils de programmation.
Programmer et tester chaque fichier. Les fichiers tests au format .hex sont disponibles sur le site de la revue.
Il s’agit de programmes pour un PIC18F452.
– TesC01 vérifie le fonctionnement des boutons poussoirs et des leds.
– TesC02 ajoute un bip pour chaque appui sur un bouton poussoir, mais surtout introduit l’utilisation de l’affichage avec un petit cœur qui bat, preuve d’une activité.
– TesC03 vérifie le fonctionnement des moteurs et des servomoteurs. Si on appuie sur le bouton poussoir de gauche, le robot avance, stoppe, recule et s’arrête. Si on appuie sur le bouton poussoir du centre, la pince du robot descend, prend un objet et remonte. L’afficheur confirme chaque état.
– TesC04 utilise les entrées analogiques pour lire deux télémètres infrarouges GP2D12 de chez Sharp (photo D). En appuyant sur le bouton poussoir de droite, le robot avancera jusqu’à ce qu’il y ait un obstacle devant lui, alors il s’arrêtera. C’est aussi l’occasion de tester l’état de la batterie et d’afficher le résultat sur un petit symbole. Le dessin d’une pile plus ou moins remplie devrait être assez explicite.
Vos premiers programmes doivent être à l’image des programmes de test.
Commencer par un premier programme d’utilisation des leds et des boutons poussoirs. Cela vous permettra de prendre contact avec le microcontrôleur, les configurations des lignes en entrée ou en sortie.
Puis, mettre en œuvre l’affichage. Apprendre à rafraîchir l’affichage, créer de nouveaux caractères. Ensuite, piloter les diverses formes d’actionneurs, les moteurs à courant continu, en avant, en arrière, tourner sur place à gauche, à droite, arc de cercle à droite, à gauche, la pince en haut en bas, ouverte, fermée.
Pour donner de l’autonomie à un robot, il lui faut des entrées analogiques ou logiques. Mesurer l’état de la batterie.
Ajouter des liaisons RS232 pour dialoguer avec un PC, piloter une autre carte par liaison I²C.
F. GIAMARCHI