Je vais essayer de décrire ma démarche et les étapes de la réalisation, de mémoire (cela remonte à fin 2010 début 2011 tout de même !).
Motorisation
J’ai commencé par m’occuper de la motorisation.
J’ai "emprunté" des roues de Lego de 42,5mm de diamètre à mon fils.
J’ai acheté deux kits de transmission : moteur à courant continu et ensemble d’engrenages qui permettent d’obtenir différents rapports de réduction de vitesse.
http://www.conrad.fr/ce/fr/product/240788/Kit-de-transmission-variable-Modelcraft
En partant de la vitesse de déplacement approximative que je cherche à obtenir, soit environ 30cm par seconde, c’est à dire 18m/mn.
Connaissant la vitesse nominale du moteur à courant continu : 15000 tr/mn lorsqu’il est alimenté en 5V.
Il est facile de calculer grossièrement le rapport de réduction de vitesse : soit rapport de réduction = (vitesse moteur x périmètre de la roue) / vitesse du mobile.
On obtient donc un rapport approximatif de 15000 x 0,134 / 18 = 112
J’ai alors choisi un rapport de 125.
Il y a deux moteurs à courant continu avec leur réducteur à l’arrière, et une roulette pivotant librement à l’avant, les moteurs sont calés pour que la plate-forme soit à peu près horizontale.
Aujourd’hui j’aurai plutôt choisi ceci : http://www.arobose.com/shop/moteurs-servos-robot/161-double-bloc-moteur-engrenage.html
Pour la commande des deux moteurs à courant continu, j’utilise un L298N, il s’agit d’un double pont en H.
- L298
Remarque : Il existe un shield arduino tout fait, c’est encore plus simple à mettre en œuvre.
- Shield L298
La partie motorisation est directement alimentée par 4 piles AA.
Capteurs
Dans un premier temps j’ai monté deux micro-switchs sur un "pare-choc", ainsi lorsque le mobile touchait un obstacle, il changeait de direction.
Puis j’ai rajouté un capteur infra-rouge de type SHARP GP2Y0A02YK, qui permet de détecter les obstacles à distance.
Le capteur fourni une tension analogique fonction de la distance. Il faut donc le connecter sur une entrée analogique.
L’angle de détection étant assez faible, j’ai monté le capteur sur un servomoteur qui balaye l’avant du mobile.
Pour connaître la position de l’obstacle, j’ai découpé la plage de balayage en plusieurs secteurs, je fais partir le mobile dans la direction opposée à l’obstacle.
J’ai également rajouté un bouton poussoir à l’arrière pour faire démarrer le mobile.
arduino
C’est un arduino Uno qui pilote tout cela.
En entrée numérique il y a :
les 2 micro-switchs montés à l’avant sur le pare-choc
le bouton poussoir de démarrage
En entrée analogique il y a :
le capteur de distance IR SHARP GP2Y0A02YK
En sortie il y a :
4 bornes pour le circuit L298 (sens des moteurs)
la commande de l’angle de rotation du servomoteur
alimentation
Les moteurs, servomoteurs et capteurs sont alimentés avec 4 piles AA.
Ce qui fait soit 6V si on met des piles, soit 4,8V si on met des batteries rechargeables.
L’arduino est alimenté séparément avec une pile de 9V, car 6V c’est un peu juste pour le régulateur 5V de l’arduino et 4,8V est très insuffisant.
Un interrupteur double, fixé à l’arrière permet de couper simultanément les deux alimentations.