Commande d’un robot 2 axes

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

 

Matériel choisi

Arduino UNO

Adafruit PCA9685 16-Channel Servo Driver

Servomoteurs

 

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.

Voir sur GitHub

 

Configuration du firmware

Débattements angulaires

Les valeurs de ces angles ne varient à priori pas d’un robot à l’autre, mais elles peuvent être affinées ….

 

Paramètre 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é.

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *