Mise à jour le 20/09/2019 : C’est un support trois axes qui pourrait utiliser pour différentes réalisations. L’ensemble de ce projet a été réalisé pour que certaines pièces comme les cages des servomoteurs soient réutilisé dans d’autres applications.
Sommaire :
- Présentation du projet .
- Tutoriel de montage en photo .
- Montage du servomoteur dans la base .
- Montage du Palonnier type roue sur la cage .
- Assemblage de la cage sur le servomoteur de la base .
- Montage du servo porte bras .
- Assemblage du bras .
- Assemblage de la partie haute.
- Ensemble des fichiers pour l’impression 3D.
- Base du support 3 axes.
- Cage support pour servomoteur partie bas .
- Bras du support 3 axes
- Cage pour servomoteur partie haute
- Support supérieure
- Programme pour tester les limites mini et maxi du support 3 axes
- Schéma de branchement de l’ensembles des actionneurs et potentiomètre .
- Montage avec une carte Arduino Mega 2560.
- Liste du matériel câblage classique .
- Liste du matériel avec utilisation du matériel Grove
- Schéma électrique de principe
- Exemple de programme sur Arduino Mega
- Montage avec une carte Arduino Uno ( en cours )
- Montage avec une carte Arduino Mega 2560.
- Retour au menu nos robots
Présentation du projet . |
.
C’est un support trois axes qui pourrait utiliser pour différentes réalisations. L’ensemble de ce projet a été réalisé pour que certaines pièces comme les cages des servomoteurs soient réutilisé dans d’autres applications.
Retour au sommaire.
Tutoriel de montage en photo .
1: Montage du servomoteur HS-422 dans sa base .
Nous pouvons aussi utiliser le servomoteur Hitec HS-645 MG en sachant que les 2 servo ne possèdent pas le même couple . Nous avons un couple de 4.7kg.cm pour le HS-422 et de 9.6kg.cm pour le HS-645 MG .
Retour au sommaire |
2:Montage du Palonnier type roue sur la cage support du servomoteur ( en général ce type de palonnier est vendu avec son servo ) .
Retour au sommaire |
3:Assemblage de la cage sur le servomoteur de la base .
Retour au sommaire |
4:Montage du servo porte bras .
Retour au sommaire |
5:Assemblage du bras et montage du Palonnier type roue dans le bras ( en général ce type de palonnier est vendu avec son servo ) .
Retour au sommaire |
6:Assemblage de la partie haute .
Retour au sommaire |
Ensemble des fichiers pour l’impression 3D. |
Piece 001 : Base du support 3 axes
Temps d’impression pour un remplissage de 30% ⇒ 7h21mm
Matière : PLA 120.01g
Résolution : 0.2mm
Télechargement de : Piece 001-Base du support 3 axes
Retour au sommaire
.
Piece 002 : Cage support servomoteur partie bras
.
Temps d’impression pour un remplissage de 30% ⇒ 1h17mm.
Matière : PLA 16.62g (0.037lb)
Résolution : 0.2mm
.
Piece 003 : Bras du support 3 axes
Temps d’impression pour un remplissage de 30% ⇒ 2h57mm
Matière : PLA 46.54g (0.103lb)
Résolution : 0.2mm
.
Télechargement de : Pieces 003-Bras pour support 3 axes Retour au sommaire
.
Piece 004 : Cage pour servomoteur partie haute
.
Temps d’impression pour un remplissage de 30% ⇒ 1h06mm
Matière : PLA 14.43g (0.023lb)
Résolution : 0.2mm
.
Télechargement de : Piece 004-Cage servomoteur partie haute.
Retour au sommaire
Piece 005 : Support supérieure
.
Temps d’impression pour un remplissage de 30% ⇒ 00h21mm
Matière : PLA 6.64g (0.015lb)
Résolution : 0.2mm
.
Télechargement de : Piece 005-Support supérieure.
Retour au sommaire
Programme pour tester les limites mini et maxi du support 3 axes |
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
// // // /* * RedOhm * * * Essai et reglage des servomoteurs a l'aide * d'un potentiometre en vue de determiner les * limites min et max * * Le 27/08/2016 * H.Mazelin */ // Cette librairie permet à une carte Arduino de contrôler des servomoteurs #include <Servo.h> // Crée un objet de type "Servo", nommé -> monservo Servo monservo; // broche sur lequel est branche le potentiometre int brochepotar_de_position=2; // variable contenant la valeur de la potentiometre int valeur_potar_position; /* * Un programme Arduino doit impérativement contenir cette fonction * Elle ne sera exécuter une seule fois au démarrage du microcontroleur * Elle sert à configurer globalement les entrées sorties * */ void setup() { Serial.begin(9600); // associe le servomoteur a la broche 3 monservo.attach(3); } /* *Le programme principal s’exécute par une boucle infinie appelée Loop () * */ void loop() { // lecture de la valeur du potentiomètre (valeur entre 0 et 1023) valeur_potar_position=analogRead( brochepotar_de_position); // mise a l'échelle (valeur entre 5 et 180) // Ré-étalonne un nombre d'une fourchette de valeur vers une autre fourchette. // Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination valeur_potar_position=map(valeur_potar_position,0,1023,5,180); // définit la position d'asservissement du servomoteur // en fonction de la valeur à l'échelle monservo.write(valeur_potar_position); Serial.println(valeur_potar_position); // Réalise une pause dans l'exécution du programme pour une durée // de 20 millisecondes // permettant au servomteur d'atteindre sa position delay(20); } |
.
Schéma de branchement de l’ensembles des actionneurs et potentiomètre .
1:Montage avec une carte Arduino Mega 2560
a) Liste du materiel pour câblage classique.
- 3 potentiomètre de 10kΩ
- 3 servomoteurs Hitec référence HS-645MG ou Hitec HS422
- 1 carte Arduino Mega 2560
- 1 alimentation variable régler a 6 Volt ou une alimentation fixe 6V
- 1 Alimentation pour la carte micro ( alimentation de 7 à 12 V sur connecteur alim = vin tension positive en entrée ne pas oublier la masse à brancher sur la pin Gnd ).Si on utilise plus de 12V, le régulateur de tension de la carte pourrait chauffer et en cascade détruire la carte )
b) Liste du matériel avec utilisation du matériel Grove :
- 1 Module Grove Mega Shield V1.2 référence -> 103020027 .Le module Grove Base Shield est une carte d’interface permettant de raccorder facilement, rapidement et sans soudure les capteurs et les actionneurs Grove de Seeedstudio sur une carte compatible Arduino.
- 3 Potentiomètre à glissière Grove 101020036 ou potentiomètre rotatif Grove 101020048
- 3 servomoteurs Hitec référence HS-645MG ou Hitec HS422
- 1 carte Arduino Mega 2560
- 1 alimentation variable régler a 6 Volt ou une alimentation fixe 6V
- 1 Alimentation pour la carte micro ( alimentation de 7 à 12 V sur connecteur alim = vin tension positive en entrée ne pas oublier la masse à brancher sur la pin Gnd ) .Si on utilise plus de 12V, le régulateur de tension de la carte pourrait chauffer et en cascade détruire la carte )
c) Schéma électrique de principe.
d) Exemple de programme sur Arduino Mega
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
/* * * * *RedOhm * * *Programme pour piloter separement chaque moteur du support *trois axes * *le 27/08/2016 * H-Mazelin */ // Cette librairie permet à une carte Arduino de contrôler des servomoteurs #include <Servo.h> // Crée un objet de type "Servo" pour la rotation de la base, nommé -> servobase Servo servobase; // Crée un objet de type "Servo" pour l'elevation du bras, nommé -> servobras Servo servobras; // Crée un objet de type "Servo" pour la rotation de la tete, nommé -> servotete Servo servotete; // broche sur lequel est branche le potentiometre servant a piloter le servobase int brochepotar_de_position_servobase=0; // variable contenant la valeur du potentiometre pour le servobase int valeur_potar_position_du_servobase; // broche sur lequel est branche le potentiometre servant a piloter le servobras int brochepotar_de_position_servobras=2; // variable contenant la valeur du potentiometre pour le servobras int valeur_potar_position_du_servobras; // broche sur lequel est branche le potentiometre servant a piloter le servotete int brochepotar_de_position_servotete=4; // variable contenant la valeur du potentiometre pour le servotete int valeur_potar_position_du_servotete; /* * Un programme Arduino doit impérativement contenir cette fonction * Elle ne sera exécuter une seule fois au démarrage du microcontroleur * Elle sert à configurer globalement les entrées sorties * */ void setup() { // initialisation de la connexion série // IMPORTANT : la fenêtre terminal côté PC doit être réglée sur la même valeur Serial.begin(9600); // associe le servomoteur servobase a la broche 3 servobase.attach(3); // associe le servomoteur servobras a la broche 4 servobras.attach(4); // associe le servomoteur servotete a la broche 5 servotete.attach(5); Serial.println("**********************************"); Serial.println("* *"); Serial.println("*support 3 axes *"); Serial.println("* operationnel *"); Serial.println("* *"); Serial.println("**********************************"); Serial.println(" "); //pause presentation delay (5000); } // Le programme principal s’exécute par une boucle infinie appelée Loop () void loop() { /* * * traitement pour la position de la base */ // lecture de la valeur du potentiomètre (valeur entre 0 et 1023) valeur_potar_position_du_servobase=analogRead( brochepotar_de_position_servobase); // mise a l'échelle (valeur entre 5 et 180) // Ré-étalonne un nombre d'une fourchette de valeur vers une autre fourchette. // Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination valeur_potar_position_du_servobase=map(valeur_potar_position_du_servobase,0,1023,5,180); // définit la position d'asservissement du servomoteur // en fonction de la valeur à l'échelle servobase.write(valeur_potar_position_du_servobase); // affiche le texte d'information sans retour a la ligne Serial.print("position actuelle de la base -> "); // affiche la valeur de la position de la base avec retour a la ligne Serial.println(valeur_potar_position_du_servobase); // Réalise une pause dans l'exécution du programme pour une durée // de 20 millisecondes // permettant au servomteur d'atteindre sa position delay(20); /* * * traitement pour la position du bras */ // lecture de la valeur du potentiomètre (valeur entre 0 et 1023) valeur_potar_position_du_servobras=analogRead(brochepotar_de_position_servobras); // mise a l'échelle (valeur entre 5 et 180) // Ré-étalonne un nombre d'une fourchette de valeur vers une autre fourchette. // Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination valeur_potar_position_du_servobras=map(valeur_potar_position_du_servobras,0,1023,54,120); // définit la position d'asservissement du servomoteur // en fonction de la valeur à l'échelle servobras.write(valeur_potar_position_du_servobras); // affiche le texte d'information sans retour a la ligne Serial.print("position actuelle du bras -> "); // affiche la valeur de la position du bras avec retour a la ligne Serial.println(valeur_potar_position_du_servobras); // Réalise une pause dans l'exécution du programme pour une durée // de 20 millisecondes // permettant au servomteur d'atteindre sa position delay(20); /* * * traitement pour la position de la tete */ // lecture de la valeur du potentiomètre (valeur entre 0 et 1023) valeur_potar_position_du_servotete=analogRead(brochepotar_de_position_servotete); // mise a l'échelle (valeur entre 5 et 180) // Ré-étalonne un nombre d'une fourchette de valeur vers une autre fourchette. // Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination valeur_potar_position_du_servotete=map( valeur_potar_position_du_servotete,0,1023,5,180); // définit la position d'asservissement du servomoteur // en fonction de la valeur à l'échelle servotete.write( valeur_potar_position_du_servotete); // affiche le texte d'information sans retour a la ligne Serial.print("position actuelle de la tete -> "); // affiche la valeur de la position de la tete avec retour a la ligne Serial.println( valeur_potar_position_du_servotete); // Réalise une pause dans l'exécution du programme pour une durée // de 20 millisecondes // permettant au servomteur d'atteindre sa position delay(20); } |
Retour au sommaire |
2:Montage avec une carte Arduino Uno
Liste du materiel :
- 3 potentiomètre de 10kΩ
- 3 servomoteurs Hitec référence HS-645MG ou Hitec HS422
- 1 carte Arduino Uno
- 1 alimentation variable régler a 6 Volt ou une alimentation fixe 6V
- 1 Alimentation pour la carte micro ( alimentation de 7 à 12 V sur connecteur alim = vin tension positive en entrée ne pas oublier la masse à brancher sur la pin Gnd ).Si on utilise plus de 12V, le régulateur de tension de la carte pourrait chauffer et en cascade détruire la carte )
Liste du matériel avec utilisation du matériel Grove :
- 1 Module Grove Base Shield 103030000 . Le module Grove Base Shield est une carte d’interface permettant de raccorder facilement, rapidement et sans soudure les capteurs et les actionneurs Grove de Seeedstudio sur une carte compatible Arduino.
- 3 Potentiomètre à glissière Grove 101020036 ou potentiomètre rotatif Grove 101020048 .
- 3 servomoteurs Hitec référence HS-645MG ou Hitec HS422 .
- 1 Carte arduino Uno
- 1 alimentation variable régler a 6 Volt ou une alimentation fixe 6V .
- 1 Alimentation pour la carte micro ( alimentation de 7 à 12 V sur connecteur alim = vin tension positive en entrée ne pas oublier la masse à brancher sur la pin Gnd ).Si on utilise plus de 12V, le régulateur de tension de la carte pourrait chauffer et en cascade détruire la carte )