A quel point un robot peut il être simple à concevoir? Il y a un moment (en 2013), je me suis demandé à quoi ressemblerait le robot le plus simple que je pourrais fabriquer. Je vous propose de découvrir dans ce billet le résultat.
Il s’agissait de fabriquer un robot autonome capable de se déplacer en évitant les obstacle. Ce robot devait donc comporter un système de motorisation, une alimentation électrique, un ou plusieurs capteurs et un circuit électronique de commande.
La motorisation
Pour rester aussi simple que possible, je me suis appuyé sur des servomoteurs à rotation continue. Ceux ci peuvent en effet être utilisés facilement, puisqu’il n’y a pas besoin de circuit contrôleur de moteurs. Il faut bien entendu des roues adaptées à ces servomoteurs, et une roue omnidirectionnelle pour faire le troisième point de contact.
J’ai vissé l’ensemble sur une petite planche de bois, ce qui me donne un châssis motorisé pour le robot.
Alimentation éléctrique
Pour alimenter ces moteurs, il faut une tension d’environ 5V. J’ai donc utilisé 4 batteries AA rechargeables, d’une tension nominale de 1.2V lorsqu’elles sont pleinement chargées, ce qui donne 4.8V avec les 4 en série. L’ensemble est placé dans un boitier à batteries AA qui est fixé à l’arrière du robot par une vis, à l’horizontale au dessus des servomoteurs. Pour conserver le circuit le plus simple possible, et pour essayer la faisabilité d’une telle solution, j’ai choisi de me passer de tout circuit de régulation de tension. Nous disposons dès lors d’une alimentation électrique pour notre robot.
Électronique de commande
Pour l’électronique de commande, l’objectif était de simplifier autant que possible. J’ai décidé d’utiliser une puce d’ATMega328p, principalement parce que j’en avais en stock. J’ai utilisé la puce seule, à 8Mhz, et sans autre composant, en utilisant l’oscillateur interne. Il n’y a pas de résistances, condensateurs ou quoi que ce soit d’autre. Ce n’est pas une pratique recommandée pour un projet à long terme, car la qualité de l’alimentation électrique jouera sur la stabilité de l’ensemble. Toutefois l’objectif était également d’en faire l’expérience.
La puce est placée sur une petite plaque de prototypage (mini breadboard), et l’alimentation électrique est connectée à celle ci. Les câbles “signal” des servomoteurs sont connectés à des sorties numériques de la puce, et les servomoteurs sont alimentés. Nous avons maintenant le cerveau du robot.
On notera qu’il est possible d’utiliser des puces plus simples, par exemple un ATTiny85, qui ne dispose que de 5 GPIO, mais est plus compact avec ses 8 pattes. En terme de programme et de comportement du robot, ça ne changera toutefois que peu de choses voire rien du tout.
Les capteurs
Pour rester dans la simplicité, deux solutions ont été envisagées : des capteurs de contact (microswitches avec levier) ou un capteur de distance infrarouge. J’ai retenu cette solution, car elle permettait de se passer de résistances de tirage, et réduisait le nombre de câbles. Le capteur utilisé est un capteur infrarouge sharp à réponse logarithmique, fonctionnant dans la plage 10-80cm. Ce n’est pas mon capteur préféré, mais il est simple et relativement économique. Deux fils sont utilisés pour l’alimentation, et le troisième sert à conduire le signal analogique de distance. On le branche donc sur une entrée analogique du microcontrôleur.
Le programme
Le programme est également très simple. Dans la boucle infinie de la puce, on mesure le signal retourné par le capteur. On compare cette valeur à un seuil pour déterminer s’il y a un obstacle proche.
SI c’est le cas, le robot tourne à gauche. Dans le cas contraire, le robot avance.
Ce programme est très simple, voire minimaliste. Cela suffit toutefois à éviter des obstacles.
Résultat final
Le résultat est un petit robot simple, peu évolué, mais qui fonctionne malgré l’absence d’éléments importants tels qu’un régulateur de tension, ou de condensateurs de lissage. Si un robot compact et simple, mais un peu plus orthodoxe vous intéresse, voici un article sur un autre robot que j’ai construit pour être simple et à grande autonomie, et sans doute bien plus fiable à long terme.
La vidéo suivante montre le comportement de ce robot :
On constate que lorsque le robot accélère, l’avant se cabre, j’ai du rajouter une buttée pour qu’il ne bascule pas. Cela vient d’un équilibrage des masses absolument pas optimisé. Toutefois, ce problème n’est pas extrêmement gênant dans ce contexte, d’autant moins qu’il s’agissait d’un robot expérimental.
Galerie
Aucun commentaire jusqu'à présent.