Robot mobile autonome

image principale Robot mobile autonome

Difficulté:

Fabriquer un robot mobile autonome et compact


Ce tutoriel vous permettra de vous initier à la robotique mobile autonome et d’expérimenter :
* L’utilisation de moteurs pas à pas
* La mise en œuvre d’un capteur de luminosité
* La détection d’obstacle, en utilisant un encodeur optique (par un usage un peu détourné de ce que l’on a l’habitude de voir)
* De pénétrer dans le monde de la gestion des interruptions et de voir qu’il est possible de gérer des ressources du micro contrôleur de la carte Arduino sans difficulté majeure, sous l’IDE Arduino!
* Concernant la partie mécanique, les différentes étapes de fabrication du robot sont illustrées et peuvent servir d’exemple. Nous avons cherché à faire un robot aussi compact que possible, ce qui a tout de même compliqué la tâche…

Matériel :

Budget : Non défini

  • Le matériel requis se décompose en deux parties.
  • – La partie électronique essentiellement, avec un peu de mécanique (voir le fichier pdf Liste_materiel_ArabotLike_1 qui fourni également les liens internet sur chaque fournisseur du matériel)
  • – La partie mécanique (cornière alu, visserie, rondelles, tige filetée,…) sans rentrer plus dans les détails (voir le fichier pdf Liste_materiel_ArabotLike_2)
  • J’ai rajouté un troisième document qui, pour certains composants, donne des liens vers des ressources documentaires ou de mise en œuvre supplémentaires.
  • Aucun plan du robot n’est fourni, car sa réalisation a fait l’objet de beaucoup d’ajustements, du fait de sa compacité. Toutefois, à partir des photos fournies, il est certainement possible de réaliser un robot possédant la même architecture., ,

Etape 1 : Partie mécanique 1 : le châssis

Pour commencer, il va falloir construire le châssis, qui supportera les moteurs pas à pas, la carte Arduino, le shield de commande des moteurs, la batterie et l’encodeur optique.
Le châssis est construit à partir des éléments suivants (voir photos supplémentaires):
– 2 cornières alu 15×40 mm, de longueur 98 mm qui supporteront par la suite les moteurs pas à pas
– 1 plaque Altuglass 65 x 98 mm, épaisseur 6 mm
– 4 éléments de tige fileté M3 avec un écrou frein à l’une des extrémités
Les dimensions mécaniques des moteurs sont fournies en fichiers techniques (cf. SY35ST26-0284A-1.pdf). Ces informations permettent d’effectuer les perçages pour monter plus tard chaque moteur.

Etape 2 : Partie mécanique 2 : La roue arrière

Les principales pièces mécaniques utilisées sont illustrés sur les photos supplémentaires.
La roue arrière est réalisée à partir d’un cochonnet de diamètre 30 mm. Elle servira également à entrainer le disque de l’encodeur optique à l’aide d’un pignon à 16 dents.
Le cochonnet est percé au diamètre de 4 mm, puis on réalise un champ plat afin de pouvoir coller dessus le pignon.
Une tige filetée de diamètre 3 mm et de longueur 50 mm servira d’axe.
On place d’abord le cochonnet, puis 2 rondelles sur le coté plat du cochonnet, puis le pignon contre les rondelles et on colle les rondelles sur le cochonnet , le pignon sur les rondelle, en utilisant de la colle rapide, sans se coller les doigts!!!!
Il faut veiller à ce que le cochonnet et le pignon tourne sur la tige filetée.
Lorsque tout a bien séché, on met la roue arrière en place en positionnant l’axe sur les 2 équerres.

Etape 3 : Partie mécanique 3 : montage de l’encodeur optique

On procède en 3 étapes.
Il faut d’abord mettre en place l’axe d’entrainement de la roue codeuse de l’encodeur optique.
Il faut fixer sur une tige filetée M3 de 80 mm de longueur la roue codeuse et le pignon d’entrainement (voir photos supplémentaires).
Une fois l’axe mis en place l’axe, il faut aligner les 2 roues dentées.
Ensuite, on positionne la fourche optique afin qu’elle passe au dessus de la roue codeuse, sans entraver la rotation de l’axe. Lorsque la position de la roue codeuse est correcte, il faut la bloquer avec les 2 écrous.
Pour finir, on met en place la chaine d’entrainement sur les 2 pignons. On procède de la même façon que sur un vélo. Si il y a trop de jeu, il suffit de supprimer un ou plusieurs maillons de la chaîne.

Etape 4 : Partie mécanique 4 : dernières étapes

Le plus dur étant fait, il reste à monter les 2 moteurs pas à pas,
Les roues sont mises en place (auparavant, il faut fixer les moyeux d’adaptation – voir photos supplémentaires)
La carte Arduino avec le shield de commande des moteurs est fixée sur une plaque d’Altuglass qui sera ensuite fixée sur la partie supérieure du robot .
Le shield de commande des moteurs est enclipsé sur la carte Arduino.
Pour finir, on positionne la batterie qui sera fixée en utilisant du velcro.
Il ne reste plus qu’à raccorder les différents éléments Sur le shield et la carte Arduino.

Etape 5 : Raccordement des éléments sur la carte Arduino et le shield de commande des moteurs


Maintenant, on s’attaque à des parties plus faciles, c’est à dire la connexion des différents éléments sur la carte Arduino et le shield de commande des moteurs pas à pas.
Le branchement des moteurs sur le shield s’effectue sur les connecteurs “X drive socket” et “Y drive socket” (voir Schema_Shield_MoteurPaP.pdf). Chaque socket permet le câblage des 2 enroulements d’un moteur pas à pas (par exemple, pour le socket Y : enroulement 1 : Y01B et Y01A et enroulement 2 : Y02B et Y02A)
Pour chaque moteur, il y a 4 fils qui correspondent aux deux enroulements (Noir-Vert) et (Rouge-Bleu) (Voir fichier technique Y35ST26-0284A.pdf) On adopte alors le câblage suivant pour le moteur droit, sur le socket X :
– Noir : X01A
– Vert : X01B
– Rouge : X02A
– Bleu : X02B
On procède de la même façon avec le moteur gauche, sur lme socket Y, soit :
– Noir : Y01A
– Vert : Y01B
– Rouge : Y02A
– Bleu : Y02B
Le capteur de luminosité est alimenté en 5V et sa sortie (broche “SIG” sur le shield) sera connectée sur la broche A0.
L’encodeur optique est aussi alimenté en 5V (d’où la présence du domino pour les 2 alimentations 5V) et sa sortie (fil vert) est connecté sur la broche D11.
Voilà, tout est en ordre pour attaquer la programmation.

Etape 6 : Programmation

Etape 7 : Programmation : Contrôle des moteurs

Les moteurs pas à pas utilisé effectuent un tour complet en 200 pas. Par l’intermédiaire du shield de commande des moteurs (voir aussi fichiers techniques sur le shield de commande des moteurs pas à pas), il est possible d’exécuter un pas en envoyant une impulsion (front montant puis descendant) pendant une durée de 1 µs min (nous avons choisi une durée de 2 µs), sur la broche STEP de commande du circuit intégré qui gère chacun des moteurs. Afin de gérer l’envoi périodique du signal de commande sur l’entrée STEP de chaque circuit de commande, nous allons utiliser le mécanisme d’interruption du Timer 2, sur dépassement de capacité du registre de comptage de ce même timer (interruption sur timer overflow). L ‘intérêt de générer le signal de commande des moteurs par interruption Timer est de ne pas bloquer le programme sur cette tâche.

Le lien http://letsmakerobots.com/node/28278 permet d’accéder à un document assez accessible pour comprendre les interruptions générés par un timer. Il sera utile de compléter la lecture de la documentation du micro contrôleur ATmega328P présent sur la carte Arduino (http://www.atmel.com/devices/atmega328p.aspx) afin d’accéder à la configuration des timers.
L’utilisation des interruptions sur overflow des timers requiert les étapes suivantes :
– Dans le setup : initialisation des registres du timer2
– Ecriture de la routine d’interruption associée
– Selon la vitesse de rotation désirée, chargement du registre de comptage du Timer1 avec une valeur comprise entre 0 et 65535 (compteur 16 bits)
tout en gérant l’inhibition ou non des interruptions au travers du registres SREG.
Si des variables doivent être modifiées au sein de la routine d’interruption, elle doivent être déclarées en variable globale, avec le modificateur volatile.
Voir le fichier Cmde_MoteurPaP_Code en fichiers technique comme exemple de code associé.

Etape 8 : Programmation : Gestion de l’encodeur optique

"" onclick="__gaTracker('send', 'event', 'outbound-article', '" rel="nofollow external" class="ext-link" target="_blank">

Etape 9 : Programmation : Prise en compte des données issues de l’encodeur optique et du capteur de luminosité

Ces tutoriels devraient vous plaire

vignette Comment fabriquer son filament pour imprimante 3D
Comment fabriquer son filament pour imprimante 3D
vignette Préparer un fichier pour une découpe et une gravure laser
Préparer un fichier pour une découpe et une gravure laser
vignette Arduino Uno - Capteur d'humidité au sol.
Arduino Uno - Capteur d'humidité au sol.

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers