samedi 21 mars 2015

Transformation d'une voiture radiocommandée en robot mobile

Les enfants adorent les voitures radiocommandées...pendant quelques jours.  Ensuite, ils finissent par s'en désintéresser, les piles tombent à plat et le jouet est oublié dans un coin, jusqu'au jour où les parents profitent d'un vide-grenier pour s'en débarrasser...à un prix vraiment très modique, puisqu'on ne retrouve plus la fichue télécommande...

Et c'est ici qu'intervient le bidouilleur qui aime bien fabriquer des robots:  un véhicule rc sans sa télécommande, ça se transforme très facilement en plateforme robotique!

Oui, bien sûr, il existe des plateformes robotiques spécialement conçues à cette fin, mais c'est beaucoup plus cher et, franchement, quand vous achetez des trucs tous faits, vous vous privez d'une grande partie du plaisir!

Types de propulsion / direction

Les voitures rc ne sont pas toutes identiques.  Un type très courant comporte un moteur DC qui fait tourner l'ensemble de l'essieu arrière (pour la propulsion du véhicule) et un servomoteur qui incline les roues avant (pour la direction).  Je ne vois pas de raison qui empêcherait un tel véhicule d'être transformé en robot autonome, mais je n'ai pas encore essayé. 

Dans un autre type de véhicule, chaque roue arrière est contrôlée individuellement par son propre moteur.  On peut donc faire tourner l'auto en réglant les deux moteurs à des vitesse de rotation différente (le véhicule peut même tourner sur place si les deux roues arrières tournent en sens contraire l'une par rapport à l'autre).  Un avantage important de ce type de véhicules, c'est que les plateformes robotiques conventionnelles utilisent précisément ce type de propulsion/direction, ce qui permet de trouver facilement des programmes prêts à l'utilisation, que nous n'auront même pas besoin de modifier.

Pour ce projet je me suis procuré pour la modique somme de $2,99 (environ 2 €) un véhicule "Marvel Superhero Squad" ayant de toute évidence appartenu à Iron Man.

Il s'agit d'un modèle comportant deux moteurs:  un premier moteur fait tourner des deux roues situées du côté gauche du véhicule (la roue avant et la roue arrière tournent ensemble grâce à un système d'engrenages), et un deuxième moteur fait tourner les deux roues situées du côté droit.

J'avais choisi ce modèle en bonne partie parce que j'étais intrigué par ce mécanisme de propulsion à 4 roues motrices (qui peut s'avérer intéressant sur un terrain accidenté) mais, comme nous ne le verrons plus loin, ça s'est avéré un inconvénient plutôt qu'un avantage.

On démonte!
On commence par retirer la carrosserie, qu'on pourra toujours remettre en place plus tard, si on veut. À l'intérieur, on voit immédiatement la carte de contrôle, qu'on retire puisqu'on la remplacera par un Arduino (ou tout autres microcontrôleur de notre choix), qu'on pourra programmer à notre guise.





On garde tout le reste tel quel:  le châssis, les deux moteurs (bien visibles sur la photo), les roues ainsi que les engrenages qui permettent au roues de tourner beaucoup plus lentement que le moteur.  Avant d'aller plus loin, c'est une bonne idée de vérifier que les moteurs fonctionnent encore.


Vue d'en dessous:  le compartiment pour 4 piles AA pourra être utilisé tel quel, ainsi que l'interrupteur marche/arrêt.   Dans ce véhicule, toutefois, les piles avaient coulé et les connecteurs étaient recouverts d'une croûte non-conductrice.  Un nettoyage avec un coton tige imbibé de vinaigre a fait des miracles (comme leur nom l'indique, les piles alcalines sont faites d'un électrolyte alcalin, donc on le neutralise avec un acide).


Ajout d'un cerveau

Nous espérons que notre robot sera beaucoup plus intelligent qu'un stupide jouet téléguidé, il faut donc lui ajouter un cerveau.

J'ai choisi de contrôler mon robot avec un Arduino Uno et un L293D, mais il existe bien sûr bien d'autres options.  Je préfère toujours une alimentation distincte pour les moteurs et pour l'Arduino:  donc les 4 piles AA situées dans le réceptacle d'origine serviront à alimenter les moteurs, alors que l'Arduino sera alimenté par une batterie 9 V branchée à son jack d'alimentation.


Selon vos préférences, le circuit peut être proprement soudé pour en faire un produit fini.  Si votre robot est destiné à de multiples expérimentations, une petite breadboard peut être plus appropriée (c'est ce que j'ai fait ici, avec un shield de prototypage monté sur l'Arduino).


Un premier test, sans capteurs

On peut maintenant vérifier si tout fonctionne correctement, en téléchargeant dans l'Arduino un petit sketch qui fera avancer, reculer et tourner le robot.  C'est l'occasion de se rendre compte, par exemple, qu'un des moteurs a été branché à l'envers (facile à rectifier, en inversant deux fils), ou qu'un des moteurs tourne un peu plus vite que l'autre (un peu plus irritant, mais on peut modifier le sketch en conséquence).


C'est à cette étape que j'ai réalisé que mon intrigant mécanisme de propulsion à 4 roues motrices faisait en sorte que mon robot était incapable d'effectuer un virage:  si la vitesse de rotation des deux roues de gauche était différente de celle des deux roues de droites, le robot continuait quand même en ligne droite.  Si le sens de rotation des deux paires de roues était opposés, le véhicule demeurait immobile au lieu de tourner sur lui-même.

Ma solution:  atténuer au maximum l'adhérence des deux roues avant afin qu'elle glissent lors des virage.  J'ai donc recouvert les deux roues avant de ruban gommé lisse.  Maintenant ça fonctionne correctement, mais ma conclusion est que tout est bien mieux quand les moteurs ne font tourner que les roues arrière!

Ajout de capteurs

Il ne reste plus qu'à ajouter au robot des capteurs qui lui permettront d'interagir avec son environnement:  un ou plusieurs capteurs à ultrasons pour en faire un robot éviteur d'obstacles, des LEDs et des photorésistances pour le transformer en robot suiveur de lignes, une paire de photorésistances pour en faire un robot suiveur de lumière.  On peut aussi le contrôler à distance avec un joystick ou une télécommande de téléviseur.

Yves Pelletier (Twitter: @ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire