Conception d’un robot SCARA modulaire
1. Genèse du projet
Après la fabrication de ma CNC personnelle, il me restait plusieurs composants mécaniques et électroniques :
- Moteurs NEMA17
- Drivers TMC
- Courroies GT2
- Poulies
- Vis trapézoïdale T8
- Alimentation
- Carte de contrôle Arduino
Plutôt que de laisser ce matériel inutilisé, j’ai décidé de concevoir un robot SCARA.
L’objectif n’était pas de reproduire un modèle existant, mais de développer une architecture adaptée à mes contraintes mécaniques réelles et à une approche logicielle modulaire rigoureuse.
2. Architecture cinématique globale
Le robot est un SCARA de type :
R – R – R – P
avec :
-
J1 : rotation de base (theta1)
-
Z : translation verticale
-
J2 : rotation bras intermédiaire (theta2)
-
J3 : rotation outil (phi)
La chaîne cinématique réelle est la suivante :
Base
├── Rz(theta1)
├── Tz(z)
↓
L1
↓
Rz(theta2)
↓
L2
↓
Rz(phi)
Important :
-
L’axe Z agit avant J2 et J3.
-
La translation verticale est indépendante du plan XY.
-
Le plan XY est uniquement déterminé par theta1, theta2 et phi.
3. Analyse mécanique détaillée des axes
3.1 Joint 1 – Base (theta1)
Transmission mécanique :
- Moteur NEMA17
- 200 pas par tour
- Pas de microstepping
- Poulie moteur : 20 dents
- Poulie intermédiaire : 85 dents
-
Réducteur planétaire :
- Couronne fixe : 56 dents
- Soleil : 28 dents
Rapport planétaire (couronne fixe) :
R_planet = 1 + (56 / 28) = 3
Rapport courroie :
R_belt = 85 / 20 = 4.25
Rapport total :
R_total = 3 × 4.25 = 12.75
Nombre de pas par tour en sortie :
Steps_output = 200 × 12.75 = 2550 pas par tour
Résolution angulaire :
Steps_per_degree = 2550 / 360 ≈ 7.08 pas par degré
Soit environ 0.14 degré par pas moteur.
Philosophie de homing J1
- Approche lente du fin de course
- Détection mécanique absolue
- Recul de 2 degrés pour libérer le contact
- Définition d’un balayage utile de 180 degrés
- Positionnement au centre de la zone utile
- Déclaration de ce point comme zéro logique
Résultat :
Zone utile = -90 degrés à +90 degrés
Le capteur est hors zone de travail
Le zéro logique est centré
3.2 Joint 2 – Bras intermédiaire (theta2)
Transmission :
-
Poulie moteur : 20 dents
-
Poulie sortie : 67 dents
Rapport :
R = 67 / 20 = 3.35
Nombre de pas par tour :
Steps_output = 200 × 3.35 = 670 pas
Résolution :
Steps_per_degree = 670 / 360 ≈ 1.86 pas par degré
3.3 Joint 3 – Rotation outil (phi)
Transmission :
-
Poulie moteur : 20 dents
-
Poulie sortie : 64 dents
Rapport :
R = 64 / 20 = 3.2
Nombre de pas par tour :
Steps_output = 200 × 3.2 = 640 pas
Résolution :
Steps_per_degree = 640 / 360 ≈ 1.78 pas par degré
L’orientation finale de l’outil dépend de :
phi_total = theta1 + theta2 + phi
3.4 Axe Z – Translation verticale
Caractéristiques mécaniques :
-
Vis trapézoïdale T8
-
Pas réel : 8 mm par tour
-
Longueur totale : 246 mm
-
Offset mécanique occupé : 85 mm
Course utile réelle :
246 − 85 = 161 mm
Résolution linéaire :
Steps_per_mm = 200 / 8 = 25 pas par mm
Soit 0.04 mm par pas moteur.
Après homing :
-
L’axe remonte de 80.5 mm
-
Ce point est défini comme zéro logique
4. Cinématique directe
Position XY :
x = L1 cos(theta1 + theta2)
+ L2 cos(theta1 + theta2 + phi)
y = L1 sin(theta1 + theta2)
+ L2 sin(theta1 + theta2 + phi)
Position Z :
z = z
5. Architecture logicielle
Chaque axe est encapsulé dans un module indépendant :
-
Joint1.h / Joint1.cpp
-
Joint2.h / Joint2.cpp
-
Joint3.h / Joint3.cpp
-
AxisZ.h / AxisZ.cpp
Modules complémentaires :
-
Limits
-
ServoTool
-
SerialCommand
6. Philosophie logicielle
-
Le fin de course est la limite absolue mécanique
-
Le zéro logique est défini au centre du balayage utile
-
Aucun mouvement n’est autorisé avant homing complet
-
STOP interrompt l’exécution sans détruire l’état
-
MOVE manuel a priorité sur une séquence
-
Les séquences sont programmables avec :
-
WAIT variable
-
LOOP optionnel
-
STOP sécurisé
-
7. Conclusion
Ce robot SCARA n’est pas une copie d’un modèle existant.
Il s’agit d’une architecture optimisée pour :
-
Un matériel réellement disponible
-
Une cohérence mécanique mesurée
-
Une modularité logicielle rigoureuse
-
Une gestion d’état sécurisée
-
Une approche pédagogique et expérimentale