EEZYbotARM MK2 BP
EEZYbotARM
EEZYborARM MK2 est un petit bras robot à 3 axes, opensource et imprimable. Il est piloté par des servomoteurs et peut être doté d’une pince.
Version modifiée
Une version modifiée est disponible sur Onshape.
- Trous des axes en 3mm au lieu de 4mm
- Réduction des contours de l’engrenage (pour compenser surépaisseur à l’impression 3D)
- Ajout d’un socle à découper pour Arduino et pilote moteurs
- …
Tour d’horizon
Matériel choisi
- Arduino UNO
- Adafruit PCA9685 16-Channel Servo Driver
- Servomoteurs « standard »
Coût approximatif
Composant | Quantité | Prix unitaire | Exemple de fournisseur |
Arduino UNO (ou compatible) | 1 | 15€ | GOTRONIC |
Commande de servomoteurs | 1 | 22€ | GOTRONIC |
Servomoteurs | 3 | 20€ | GOTRONIC |
Billes ∅6mm | 25/200 | 12€ | |
Alimentation 5V | 14€ | GOTRONIC | |
Boulons M3 | |||
Roulement à billes 606 (∅17 – 6) | 1 | 2€ | 123 Roulement |
Vis à bois ∅2mm et ∅3mm | |||
Axes ∅3mm | |||
Vis H M6-30 avec écrou frein M6 | |||
PLA pour impression 3D | ?? kg | 30€ | |
Logiciel de pilotage
Pour piloter le bras depuis un ordinateur, connecté au robot via le port USB d’un Arduino UNO, un logiciel est constitué de :
- un firmware pour l’Arduino
- un programme en Python et interface tkinter.
Lien de téléchargement : Version portable pour Windows
Configuration du firmware
Débattements angulaires des bras
Les valeurs de ces angles ne varient à priori pas d’un robot à l’autre, mais elles peuvent être affinées ….
Paramétrage des servomoteurs
La conception du robot fait que les angles limites des servomoteurs sont différents d’un robot à l’autre, en raison de la façon dont on les accouple aux bras.
Il faut donc modifier les lignes suivantes dans le firmware :
const int16_t PULSEMIN[2] = {210, 331};
Ce sont des valeurs à l’image de la longueur des pulsations du signal PPM, exprimées par un entier entre 0 et 4096 (voir documentation du pilote PCA9685).
PULSEMIN[i]
correspond à la longueur de pulsation à du signal PPM correspondant à l’angle ANGLEMIN[i]
.
const float PENTE[2] = {2, 2};
Ce sont les pentes de la fonction de conversion pulse/angle (à affiner expérimentalement !)
ATTENTION : il est probable que ces valeurs dépendent du modèle de servomoteur employé.
Applications
- Cinématique : mouvements d’un robot 2 axes
- Statique : amélioration d’un robot 2 axes