Skip to main content

Projet ROB3 - Robot écrivain : Bastien Antonin Antonin

Informations

COUQUE Bastien  bastien.couque@etu.sorbonne-universite.fr

Étudiant Robotique 3-A 

Polytech Sorbonne

CHAUVET Antonin antonin.chauvet@etu.sorbonne-universite.fr

Étudiant Robotique 3-A 

Polytech Sorbonne

CENSIER Antonin

antonin.censier@etu.sorbonne-universite.fr

Étudiant Robotique 3-A 

Polytech Sorbonne

Date de début de Projet :   8 Janvier 2024

Date de fin du Projet :  30 mai 2024

Contexte

Ce projet de robotique s'inscrit dans le cadre de nos études en Robotique, plus précisément pour notre projet du second semestre de notre première année. Ce projet est pour chacun de nous le premier projet robotique.

Objectifs

Les objectifs de ce projet nous on été donnés par nos responsables d'U.E et sont précisés via le lien suivant :

https://wiki.fablab.sorbonne-universite.fr/BookStack/books/projets-due-2023-2024/page/le-sujet-du-projet

Nous les résumons ci-dessous :

L'objectif principal de ce projet est de concevoir et réaliser un système robotique, c'est-à-dire sa partie mécanique, sa motorisation, sa commande et son interface de pilotage. Les fonctions que notre système robotique doit être capable de réaliser sont :

- Tracer, avec l'aide d'un crayon fixé sur l'organe terminal du robot une ligne de 5 cm de long, une ligne pointillée de 5cm de long, un cercle de 2,5 cm de rayon, un cercle pointillé de 2,5 cm de rayon.

-Le tracé de chacune des figures doit être réalisé en 10 secondes +/- 0,2 secondes.

- Tracer, avec l’aide d’un crayon fixé sur l’organe terminal du robot, un dessin imposé dans un carré de 5cm par 5cm. Le déplacement de l’organe terminal du robot devra être piloté par un joystick. Il est possible que la figure soit discontinue, et donc il faut prévoir de pouvoir relever le crayon du support horizontal sur lequel on écrit.

Une fonction supplémentaire, optionnelle , peut être réalisée :

  • Être capable de modifier la vitesse de déplacement du robot via l’interface.

L'objectif reste avant tout d'apprendre par la pratique les bases de la gestion d'un projet (c'est-à-dire la façon de s'organiser en équipe pour atteindre un objectif donné avec des moyens donnés) que d'aboutir à un prototype fonctionnel.

La photo ci-contre n'est pas en lien avec notre projet mais sert d'emplacement pour une photo finale une fois le projet réalisé dans son intégralité.

image-1653061695508.jpeg

Matériel

Voici la liste du matériel donné (imposé) par nos responsables de projet :

  • Un crayon
  • Interface de commande :
    • Une carte arduino UNO avec câble USB-B;
    • Un joystick:
    • Une platine de protoypage;
    • Alimentation régulée 5V ;
    • Câbles, LEDs, boutons poussoirs, résistances.
  • Motorisation :
    • Deux servomoteurs HS422 180°;
    • Un servomoteur Emax ES08A 180°.
  • Mécanique :
    • Matière PLA pour impression 3D;
    • Feuilles medium : 3mm et 6mm d'épaisseur;
    • Vis et écrous : M2, M2.5, M3, M4.
    • Roulements et axes de diamètre 4mm.
  • Ressources CAO.zip contient les fichiers Solidworks pour les deux modèles de servomoteurs téléchargeable via le lien suivant : https://wiki.fablab.sorbonne-universite.fr/BookStack/link/1279#bkmrk-ressources-cao.zip-c
  • datashetts.zip contient les documentations de quelques-uns des composants fourni téléchargeable via le lien suivant : https://wiki.fablab.sorbonne-universite.fr/BookStack/link/1279#bkmrk-ressources-cao.zip-c

Machines utilisées

Les machines mise à notre disposition sont celles du Fablab.
Nous pouvons utiliser les découpes laser et les imprimantes 3D (Nous n'en avons pas encore utiliser pour le moment)

Construction

Les étapes de construction de notre robots seront détaillées dans cette partie lorsque la conception de ce dernier sera finalisée

Étape 1

----

Étape 2

----

Étape 3

----

Journal de bord

Avancée du projet à chaque étape, difficultés rencontrées, modifications et adaptations (facultatif pour les petits projets)

08/02/2024

La première étape de notre projet était de poser sur une feuilles toutes nos idées. Trois solutions ont eu le mérite d'être schématisées.  Bien qu'elles répondent toutes à la même problématique, chaque solution possède ses propres inconvénients et avantages. Le but de cette étape était d'analyser les propriétés de chaque solutions, se projeter au niveau des problèmes de conception enfin de choisir la solution la plus adaptée à nos compétence et au problème final. 

La première solution serait un robot à deux roues, avec en un point du châssis, son effecteur. Il y aurait un moteur pour chaque roue ainsi qu'un moteur pour lever et baisser l'effecteur. 

schema_robot_3.jpeg

Seulement ce robot nous pose quelques problèmes : 

  • précision de l'odométrie : les roues des robots peuvent glisser ou patiner ce qui entraîne des erreurs dans la mesure du déplacement.
  • utilisation de servomoteurs pour contrôler la rotation des roues : nos servomoteurs peuvent réaliser seulement un demi tour ce qui rend difficile son utilisation pour réaliser plusieurs tours de roue.
  • positionnement sur la feuille, il est influencé par l'endroit où nous le posons

Cette option propose néanmoins des points forts : 

  • Compact
  • possibilité d'expansion au delà de la feuille
  • Peu de matériel

La deuxième solution est un bras, constitué de deux articulations, une base et un effecteur. Il y aurait donc un moteur par articulation. Pour répondre au cahier des charges il faudrait aussi permettre une translation sur la hauteur afin de contrôler le contact entre l'effecteur et la feuille. 

schema_robot_2.jpeg

Voici les avantages que présente cette option : 

  • Guidages des déplacements dans le plan de la feuille simplifiés comparés aux autres
  • Utilisation des servomoteurs simplifié
  • modèle géométrique de la position de l'effecteur simplifié
  • Positionnement simplifié

Et voici ses défauts :

  • guidage de la translation selon l'axe z

La dernière solution imaginée est inspirée du fonctionnement d'une imprimante 3D. Le déplacement de l'effecteur se consiste de deux translations dans le plan et une dernière perpendiculaire au plan. La première consiste a déplacer l'effecteur suivant un rail horizontal et la seconde consiste à déplacer le rail précédent sur un second rail horizontal. Ces deux mouvements permettent le mouvement dans le plan pour écrire. Le mouvement de translation permettant la montée est descente de l'effecteur est réalisé par un autre moteur sur l'axe de l'effecteur.

schema_robot_1.jpeg

Nous avons pensé à trois différents moyen de transmissions d'effort pour déplacer les chariots : 

  • Bielle manivelle
  • Roue et rail denté
  • Système de courroie 

Avantages : 

  • paramétrage des mouvements simples à concevoir
  • positionnement global

Inconvenants :

  • guidage
  • transmissions des efforts (servomoteur)

Le premier choix ne nous semble pas optimal principalement à cause du manque de précision de l'odométrie mais aussi le manque de précision lors du positionnement du robot, cette solution ne sera donc pas celle choisie.

Le troisième choix présente des avantages mais les guidages et la transmission d'effort nous semble problématique à concevoir avec l'utilisation de servomoteur qui ne peuvent pas réaliser de tours complets.

Le second choix nous semble le meilleur compromis pour répondre à notre problème grâce à une bien meilleure précision comparé au premier choix ainsi qu'aux guidages et transmissions d'efforts moins complexes que ceux du troisième choix. Cependant, nous devront réfléchir au placement des servomoteurs et au guidage de la translation selon la hauteur.

Nous choisissons donc le choix deux pour ce projet.

15/02/2024

Schéma électronique :

image.png

image.png

Notre schéma électronique comporte la carte arduino, la platine de prototypage ainsi que les boutons poussoirs, les servomoteurs, 2 potentiomètres (qui sont normalement le joystick mais le logiciel sur lequel nous avons crée notre schéma électronique ne le proposait pas en bibliothèque) et les résistances (et câbles). Nous utilisons donc nos 3 servomoteurs ainsi que 5 boutons poussoirs. Ces boutons poussoirs nous serviront à déterminer le mode de fonctionnement du robot selon lequel des boutons a été appuyé. Il y a donc 5 boutons pour le trait continu, le trait pointillé, l'arc de cercle continu, l'arc de cercle pointillé, et le guidage par un joystick. Le câblage du bouton poussoir est décrit dans la documentation ci-contre : https://docs.arduino.cc/built-in-examples/digital/Button/

En résumé, un fil lie l'alimentation 5V à la platine, un autre la masse et un troisième par d'une broche numérique de la carte arduino à une patte du bouton. Ensuite, nous connectons une patte directement à l'alimentation sur la platine et l'autre à travers une résistance de 10Kohm et vers la masse.
Pour le branchement des servomoteurs, nous avons suivis la méthode expliquée dans ce site : https://www.volta.ma/comment-controler-les-servomoteurs-avec-arduino/arduino/

Il est expliqué :"il vous suffit de connecter trois fils: alimentation, masse et signal. Le fil d’alimentation est généralement rouge et doit être connecté à 5 V." "Le fil de terre est généralement noir ou marron et doit être connecté à la broche de terre de l’Arduino."

"Le fil de signal est généralement jaune, orange ou blanc peut être connecté à l’une des broches numériques de l’Arduino." 
Dans notre cas, nous avons bien veillés à connecter nos servomoteurs sur les broches numériques PWM (Pulse Width Modulation) car les servomoteurs sont contrôlés en envoyant un signal PWM à la ligne de signal du servo et la largeur des impulsions détermine la position de l’arbre de sortie. Le fonctionnement du PWM est détaillé dans la documentation suivante : https://docs.arduino.cc/learn/microcontrollers/analog-output/ 

Enfin, le joystick a été représenté par 2 potentiomètres car le joystick analogique est un bouton monté sur une charnière avec deux potentiomètres. L’inclinaison du bouton fait tourner les potentiomètres et modifie la tension de sortie, ce qui permet de contrôler le degré de déviation du bouton par rapport au point central et, grâce à cela, de contrôler l'angle des servomoteurs.

Nous avons réalisé la modélisation du robot à l'aide du logiciel SolidWorks. Nous avons commencé par dimensionner le bras. Celui-ci est composé de deux parties que nous avons nommées pour la suite : la partie reliant la base à la seconde partie du bras sera appelée « bras », et la seconde partie, qui relie le bras à l’effecteur, sera appelée « avant-bras ». Ces deux parties seront réalisées à l’aide de deux bielles superposées et fabriquées par découpe laser. La liaison de ces deux bielles superposées est réalisée par une bielle de liaison qui sera montée serrée dans les deux bielles. La liaison du bras avec l'avant-bras sera réalisée par des roulements et un boulonnage.

La base du robot sera également réalisée en découpe laser pour concevoir une sorte de boîte, comme on peut le voir sur la première version de la modélisation du robot sans l’effecteur. Ce support est composé de plaques de 3 mm d’épaisseur pour les plaques inférieure et supérieure, ainsi que la plaque du fond de la base. Il contiendra des plaques de 6 mm d’épaisseur pour les plaques latérales qui supporteront également les plaques de 6 mm d’épaisseur pour soutenir le bras et le servomoteur 1. Cette base permettra aussi de contenir le microcontrôleur.

V0 modélisation.png

Ce qui nous a posé le plus de problèmes a été le positionnement des servomoteurs. Nous avons choisi, pour des raisons d’encombrement, d’utiliser un Hitec HS422 pour la rotation du bras (servomoteur 1) et deux FT90MR pour la rotation de l’avant-bras (servomoteur 2) et la translation selon l’axe vertical de l’effecteur (servomoteur 3).

Le servomoteur 2 est fixé grâce à un support monté serré sur l’avant-bras, le servomoteur 3 est également fixé avec un support monté serré mais lui sur le bras. Le servomoteur 1 est fixé sur une plaque de 6 mm dans la base.

Explication du guidage :

Pour l’avant-bras : la liaison est réalisée au bras avec l’aide de roulements. Pour la bielle supérieure, elle sera boulonnée avec le roulement et pour la bielle inférieure, le guidage du servomoteur sera utilisé pour viser la bielle. La bielle sera vissée avec le roulement et le servomoteur, pinçant ainsi le roulement et le palonnier.

Pour le bras : le guidage est indépendant du servomoteur, contrairement à l’avant-bras. Le guidage est réalisé avec des roulements et un boulonnage.

Pour la transmission des efforts :

Pour l’avant-bras : l’axe du servomoteur sert de guidage, donc la transmission de l’effort est réalisée en même temps que le guidage.

Pour le bras : nous utilisons un palonnier cylindrique, avec 4 axes montés serrés dans la bielle qui se glisse dans les trous du palonnier.

Effecteur : 

Pour la conception de l’effecteur, notre première réflexion était de pouvoir tenir le feutre, via une mise en positon (MIP) et un maintien en position (MAP). Nous nous sommes servis du décalage d’épaisseur entre la partie inférieur et le supérieur du feutre pour faire un anneau de butée qui assure la MIP. Un autre anneau est nécessaire pour assurer que le stylo ait une fixation linéaire et non annulaire. Ce second anneau se trouve plus haut et nous avons pensé à réaliser un serrage avec un système écrou/vis afin de réaliser la MAP.

Pour que l’effecteur se déplace à la verticale il fallait lui laissait un degré de liberté mais tout de même le guider. Pour ceci nous avons utilisé la partie qui relie l’anneau inférieur et supérieur que nous avons élargi latéralement. Le but était d’ensuite venir fixer sur les bielles deux plaques aux formes complémentaires pour réaliser un guidage glissière.

La dernière problématique était de faire bouger l’effecteur. Pour cela, nous utilisons la rotation du servomoteur selon l’axe x, auquel est fixé un palonnier avec un petit cylindre enfoncé à son extrémité. Il nous suffisait ensuite d’emprisonner cet axe à l’arrière de notre effecteur, entre deux « plaques » qui lui permettent le mouvement en x (qui est nous inutile mais inéluctable) et surtout qui guiderons l’effecteur selon z.

Calcul nécessaire : Soit L la distance entre axe palonnier/cylindre, O l’angle de rotation dans le sens inverse trigo : alors z = Lsin(O) et x = Lcos(O).