Comment concevoir un petit robot mobile autonome à partir d’une base programmable.
Bonjour. Je me prénomme Patrick. J’habite à l’île de la Réunion et Je suis analyste programmeur de métier.
Le soleil a dû me tomber sur la tête car je me suis mis depuis à peu près deux ans à m’intéresser à la robotique et donc par la même occasion à l’électronique et à la mécanique.
Je fais évoluer un petit robot que j’ai appelé PLR1 (prononcé pèlerin) sur lequel je travaille depuis. Tout expliquer dans ce tutoriel va être compliqué, car il faudrait plusieurs tutoriels pour y arriver. J’ai d’ailleurs un blog perso qui suit l’évolution de celui-ci depuis tout ce temps. Pour ceux que ça intéresse, voici l’adresse : https://djgsi974.wordpress.com.
– avec ce tutoriel vous apprendrez à réaliser ce petit robot mobile autonome à partir d’une base programmable. Le but étant de ne pas partir de zéro. Ceci dit, il faut du temps, de la patience, et bricoler beaucoup.
– L’idée pour ce tutoriel m’est venue car su mon blog on m’a proposé de participer à ce concours. Je ne connaissais pas le site “ouiaremakers.com” mais je suis content d’être ici aujourd’hui. Du coup, j’ai voulu réaliser ce tutoriel pour au moins expliquer les étapes de la réalisation de mon petit robot, ce qui pourrait intéresser voire inspirer d’autres personnes.
Il faudrait plusieurs tutoriaux pour tout expliquer, c’est pourquoi ce tutoriel expliquera la partie matérielle et comment faire quelque chose de sympa.
Matériel :
Budget : Non défini
J’ai utilisé:
– une base roulante programmable conçue par la société parallax appelée “ActivityBot”
– une batterie d’imprimante portative récupérée au lieu d’utiliser le système de piles de la base roulante
– deux servo-moteurs pour réaliser la “tête” du robot
– quatre leds blanches pour l’éclairage et de quoi les fixer sur une plaque
– d’un capteur de lumière
– deux capteurs de distances à ultra-sons
– deux leds infrarouges et deux récepteurs infrarouges pour fabriquer des capteurs de distance infrarouge
– une carte raspberry pi pour faire évoluer la base et du coup rendre le robot plus “intelligent”
– d’un écran tactile de 4D System : écran autonome avec son propre micro-contrôleur
– de petits composants électroniques pour réaliser un système d’alimentation pour tout alimenter à partir de la batterie
– anciennes cartes électroniques de récupération qui serviront de supports
– un dongle wifi pour le relier au réseau et le piloter depuis internet
– un centrale inertielle qui permettra d’orienter le robot dans l’espace
– une caméra raspberry pi pour rechercher des visages et faire de la reconnaissance faciale
– des boites de DVDs de récupérations pour faire un habillage “artisanal”
– entretoises, vis, boulons, fer à souder etc… (panoplie du petit bricoleur en robotique)
– un dongle bluetooth pour pouvoir le piloter à partir d’un téléphone par exemple
– beaucoup d’huile de coude, de patience mais surtout d’envie d’arriver à quelque chose et un peu d’imagination quand on n’a pas trop les moyens, ce qui est mon cas.Ouf ! en effet, quand on regarde, ça fait beaucoup.
Etape 1 : Comment monter et utiliser la base programmable.
La base programmable que j’ai utilisé est l’ActivityBot de chez Parallax (https://www.parallax.com/product/32500). La base est vendue en pièce détachées, il faut donc commencer par la monter avant de pouvoir apprendre à programmer celle-ci. Dans la boite, vous avez à votre disposition la caisse (en aluminium), les servomoteurs pour les deux roues, les roues elles-mêmes, une carte micro-contrôleur (un peu comme l’Arduino mais plus perfectionnée car possède un processeur multi-coeurs), des capteurs, leds, résistances etc… Bref : tout ce qu’il faut pour commencer dans l’univers de la robotique.
Sur le site du constructeur, plusieurs tutoriels sont accessibles gratuitement et permettent d’assimiler le fonctionnement du petit robot. C’est en anglais mais ça reste facilement compréhensible. Pour vous dire : moi qui suis nul en anglais, j’y suis arrivé.
Après avoir joué avec le petit robot nouvellement acquis, et après avoir fait le tour des tutoriels du constructeur, j’avais envie d’aller plus loin, mais on se rend vite compte que cela la base ne suffit pas. Je voulais pouvoir le rendre un peu plus “intelligent”.
J’ai ajouté une carte raspberry pi à la base programmable. Pour cela, j’ai récupéré une vielle carte son que j’ai dépouillé de tous ses composants, poncé puis peint. J’ai ensuite ajouté des entretoises pour pouvoir fixer le tout sur la base.
Avec ma carte raspberry pi, j’avais commandé la caméra et deux servomoteurs, ainsi qu’une tourelle de type “pan-tilt”. Cette tourelle m’a permis de monter les deux servomoteurs de façon à avoir un moteur qui fasse un mouvement horizontal, et le deuxième un mouvement vertical.
Le but était de fixer la caméra sur la tourelle et ainsi, la caméra deviendrait l’oeil de mon robot, les servomoteurs me permettent de déplacer la caméra de bas en haut et de gauche à droite.
J’en ai donc profité pour fixer un détecteur de distance à ultrasons (nommé “ping” chez parallax). Celui-ci donnent du coup l’impression d’avoir deux yeux et permettra de savoir à quelle distance se trouve un obstacle dans la direction de la caméra. par ailleurs, j’ai fixé deux leds de chaque côté pour avoir un peu de lumière le soir.
En parallèle, les deux cartes (activityBot et raspberry pi) communiquent via une liaison série. Une application développée en langage C sur le raspberry pi envoie les instructions à l’autre carte via la liaison série qui fait bouger les moteurs des roues, de la tête et allume les leds. La carte raspberry pi devient en quelque sorte le “cerveau” du robot. Ainsi, j’ai pu commencé à écrire un programme de détection et de suivi du visages pour tester le tout. Le robot, en l’état pouvait déjà “me suivre du regard”.
×
Etape 4 : Comment réaliser de quoi alimenter le robot
Bien sur, il fallait penser à alimenter le tout. Au départ, la base roulante est livrée avec un coupleur de 5 piles de 1.5v (donc 7.5v). L’inconvénient, était qu’il fallait changer les piles, et si je les remplaçait par des piles rechargeables, qui ne font que 1.2v (donc 6v), la tension fournie est insuffisante pour la carte de base (surtout pour les moteurs).
J’ai pû récupérer une batterie d’imprimante portable qui me fournissait du 7.4v et qui était rechargeable en branchant son alimentation sur le secteur, et l’autre côté directement sur la batterie (et non pas sur une électronique intermédiaire). J’ai aussi récupéré sur l’imprimante qui ne fonctionnait plus la base de fixation de la batterie. J’ai donc commencé par bricoler de quoi fixer la batterie à l’arrière de la carrosserie. Et j’en ai profité pour y ajouter un bouton qui me permettait de couper le courant pour tout le robot (le bouton a été récupéré sur une vielle alimentation d’ordinateur).
L’autre soucis était le voltage. En effet, la batterie fourni du 7.4v : pour la carte de la base roulante, c’est très bien. Par contre, pour le raspberry pi, après recherches et diverses questions sur les forums, j’ai trouvé comment faire un petit montage électronique me permettant de convertir du 7.4v en 5v nécessaire au raspberry pi. Le tout a été fixé sous le robot. Ensuite, il ne me restait plus qu’à faire les fils qui allaient bien pour alimenter les deux cartes.
L’écran a été fixé à l’avant du robot. Celui-ci me permettra de faire du paramétrage, d’afficher des images et de lire des fichiers audio. Il s’agit d’un écran de 4D systems. Celui-ci est autonome. Le constructeur fourni un environnement de développement permettant de le programmer.
Pour le fixer, j’ai installé des “pattes” en aluminium, et fabriqué de quoi le fixer l’écran sur celles-ci à l’avant du robot. Cependant, j’ai eu des soucis pour le faire communiquer avec le raspberry pi. La solution que j’ai trouvée, était d’utiliser le câble usb qui me permet de le programmer à partir de mon ordinateur. En branchant celui-ci sur le raspberry pi, j’avais à ma disposition un port série supplémentaire que je pouvais exploiter.
×
Etape 6 : Comment fixer les détecteurs d’obstacles avant
J’avais en effet déjà installé un détecteur d’obstacle sur la tête du robot, mais j’avais besoin que la base puisse détecter des obstacles quand celle-ci se déplace.
Le premier détecteur est le même que sur la tête du robot (à ultrasons) que j’ai placé à l’avant de la carrosserie (en dessous de l’écran). Après divers test, je me suis rendu compte qu’il fallait aussi que le robot puisse détecter des obstacles sur les côtés pour lui éviter de se manger un mur de côté par exemple.
Avec l’activityBot, le nécessaire est fourni pour fabriquer des détecteurs d’obstacles à infrarouge (composé d’un émetteur et d’un récepteur). Je n’avais plus qu’à fabriquer de quoi fixer tout ça. Du coup, j’ai mis un détecteur de chaque côté de l’écran, orientés à peu près à 30° par rapport à la direction “tout droit”. Ainsi, mon robot pouvait détecter si il se rapprochait d’un mur en le longeant et du coup, il pouvait s’en écarter.
×
Etape 7 : Fonctionnalités.
Voilà. Le robot est fonctionnel. Il faut ensuite passer à la programmation de celui-ci. En effet, “l’intelligence” ne se fait pas qu’avec des composants finalement, mais par un programme. Comme je l’ai précisé au début de ce tutoriel, je ne pourrais pas tout décrire ici. Et forcément, la partie programmation est ignorée. Il faut dire que c’est beaucoup de travail. Encore faut-il que je trouve du temps pour m’en occuper.
A ce jour, voici quelques fonctionnalités intéressantes du PLR1 :
– site web conçu pour le piloter depuis internet (il est connecté en wifi à un autre raspberry pi hébergeant le site web) avec affichage des images de la caméra sur le site. Je peux le faire se déplacer, diriger la caméra, allumer les leds etc… – pilotable depuis un téléphone android en bluetooth (même fonctions que ci-dessus sans l’affichage des images) – recherche, détection et suivi de visages – reconnaissance faciale (enfin à 85% fonctionnel, il arrive qu’il fasse des erreurs) – application android permettant de le piloter à la voix : sera remplacé par un module installé sur le robot même qui permettra de lui donner des instructions vocalement.
Je dois encore le faire évoluer mais la question est : jusqu’à quel point ? Pour moi c’est un projet à long terme : il y a encore tellement de choses à faire. Ce qui est intéressant dans tout ça, c’est tout ce qu’on arrive à apprendre au fil du temps. J’espère à travers ce tutoriel donner envie à d’autres qui à leur tour feront d’autres tutos pour partager avec la communauté.
En prime, ci-dessous un lien pour une petite vidéo de commande vocale avec un téléphone android. A bientôt !
×
Etape 8 : Comment habiller artisanalement le robot.
En l’état, mon robot était fonctionnel, mais pas très beau à mon goût. N’ayant pas d’imprimante 3D à ma disposition, j’ai décidé de bricoler de quoi l’habiller un peu pour le rendre un peu plus attrayant. Je suis donc parti de boites de DVD non utilisées (vous remarquerez que je recycle pas mal au final).
J’ai refait complètement la tête. Pour ça, j’ai coupé puis plié le plastique, fait des trous et disposé les différents composants (caméra, détecteur d’obstacle et leds). Puis, pour éviter qu’elle soit trop “carrée”, j’ai utilisé une vielle chaussette pour lui faire un bonnet (c’est une idée de mon fils). Ca en jette non ?
Pour cacher ensuite les fils, la batterie etc, j’ai aussi utilisé les boites de DVDs et une bombe de peinture pour la couleur. J’ai ainsi fixé des plaques sur les côtés du robot. Le résultat est quand même un peu mieux. Pour moi c’est temporaire qui va un peu durer car j’espère un jour pouvoir tout refaire avec une imprimante 3D.
Vous remarquerez que j’ai aussi fait de quoi fixer deux autres leds en dessous de l’écran sur la carrosserie.
Notre site Oui Are Makers utilise des cookies pour vous permettre de partager du contenu sur les réseaux sociaux, pour mesurer les audiences et établir des statistiques.
Conservation
Nous conservons votre choix pendant 6 mois.
Vous pouvez changer d’avis à tout moment en cliquant sur l’icône « Gérer les cookies » en bas à gauche de chaque page de notre site.
Detail cookies:
Cookies de mesures d’audience (Google Analytics).
Anonyme.
Cookies de partage (Open Graph).
Anonyme.
Cookies de panier (Stripe).
Anonyme.
Cookie commercial (Facebook)
Vous pouvez changer d’avis à tout moment en cliquant sur l’icône « Gérer les cookies » en bas à gauche de chaque page de notre site.