Aller au contenu

Filament ABS

hidius

[TUTO] ServoMoteur & Marlin

Messages recommandés

Coucou. le but de ce tuto est de pourvoir interagir avec des servomoteurs via les scripts de démarrage ou autres.

Il s'agit ici de Marlin 1.1.8 sur une GT2560 Rev A+ mais ça reste facilement ajustable.

 

## Déclaration des Servomoteurss ##

De base, Servo0 est "réservé" pour le BLTouch. Il est possible de l'utiliser pour autre chose mais comme c'est une fonctionnalité très utilisée, nous n'y toucherons pas ici. Il va donc falloir déclarer au moins 2 Servo pour utiliser le second comme on le souhaite.

Dans Configuration.h

//On definie ici le nombre de servo. On oubli pas qu'on reserve le premier au bltouch
//Le 1er sera SERVO0, le 2eme SERVO1, le 3eme SERVO2, etc
#define NUM_SERVOS 2

//SERVO_DELAY est un tableau, il faut specifier autant de valeurs que de servo
#define SERVO_DELAY { 300, 300 }

// Avec cette option, les servos sont alimentés uniquement pendant le mouvement, puis éteints pour éviter les instabilités.
#define DEACTIVATE_SERVOS_AFTER_MOVE

 

## Déclaration des Pins ##

Ici je le branche en lieu et place de Y-Max, Il s'agit d'un SG90 alimenté en 5V, j'utilise le connecteur du bltouch pour récupérer l'alimentation.

Servos7.thumb.jpg.e2b3b36f7796261013d66459c89215e0.jpg

Pour trouver le fichier à modifier, dans configuration.h trouver "#define MOTHERBOARD":

  #define MOTHERBOARD BOARD_GT2560_REV_A_PLUS

Une petite particularité ici puisque le fichier pins_GT2560_REV_A_PLUS.h ne contient que le delta avec pins_GT2560_REV_A.h que nous devons modifier

Dans pins_GT2560_REV_A.h

//On commente la definition de Y_MAX_PIN et on definie SERVO1_PIN en lieu et place
//#define Y_MAX_PIN          28
#define SERVO1_PIN        28

 

 

Après Téléversement, nous pouvons utiliser le servo via le Gcode M280

M280 P1 S77       // P1 (SERVO1) / S77 (77°)

 

 

:banana:

  • J'aime 2
  • Merci ! 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ce type ( @hidius ) est génial.....

Citation

j'avais monté sur ma Gitèque une tête de brosse à dents pour nettoyer la buse avant print via le code G12 (Nozzle Clean) Voir ici >>>>>

Sur ma nouvelle brêle, la tête ne va pas plus loin que le bord du plateau, donc impossible d'utiliser mon ancien système, il interfère avec l'Auto Bed Levelling

Hier je lui glisse une petite idée que j'ai eue :

Monter la brosse sur un bras qui pourrait l'amener en position de brossage avec un coup de servo et la garer une fois fini

L'idée est de moi mais comme je suis une bite en électronique(ta mère) je n'ai aucune idée de comment le faire et je lui pose la question...

Et ce matin, ce joli petit tuto, tout frais pondu.

Allez chiche ? Le premier qui a mis quelque-chose au point réveille les autres, OK ?

Non mais sans dec, ce foirium c'est pas un peu d'la balle @Motard Geek ?????

Modifié (le) par Jean-Claude Garnier
  • J'aime 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Exagères pas, tu aurais fini par trouver l'information. Par contre l'idée du bras pour la brosse, personne ne l'a eu avant toi je crois 😉

Partager ce message


Lien à poster
Partager sur d’autres sites

Beau travail pour la configuration de Marlin (le chanteur 😉 ) afin de piloter un cerveau servo...  👍

La retraite me permettant de flâner à droite, à gauche, de ci de là, j'avais vu ceci . Est-ce quelque chose de semblable à quoi pensait @Jean-Claude Garnier ?

Bon ride à tous ✌️

Partager ce message


Lien à poster
Partager sur d’autres sites

Shit, zut et crotte de bique....

C'est pile poil à ça que je pensais, avec une brosse douce en bronze.

Moi qui croivais avoir eu une idée inédite, me oualà bien marri....

@hidius je profite de cette intervention de @fran6p pour te poser deux questions :

- Esque le servo s'initialise à un certain angle à la mise sous tension, ou reste t'il là où il s'est arrêté ?

- J'ai mis un step-down 5 volts dans ma box (pour le raspi) Je peux me piquer dessus ou faut-il absolument prendre le 5V de la prise Bl-touch ?

Si c'était possible, ça ouvrirait cette possibilité à ceux qui n'ont pas la même carte, et là je pense particulièrement à @Bosco2509

  • J'aime 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Le concepteur du modèle que je donne en lien plus haut, pilote son servo via un Arduino Nano car sa carte une Duet ne gère pas bien les servos nativement. Par contre il ne donne pas plus d'explications comment il lie le tout (en cuisine la liaison est la base de toute bonne sauce qui se respecte (et pas qu'en cuisine d'ailleurs 😉).

L'avantage des fichiers qu'il propose, c'est qu'il livre aussi ses fichiers sources (en .f3d) pour ceux qui voudraient les accommoder à leur sauce (ça commence à me donner faim de parler de sauce 😄 ).

Partager ce message


Lien à poster
Partager sur d’autres sites

Jolie l'idée !
Bientôt des toilettes qui vous essuyeront le postérieur (et je reste poli en plus) après avoir coulé votre bronze.
Comme cela plus de risques de s'en mettre sur les mains ! 😄

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Et les toilettes japonaises (à jet d'eau), c'est pas mal non plus, en plus pas besoin de servo (cerveau 😄 ).

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 27/07/2018 at 18:17, Jean-Claude Garnier a dit :

- Esque le servo s'initialise à un certain angle à la mise sous tension, ou reste t'il là où il s'est arrêté ?

Je n'ai pas fait attention quand j'ai fais les tests de ce tuto et je ne me souviens plus au moment ou j'avais pas mal joué avec. J'en utilise tjrs un pour l'autolevel mais c'est un cas particulier.

Conclusion, faut tester 😐

Citation

- J'ai mis un step-down 5 volts dans ma box (pour le raspi) Je peux me piquer dessus ou faut-il absolument prendre le 5V de la prise Bl-touch ?

Pas de soucis avec le Step Down

Modifié (le) par hidius

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir à tous, @hidius

Rentré de mon exil estival, je retrouve le plaisir de bricoler ma machine, avec d'autres idées derrière la tête.

Et je viens  (enfin) de mettre en pratique ce tuto que tu m'as dédié.

Et tu sais quoi ???? ÇA MARCHE !!!!!

Merci encore, je sens que je vais bien m'amuser.....

  • Merci ! 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 27/07/2018 at 18:17, Jean-Claude Garnier a dit :

Esque le servo s'initialise à un certain angle à la mise sous tension, ou reste t'il là où il s'est arrêté ?

As-tu essayé ? Ce type de servo sont contrôlés par un signal pwm de 20ms. Le temps à l'état haut donne la position consigne. Je pense que si la consigne est appliquée avant d'appliquer la puissance, le servo ne devrait pas bouger. Merlin doit sans doute s'en charger.

Édite :

Je viens de regarder dans le code, Marlin ne coupe pas la puissance du servo mais arrête d'envoyer le PWM :

void Servo::move(const int value) {
  constexpr uint16_t servo_delay[] = SERVO_DELAY;
  static_assert(COUNT(servo_delay) == NUM_SERVOS, "SERVO_DELAY must be an array NUM_SERVOS long.");
  if (this->attach(0) >= 0) {
    this->write(value);
    safe_delay(servo_delay[this->servoIndex]);
    #if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
      this->detach();
    #endif
  }
}
Modifié (le) par zPixel

Partager ce message


Lien à poster
Partager sur d’autres sites

tres interessant

à propos de la brosse, j'ai vu une fois une lame de silicone pour essuyer la buse avant usage. c'est pas mal car ainsi la buse ne passe pas entre les poils

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • Sur cette page :   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×