Club Robotique - Bras Robotique

Phase 1 - Robot 4 DDL à parallélogramme ARM.UNO

Capture d’écran 2025-01-16 105824.png

Phase 2 - Assemblage des pièces

Phase 1 - Assemblage des pièces

Objectifs pédagogiques

Compétences techniques visées

Savoir être (compétences comportementales)

Compétences transversales

Montage du bras robotique :

FICHE DE RÉFÉRENCE RAPIDE DES PARTIES STRUCTURELLES :

image.png

image.png

                                       

Montage de la Base :

Capture d’écran 2025-01-14 115314.png

Matériel nécessaire :

Capture d’écran 2025-01-14 115635.png

Etape 1 :

Capture d’écran 2025-01-14 115928.png

Fixez d'abord un palonnier double face à l'aide des petites vis fournies avec les servomoteurs.
Faites attention à l'orientation des pièces. Notez la petite flèche gravée sur la pièce, qui pointe vers l'avant du bras. Positionnez le palonnier comme indiqué, puis retournez les deux pièces et fixez les deux petites vis.
Positionnez toujours les vis à mi-distance ou plus loin du moyeu central du palonnier. Cela permet d'éviter une éventuelle interférence entre les têtes des vis et certains boîtiers de servomoteurs.

Etape 2 :
Capture d’écran 2025-01-14 140932.png

SI LES ENCOCHES NE S'ALIGNENT PAS
VÉRIFIEZ BIEN QUE LA PIÈCE EST ORIENTÉE COMME INDIQUÉ.
NE FIXEZ PAS ENCORE LES ÉCROUS ET LES BOULONS.

Etape 3 :

image.png

INSTALLEZ LA BARRE CENTRALE COMME INDIQUÉ.

AVEC LE DERNIER CÔTÉ INSTALLÉ, IL NE RESTE PLUS QU'À FIXER LES BOULONS ET LES ÉCROUS.

Capture d’écran 2025-01-14 141631.png

Pour le coté Gauche :

Capture d’écran 2025-01-14 141843.png

image.png

Placez le cercle du palonnier dans le trou correspondant du servomoteur.
Retournez les deux pièces et fixez à nouveau la vis du palonnier vers l'extrémité la plus éloignée afin d'éviter d'éventuels problèmes de dégagement avec le boîtier du servomoteur.


Capture d’écran 2025-01-14 142637.png

Pour la suite quelques petite précisions, il faut bien faire la différence entre l'avant du servomoteur et l'arrière.

Capture d’écran 2025-01-30 093130.png

Pour fixer le palonnier sur le servomoteur il faut d'abord donner ce code via l'Arduino nano  pour connaître sa position 0.

image.png

Arrivé à la position 0 mettez le palonnier à l'horizontal vers l'avant du servomoteur.

image.png

Capture d’écran 2025-01-14 143030.png              QxVimage.png

Coté droit :

Matériel :

Capture d’écran 2025-01-14 144431.png

Pour le servomoteur du coté droit, dans un premier temps le mettre à la position 0, puis placer le palonnier à l'horizontal vers l'arrière.

Capture d’écran 2025-01-30 093130.png

Capture d’écran 2025-01-14 144655.png

image.png

ASSEMBLAGE DU SERVOMOTEUR DU CÔTÉ DROIT AVEC LA BASE :

Capture d’écran 2025-01-14 145050.png image.png

Matériel de l'assemblage de la poutre du lien supérieur :

image.png

Fixez la renfort de la poutre du lien supérieur comme indiqué ci dessous :

image.png

Capture d’écran 2025-01-14 145652.png

Capture d’écran 2025-01-30 112310.png

                         Capture d’écran 2025-01-14 150331.png

L'assemblage principal du bras est maintenant terminé et prêt à recevoir l'assemblage de la pince.

Assemblage du servomoteur de la pince :

Matériel nécessaire :

Capture d’écran 2025-01-14 150549.png

image.png

Assemblage du reste de la pince :

Matériel nécessaire :

Capture d’écran 2025-01-14 152158.png

Capture d’écran 2025-01-14 152430.png

Mettre le servomoteur de la pince à la position 0 et mettre le palonnier à l'horizontal vers l'arrière.

Capture d’écran 2025-01-30 093130.png

Capture d’écran 2025-01-16 102542.png

Montage de la pince sur le bras :

Capture d’écran 2025-01-16 102859.png

Fixer la pince au lien supérieur gauche du bras avec une vis de 3 mm x 10 mm. ne pas trop serrer, car les vis pourraient comprimer le boîtier du moteur servo, ce qui entraînerait le blocage du train d'engrenages.

Capture d’écran 2025-01-16 104248.png

Fixer le lien parallèle à la pince avec un écrou et une vis de 3 mm x 10 mm. Ajuster le serrage pour permettre un mouvement libre.

assemblage de la base et du roulement :

image.png


Quand vous fixer le servomoteur mettez le à la position 90 puis vous avez juste à mettre votre bras robotique vers l'arrière à l'inverse de la dernière image.

image.png

Capture d’écran 2025-01-16 105824.png

Vous pouvez rajouter les extensions de la pince avec les pièces 31 et 32 comme ci-dessus.

Et voilà le montage de votre bras robotique est fini!!!

Source : Armuno A1Hd -V0.5-Assembly-7-22-2015-copy

Phase 3 - Programmation du bras robotique

Cinématique d'un bras robot

La cinématique est un domaine de la mécanique qui se concentre sur l’étude des mouvements. Ça tombe bien, le but d'un robot étant de bouger ! L'étude cinématique consiste donc à déterminer les positions, vitesses et accélérations des différentes parties d’un robot, sans prendre en compte les forces qui causent ces mouvements (puissance des moteurs par exemple). Un robot, souvent décrit comme une machine automatisée, peut effectuer des tâches complexes apportant une réelle valeur ajoutée dans divers secteurs.

Notre robot a 4 moteurs, l'objectif est de les actionner pour :

Les 4 moteurs contrôlent 4 mouvements possibles : 

https://www.youtube.com/watch?v=xQkPjDEbFoU

Attention chaque Servomoteur possède des positions maximums et minimums à bien respecter pour pas que ce dernier ne fonctionne plus.

Voici un tableau qui regroupe ces valeurs si vous l'avez monter comme dans la phase 1 : 

image.png

Pour ouvrir et fermer la pince c'est donc facile, on actionne le moteur 4.

Espace Cartésien : les mouvements de la pince et des objets

Espace articulaire : les mouvements des moteurs

La question principale qu'on se pose c'est comment actionner mes moteurs pour faire bouger ma pince comme je veux ? C'est le modèle cinématique inverse.

On peut aussi se demander : si je bouge mes moteurs à telle position, quelle sera la position de ma pince ? C'est le modèle cinématique direct.

Voici un code mblock qui permet de prendre un objet à une où le coude est à la position 140 et l'épaule à la position 150.

Epaule : Pin 6

Coude : Pin 9

Base : Pin 3 

Pince : Pin 13

Partie 1 :

image.png

Partie 2 :

image.png

Code traduit en Arduino

#include <Servo.h>

Servo monServo1;
Servo monServo2;  // Création de l'objet Servo
Servo monServo3;
Servo monServo4;


void setup() {
    monServo1.attach(3);
    monServo2.attach(6);
    monServo3.attach(9);
    monServo4.attach(13); // Attache le servomoteur à la broche définie

    monServo1.write(0);
    monServo2.write(90);
    monServo3.write(180);
    monServo4.write(90);
}

void loop() {

  delay(1000);
    // Balayage de 0° à 180°
    for (int angle =0; angle <= 90; angle++) {
        monServo1.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =180; angle >= 140; angle--) {
        monServo3.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =90; angle <= 150; angle++) {
        monServo2.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =90; angle <= 150; angle++) {
        monServo4.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =150; angle >= 90; angle--) {
        monServo2.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =140; angle <= 180; angle++) {
        monServo3.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =90; angle >= 0; angle--) {
        monServo1.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =180; angle >= 140; angle--) {
        monServo3.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =90; angle <= 150; angle++) {
        monServo2.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =150; angle >= 90; angle--) {
        monServo4.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =90; angle <= 150; angle++) {
        monServo4.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =150; angle >= 90; angle--) {
        monServo2.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);

    for (int angle =140; angle <= 180; angle++) {
        monServo3.write(angle); // Déplace le servo à l'angle spécifié
        delay(10); // Pause pour que le servo ait le temps de bouger
    }

    delay(1000);
}


Sources

Cinématique des robots série :

https://howtomechatronics.com/tutorials/arduino/diy-arduino-robot-arm-with-smartphone-control/ 

https://poppy.discourse.group/t/presentation-dun-travail-de-cinematique-2d-avec-le-robot-poppy-ergo-jr-1ere-s/2611 

https://poppy.discourse.group/t/algorithme-de-cinematique-inverse-applique-a-poppy-inverse-kinematic-algorithm-applied-to-poppy/1582 

https://learn.ros4.pro/fr/theory/ 

https://files.ros4.pro/theorie.pdf 

https://www.youtube.com/watch?v=vKD20BTkXhk 

Robot série à parallélogramme : 

https://www.youtube.com/watch?v=GnrRk9mWv7A 

https://www.youtube.com/watch?v=xQkPjDEbFoU

https://www.youtube.com/watch?v=Z7HWoh_MR1s

https://drive.google.com/drive/folders/1zaOw2QcZatylyqQoVnYhIK7iysyCOY2d

https://www.youtube.com/watch?v=Q9JOKQaIR1w

Un peu complexe :

https://eduscol.education.fr/sti/ressources_pedagogiques/analyse-et-performance-cinematique-dun-robot-bi-articule#fichiers-liens 

https://eduscol.education.fr/sti/sites/eduscol.education.fr.sti/files/ressources/pedagogiques/14480/14480-1-robot-bi-articule-doc-ressource.pdf