mardi 24 juin 2014

Construction d'un bras robotique miniature

Je vous présente aujourd'hui mes premières expérimentations en matière de bras robotique.

Établissons tout de suite quelques balises:  l'idée ici n'est pas de construire un bras manipulateur de qualité industrielle, mais plutôt de bricoler un premier prototype simple qui nous permettra d'explorer le concept.  Les priorités sont donc:   facilité de construction (vous pouvez le construire à la maison en quelques minutes, sans disposer d'outils sophistiqués) et faible coût.

Bien sûr, l'expérience acquise lors de la création de ce dispositif modeste nous aidera probablement à concevoir de bras plus ambitieux dans l'avenir.

Choix des moteurs

Les articulations du bras robotique devront tourner de quelques dizaines de degrés, avec une précision raisonnable.  On peut tout de suite écarter les simples moteurs à courant continu car ils tournent beaucoup trop rapidement!  Un moteur à courant continu muni d'un moto-réducteur pourrait toujours faire l'affaire, mais il faudrait ajouter des capteurs qui nous permettraient de connaître l'orientation des segments du bras.

Pour la présente application, les servomoteurs et les moteurs pas à pas répondent beaucoup mieux à nos besoin, puisqu'on peut les faire tourner lentement et leur faire atteindre une position très précise.

Dans un soucis de simplicité, j'ai opté pour l'utilisation exclusive de servomoteurs.  Et dans un soucis d'économie, j'ai choisi d'utiliser de très petits servomoteurs peu puissants (Tower Pro SG90):  par conséquent notre bras robotique sera petit et léger!  Il sera donc construit avec deux petites tiges de bois d'environ 10 cm de longueur (ce qu'on appelle "bâtons de popsicle" au Québec et que vous appelez, je crois, "bâtons d'esquimaux" en Europe).
Combien de degrés de liberté?

Le bras comportera 3 degrés de liberté, pour la simple raison que je dispose de 3 servomoteurs!  Deux servomoteurs placés à la base permettront à une première tige de tourner selon deux axes de rotation (un axe vertical et un axe horizontal), et un deuxième servomoteur placé à l'autre extrémité de la tige fera tourner un deuxième segment du bras.

Alimentation

Il est hors de question d'alimenter 3 servomoteurs en les branchant sur la sortie 5 V de l'Arduino:  ils utilisent trop de courant.  Nous les alimentons donc avec une source d'alimentation indépendante de 5 (j'ai utilisé une alimentation d'atelier, des piles auraient fait l'affaire aussi).  N'oubliez pas de relier les masses entre elles:  borne négative de l'alimentation reliée à une des pins GND de l'Arduino.




Construction

Lors de l'achat, chaque servomoteur était vendu avec un certain nombre de petits accessoires en plastique. J'ai d'abord fixé un de ces accessoires sur un rectangle de bois qui servira de base pour soutenir le bras robotique.


Un premier servomoteur sera inséré dans cette plate-forme:  c'est celui qui fera tourner le bras autour d'un axe de rotation vertical.

Un deuxième servomoteur est fixé au premier, et on l'oriente pour qu'il puisse faire tourner une tige autour d'un axe de rotation horizontal.  Vous pouvez utiliser de la colle si votre but est de faire immédiatement un montage permanent.  J'ai simplement utilisé un peu de ruban adhésif car je prévois réutiliser les mêmes servomoteurs pour autre chose plus tard.


Sur un premier bâton d'esquimau nous fixons près d'une extrémité un accessoire de fixation en plastique qui sera inséré sur l'arbre du 2e servo et, à l'autre extrémité, un troisième servo (qui contrôlera un 2e bâton d'esquimau).  Vous vous demandez peut-être que font les deux écrous sur la photo?  Je les ai utilisés comme contre-poids, en les collant sur la tige à l'extrémité opposée au servo:  ce n'est pas strictement obligatoire, mais ça facilite un peu la tâche des deux servos placés à la base du dispositif.



Petite vidéo du bras en action



Sketch

Voici un sketch qui permet de contrôler le bras robotique à partir du moniteur série du logiciel Arduino.  Chaque servomoteur peut prendre n'importe quelle position entre 0° et 180°.  Si je désire que le premier servomoteur se place à la position 33°, que le deuxième se place à la position 127°, et que le troisième se place à la position 95°, j'écris dans le moniteur série le nombre 033127095 (les trois premiers chiffres représentent l'angle du premier servomoteur, les trois suivants celui du deuxième servomoteur, etc.).

Ce sketch a été fortement inspiré par un exemple fourni par Zoomkat dans le forum Arduino.  La principale modification que j'y ai apportée, outre l'ajout d'un troisième servo, est l'ajout d'un mécanisme qui limite la vitesse à laquelle les servomoteurs tournent pour atteindre l'orientation désirée.  Dans le sketch d'origine, les servomoteurs tournaient tellement rapidement qu'il en résultait presque systématiquement un démembrement de mon bras robotique...





Voici donc où j'en suis pour l'instant, mais j'ai bien l'intention de poursuivre avec un bras robotique un peu plus robuste (avec des moteurs pas à pas, probablement) et plus utile (une pince manipulatrice à l'extrémité, ce serait pas mal...).

En attendant, n'hésitez pas à utiliser les outils ci-dessous pour nous faire part de vos conseils et commentaires.

Yves Pelletier (Twitter:  @ElectroAmateur)

6 commentaires:

  1. Génial. Merci beaucoup !

    RépondreSupprimer
  2. BONJOUR J'aimerai avoir la video de la mise en oeuvre de ce projet ,montrant comment vous connectez les différents servomoteur de votre robot sur la carte arduino, car je dois faire le meme travail ,ais plus tot avec un robot à trois dégrés de liberté , et je rencontre de grosse difficulté pour connecté mes trois servos moteurs sur ma carte Arduino; la video qui est plus haut montre seulement le robot en mouvement, mais ne montre pas les différentes connexion

    RépondreSupprimer
    Réponses
    1. L'article comporte un schéma qui montre comment connecter les 3 servomoteurs.

      Supprimer
  3. bonsoir,merci infiniment d'avoir publier cet article ,car il sera tres utile pour mon projet surtout que je travail sur le meme dispositif , sauf que j'aimerais bien savoir le montage des fils entre les servo-moteur et le lab dek et aussi ma carte arduino ,j'aimerais bien avoir un schema du montage .

    RépondreSupprimer
  4. Bonjour, merci c'est très instructif, avez-vous publié un article avec des moteurs pas à pas ?

    RépondreSupprimer
  5. Salut ! Merci pour vos conseils, moi qui me lance tout juste là dedans !

    RépondreSupprimer