Bras 1 Guinet Dossier du bras motorisé 1. Présentation générale du projet L industrie automatisée est de plus en plus présente de nos jours et elle joue un rôle très important. Maintenant de plus en plus d industries utilisent ce procédé pour faciliter le travail des ouvriers et augmenter leurs productivités (exemple : les usines de carrosserie utilisent des bras motorisé pour aller chercher une pièce et l assemble avec la voiture, ou les laboratoires qui utilisent des bras pour aller chercher un flacon). Le principe de notre projet était de fabriquer un de ces bras motorisé qui serait capable d aller chercher une pièce et de l emmener à un autre endroit préalablement programmé. 2. Réflexion de la conception Avant de commencer ce bras motorisé, une étude de la conception s imposait. Nous avons donc réalisé plusieurs croquis avant de trouver la meilleure façon de le concevoir. Pour la fabrication de ce bras nous avons décidé de faire une base qui tourne sur 180, un bras fixé à la base qui s oriente à 90 et un avant-bras fixé sur le bras qui lui aussi s oriente à 90 (Photo 1). Une fois le plan affiné, nous avons étudié le choix des matériaux afin que le 90 bras ne soit pas trop lourd pour les moteurs. Notre conclusion nous a obligé à modifier la forme et à supprimer des parois 90 inutiles pour l alléger (Photo 2). Une fois la forme du bras finalisée, - 90 Base + 90 nous avons déterminé les dimensions des pièces. Photo 1 : principe de fonctionnement du bras (Annexe 1) 1
a2 L=230, l=2, p=70 (mm) a1 Photo 2 : Forme schématique du bras avec cotations (Annexe 2). s4 s3 Axe de rotation Afin d alléger le bras et pour un meilleur fonctionnement des moteurs, nous avons décidé de supprimer deux plaques (l avant et l arrière). L=250, l=2, p=70 (mm) b2 b1 Roulement à billes s2 s1 Axe de rotation a1 ; a2 : Avant-bras 1 et 2 b1;b2 : Bras 1 et 2 s1 ; s2 ; s3 ; s4 : Servomoteurs 1, 2, 3 et 4 3. Répartition du travail Afin que le bras puisse être réalisé dans le temps impartie nous nous sommes divisé les taches en trois : - Conception mécanique du bras - Résistance des matériaux et assemblage - Chacun d entre nous devions traiter un des thèmes ci-dessus. Mon choix s est orienté vers la programmation des servomoteurs. 4. Calculs de position Avant de commencer la programmation il a fallu que je détermine les positions possibles du bras. J ai donc dû calculer le champ d intervention du bras (Photo 3). Photo 3 : champ d intervention axe de rotation du bras r r = 33 cm R R = 55 cm F1 = 22 cm 2
Photo 4 : calcul de position (Annexe 3) B A ε β l1 h l2 α β α O l C Calcul de β en fonction de l l = l1 x cos (β) + l2 x cos (α) l1 x sin (β) = l2 x sin (α) l2 x cos (α) = l l1 x cos (β) l2 x sin (α) = l1 x sin (β) l2² x cos² (α) + l2² x sin² (α) = (l - l1 x cos (β)) ² + l1² x sin² (β) l2² = l² - 2 x l1 x l x cos (β) + l1² x cos² (β) + l1² x sin² (β) l2² = l² - 2 x l1 x l x cos (β) + l1² 2 x l1 x l x cos (β) = l² + l1² - l2² Cos (β) = Β = Calcul de ε en fonction de β ε = β + α sin α = ε = β + ε = β + Une fois le champ d intervention calculé, il a fallu que je fasse des calculs de position afin de pouvoir commander les servomoteurs. Pour cela, il fallait que je leurs indique de quel angle ils doivent se déplacer. J ai donc exprimé l angle, entre la base et le bras, en fonction de la distance entre le bras motorisé et la pièce (Photo 4). 3
5. Maintenant que je connais les angles de mouvement de mon bras et la distance de la pièce que mon bras doit récupérer, j ai pu commencer la programmation. Pour faciliter la compréhension du programme, je l explique par un algorithme (pour voir dans les détails le programme voir Annexe 5 et 6). DÉBUT - Création de 4 variables qui représentent les servomoteurs - Branchement des 4 servomoteurs sur les «broches» 9, 10, 11 et 12 - Création de 2 variables qui correspond aux coordonnées de la pièce à déplacer - Création d une variable qui correspond à la longueur entre le bras et la pièce - Initialisation de la position de tous les servomoteurs à 90 o Si la longueur entre le bras et la pièce est compris dans le champ d intervention alors faire : Création d une variable qui correspond à la valeur de l angle de déplacement de la base Déplacement de la base pour aller chercher la pièce Création d une variable qui correspond à la valeur de l angle de déplacement entre la base et le bras Déplacement du bras pour aller chercher la pièce Création d une variable qui correspond à la valeur de l angle de déplacement entre le bras et l avant-bras Déplacement de l avant-bras pour aller chercher la pièce Initialisation de tous les servomoteurs en position initiale (90 ) Déplacement de la base pour emmener la pièce Déplacement du bras pour emmener la pièce Déplacement de l avant-bras pour emmener la pièce o FIN SI - FIN Une fois mon algorithme fait, je me suis servi d un logiciel nommé «Arduino» pour la programmation. (Annexe 5 et 6). 4
6. Branchements Pour faire fonctionner les servomoteurs j utilise une carte Arduino UNO qui envoie les informations du programme vers les servomoteurs. Voici comment fonctionne la carte Arduino UNO (Annexe 4). Afin d utiliser plusieurs broches j utilise un breadboard qui permet de connecter plusieurs broches en même temps. 7. Problèmes rencontrés et solutions apportées Lors de la programmation je me suis aperçu que le logiciel Arduino ne prend pas en compte les nombres trop grands. Il a donc fallu entrer les coordonnées des positions en centimètre et non en millimètre. Lors de la conception de notre bras, je me suis rendu compte que les deux servomoteurs qui commande le bras, ont des sens de rotation inversé, j ai donc dû modifier mon programme pour qu il inverse la rotation d un des servomoteurs. La réalisation du projet n a pas pu être complète, un servomoteur nous manquait pour la fabrication du bras motorisé. La finalité du bras a dû se faire en deux étapes. - Première étape, rotation de la base et inclinaison du bras. - Deuxième étape, inclinaison du bras et de l avant-bras. 5
Bras 1 Guinet Annexe 1 Croquis du bras avant conception 90 90-90 Base + 90 6
Annexe 2 Forme schématique du bras avec cotations après conception L=230, l=2, p=70 (mm) a2 a1 s4 s3 Axe de rotation L=250, l=2, p=70 (mm) b2 b1 Roulement à billes s2 s1 Axe de rotation a1 ; a2 : Avant-bras 1 et 2 b1;b2 : Bras 1 et 2 s1 ; s2 ; s3 ; s4 : Servomoteurs 1, 2, 3 et 4 7
Annexe 3 Schéma pour calcul de position B A ε β l1 h l2 α β α O l C 8
Annexe 4 Principe de fonctionnement d une carte Arduino UNO 9
Annexe 5 Programme des servomoteurs #include <Servo.h> Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; void setup () { //branchement des servomoteurs myservo1.attach(9); myservo2.attach(10); myservo3.attach(11); myservo4.attach(12); } void loop() { int xa=20; int ya=20; int xb=-20; int yb=20; int longueur1 = sqrt((xa)*(xa)+(ya)*(ya)); int longueur2 = sqrt((xb)*(xb)+(yb)*(yb)); //initialisation des servomoteurs myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(90); if(longueur1>=25 && longueur1<=35 && longueur2>=25 && longueur2<=35){ //angle de la base pour aller chercher la pièce int angle1=acos((xa/longueur1)*(3.14/180)); myservo1.write((angle1)*(180/3.14)); 10
Annexe 6 //déplacement du bras pour aller chercher la pièce int angle2=acos(((longueur1*longueur1+175)/(40*longueur1))*(3.14/180)); myservo2.write (90-(angle2)*(180/3.14)); myservo4.write (90+(angle2)*(180/3.14)); //déplacement de l'avant-bras pour aller chercher la pièce int angle3=angle2+ asin(((sin(angle2)*20)/15)*(3.14/180)); myservo3.write(90-((angle3)*(360/3.14)));//va chercher la pièce //mise en place du bras pour emmener la pièce myservo2.write(90); myservo3.write(90); myservo4.write(90); //angle de la base pour emmener la pièce angle1=acos((yb/longueur2)*(3.14/180)); myservo1.write(90+(angle1)*(180/3.14)); //angle du bras pour emmener la pièce angle2=acos(((longueur2*longueur2+175)/(40*longueur2))*(3.14/180)); myservo2.write (90-(angle2)*(180/3.14)); myservo4.write (90+(angle2)*(180/3.14)); } } //angle de l'avant-bras pour emmener la pièce angle3=angle2+ asin(((sin(angle2)*20)/15)*(3.14/180)); myservo3.write(90-((angle3)*(360/3.14)));//va chercher la pièce 11
Annexe 7 Bras motorisé fini 12