"Prendre des p'tits bouts d'truc et puis les assembler ensemble..."

J'ai enfin monté tout mon petit bazar, et voici l'histoire du Core(X,Y) fishing line édition! Enfin plutôt "butcher line" parce que c'est de la ficelle de boucher.

image

En bougeant les moteurs à la main, tout a l'air bon, alors j'attaque l'électronique.

Au départ, je voulais utiliser grbl sur mon arduino uno, mais hélas il ne gère pas nativement le CoreXY. Alors j'ai opté pour Teacup, qui le gère et qui propose des sorties PWM (qui vont me permettre de contrôler la puissance de mon laser).

Les Pololu

Bon j'avoue, j'en ai un peu chié avec ces pololu. Au premier essai, j'ai consulté ce schéma, et j'ai laissé flottantes les broches ENABLE, MS1, MS2 et MS3. Mauvaise idée.

![image](0J3360.600.png?classes=caption&resize=300,300 "Câblage du Pololu A4988 (https://www.pololu.com/product/1182)")

Je vais vous donner la solution directement, c'est plus pratique:

  • ENABLE -> 0V de l'arduino
  • MS1, MS2, MS3 : leur combinaison donne la valeur du microstepping (voir lien au dessus)
  • RESET et SLEEP : les raccorder ensemble
  • DIR et STEP -> sur l'arduino (j'y reviendrai)
  • VDD : +5V de l'arduino
  • GND (celui du bas) : 0V de l'arduino
  • VMOT : +12V de l'alimentation de puissance (alimentation de PC dans mon cas)
  • GND (celui du haut) : 0V de l'alimentation de puissance
image
Joyeux bordel : arduino uno et pololu

Teacup

Alors Teacup, c'est d'abord un poil de configuration. Il faut avant tout renommer l'un des modèles de fichiers de config en config.h. Dans mon cas, je n'ai pas de ramps, ni de gen7, ni quoi que ce soit : juste une arduino et deux pololu A4988 pour piloter mes deux moteurs. Je copie donc le config.default.h en config.h.

Pour que ça compile, il faut aussi renommer ThermistorTable.single.h en ThermistorTable.h. On n'utilisera pas de thermistance (enfin pour l'instant... hé hé) donc on s'en fout.

Dans le config.h, il y a un paramètre pour indiquer qu'on utilise une mécanique CoreXY:

[code]

define KINEMATICS KINEMATICS_COREXY

[/code]

image
Zoom sur l'entrainement

Après, il faut calculer le nombre de pas par mètre (comme je suis gentil je vous ai fait un calculateur sur une page web), et indiquer les vitesses maximales; là, on peut y aller franco:

[code]

define    MAXIMUM_FEEDRATE_X        20000

define    MAXIMUM_FEEDRATE_Y        20000

define ACCELERATION 2500.

[/code]

Après avoir configuré Teacup, premier test avec les connexions par défaut:

Moteur A AIO0 : X_STEP_PIN (broche STEP du Pololu A) AIO1 : X_DIR_PIN (broche DIR du Pololu A)

Moteur B AIO3 : Y_STEP_PIN (broche STEP du Pololu B) AIO4 : Y_DIR_PIN (broche DIR du Pololu B)

Surprise : seul le moteur B tourne. Bon...

Je modifie les sorties du moteur A dans la config de Teacup (qui deviennent respectivement DIO2 et DIO3) et les deux moteurs tournent. Youpi!

Petit test de mouvement X et Y avec Repetier-host, et je constate que le X+ et X- sont bien, mais Y+ et Y- sont inversés.

J'intervertis les deux moteurs : Moteur A sur les pins Y, et moteur B sur les pins X. Ça marche!

Trop bien :)

image
Vue d'ensemble

Vitesse

Maintenant, petit test de vitesse et d'accélération en envoyant des commandes G-Code en direct.

Vitesse : 20'000 mm/min (soit 333 mm/s)

Accélération : 2'500 mm/s²

J'aime autant vous dire que ça envoie le pâté, comparé à ma CNC qui monte poussivement à 3 ou 3.5mm/s !

Débattement

  • Y : 300mm
  • X : 250mm, que je vais pouvoir augmenter en arrangeant mes attaches de ficelle.
image
Le chariot et ses attaches à la one again

Conclusion

Il me reste donc à arranger mon chariot pour que les fixations des ficelles soient à la même hauteur que les poulies.

Ensuite, faire un support pour le module laser, et contrôler la précision et la répétabilité selon la vitesse.

Enfin, réfléchir à un plateau Z et un support de moteur qui me permettrait de graver des circuits imprimés.

Et ajouter deux endstops pour la mise à zéro, ce ne serait pas un luxe.

Je viens de réaliser que contrairement à grbl et Marlin, Teacup ne supporte pas les arcs (G2 et G3). Dommage...

Article précédent Article suivant