Aller au contenu

GO Print

Modification de la fonction des entrées/sorties sur marlin


Messages recommandés

Bonjour à tous, 

Je construis une machine permettant de distribuer du liquide dans des tubes à essais automatiquement, pour cela je me suis inspiré de l'impression 3D et de ses systèmes, si vous souhaitez plus d'informations sur la machine n'hésitez pas. Je suis à disposition d'une MKS Base V1.5 et d'une pompe péristaltique que j'aimerai contrôler. Pour cela j'aimerai que ma carte envoie via un contact sec à la pompe une "demande de distribution" afin que celle-ci effectue sa distribution et en retour la pompe enverrai une information à la carte pour dire "Je suis en train de distribuer" cependant les entrées sorties sur la carte sont de base défini d'après ce que j'ai compris. Est-il possible de modifier la fonction d'une entrée/sortie non utilisé genre moteur Z, extruder, ventilateur, endstops etc.. Merci d'avance pour votre réponse.

Melvin

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je ne connais pas le système définitif mais j'ai l'impression qu'utiliser Marlin + MKS Base, c'est comme prendre un marteau pour écraser une mouche.

Il serait préférable à mon avis d'utiliser un Arduino nano avec une poignée de composants et capteurs annexes et d'écrire le programme spécifique pour cette application.

On peut en savoir plus?

Lien vers le commentaire
Partager sur d’autres sites

Donc en gros le système à réaliser est celui-ci :

 

Le but est de pouvoir remplir des racks de tubes ou de flacons automatiquement avec une solution donnée.

Voilà ce que j'ai réalisé. Au début je pensais utiliser une arduino avec les ramps etc.. Cependant on m'a conseillé de prendre la mks base et je me suis dis que cela serait intéressant car le code du core xy est inclut et que je peux m'adapter à tous types de racks via des programmes simples en gcode. Effectivement je fais cette machine pour une entreprise dans le cadre de mon alternance et celle-ci doit pouvoir s'adapter à des tailles de racks et de tubes variables d'où l'utilité du gcode. Cependant je reste encore novice dans le milieu de création de machine ou de l'impression 3D je prendrai donc en compte tous vos conseils. La difficulté que je rencontre c'est que la pompe péristaltique m'a été imposé et j'aimerai la contrôler via ma carte mks, du genre utiliser la pin des ventilateurs que je n'utilise pas pour envoyer un signal à la pompe afin que celle-ci effectue sa distribution.

 

IMG_0102.JPG

Lien vers le commentaire
Partager sur d’autres sites

Je vois pas pourquoi on t'a conseillé une mks Base, alors que justement une RAMPS+ARDUINO aurait été plus simple du fait de ses multiples sorties.

Sachant que la gestion du core xy, n'est pas lié au matériel, mais au firmware.

Pour contrôler la pompe, les solutions sont multiples. Par exemple via un relais 5v et la commande d’allumage des LED (M355)

Modifié (le) par biostrike
Lien vers le commentaire
Partager sur d’autres sites

Maintenant le matériel est déjà choisi, j'aimerai savoir si selon toi il est difficile de contrôler la pompe ou si cela est relativement facile car je t'avoue n'avoir aucune idée de comment faire.. Je ne connais pas bien le matériel et je commence tout juste à trifouiller dans le firmware (modif lcd etc..). En tout cas merci pour ta réponse

Lien vers le commentaire
Partager sur d’autres sites

il y a 1 minute, Melvin a dit :

Oui c'est une pompe professionnel avec une interface de commande électronique permettant de choisir la quantité voulu etc..

Ok, mais on la commande comment ta pompe ? c'est quoi son interface ? tu as une documentation technique ?

Lien vers le commentaire
Partager sur d’autres sites

Cependant les seules docs que j'ai sont des docs utilisateurs pour expliquer le fonctionnement. De plus une personne de la maintenance m'a demandé d'essayer de faire cela :

"Il faut que les appareils utilisent des contacts secs.;Ci joint le schéma à faire. Il faudra contrôler sur quelles pins du connecteur DB9 se trouvent les 2 informations"

Si je parvenais à faire ce qu'il me demande cela serait parfait

Pompe_Melvin.pdf

Lien vers le commentaire
Partager sur d’autres sites

Il y a 2 heures, Melvin a dit :

La difficulté que je rencontre c'est que la pompe péristaltique m'a été imposé et j'aimerai la contrôler via ma carte mks, du genre utiliser la pin des ventilateurs que je n'utilise pas pour envoyer un signal à la pompe afin que celle-ci effectue sa distribution.

Je n'ai pas l'impression que la difficulté réside dans la commande de la pompe ni au signal de fin de distribution. Ton schéma joint donne déjà la solution.

Pour les déplacements X - Y, ce ne sera pas non plus un problème.

Par contre, comment vas-tu gérer la programmation du Gcode?

Tu ne vas pas te taper les lignes de code à la main (et encore moins ceux qui seront amenés à utiliser le système)

Lien vers le commentaire
Partager sur d’autres sites

comme le dit @Janpolanton tu a la solution dans ton schéma.

Par contre 
effectivement, il te faudra développer un programme qui génère un G-CODE. Pas forcement très compliqué à condition de savoir programmer.

Lien vers le commentaire
Partager sur d’autres sites

Pour ce qui ai des déplacements au dessus des tubes tout fonctionne. J’ai tapé à la main un programme G-code avec dans un premier temps un retour à l’origine puis ensuite des déplacements au dessus des tubes. Effectivement j’ai la solution cependant au niveau de la programmation de la carte je ne sais pas comment utiliser une pin afin de générer ces contacts secs. Merci grandement pour vos réponses

Lien vers le commentaire
Partager sur d’autres sites

il y a 1 minute, Melvin a dit :

Effectivement j’ai la solution cependant au niveau de la programmation de la carte je ne sais pas comment utiliser une pin afin de générer ces contacts secs.

Tu commandes un relais et tu utilises son contact. Il y a des modules tout faits sur la baie.

La sortie ventilo peut être utilisée (PWM 255 soit 100%)

Lien vers le commentaire
Partager sur d’autres sites

D'après la doc de Marlin, il serait possible de piloter une I/O directement avec la commande M42

http://marlinfw.org/docs/gcode/M042.html

 

Reste à trouver une pin disponible sur ton hardware, puis de la faire suivre par un optocoupleur et un relais si tu a vraiment pas d'autre option que le contact sec (qui va sans doute piloter un autre optocoupleur dans le PMI.. une belle hérésie électronique, mais bon, au prix du matos, je me doute que tu ne joue pas à l'apprenti sorcier)

 

Par contre, dans "l'autre sens", pour mettre en pause le déroulement du GCode tant que la pompe n'a pas terminé, huuumm lire l'état de quelque chose est sans doute possible, mais je sais pas faire du conditionnel en GCode. Je sais que ça existe sur des machines outils, mais je ne sais pas sur Marlin.

Lien vers le commentaire
Partager sur d’autres sites

Merci pour votre aide, d'après ce que j'ai compris je dois trouver une pin disponible sur ma carte ce qui ne devrait pas être compliqué et de mettre un relai entre cette pin et le pompe ? Ou alors je peux directement contrôler la pompe en la connectant à la pin du ventilo et de faire la commande d'activation du ventilo ? Désolé si je dis des bêtises mais je suis assez nouveau dans ce monde et j'essai de comprendre. Pour "l'autre sens" j'avais dans l'idée d'utilisé une pin d'un endstops et de mettre en pause lorsqu'il y a contact, dans la mesure où cela est possible biensûr

Lien vers le commentaire
Partager sur d’autres sites

En fait, si tu n'utilises pas un axe, récupérer ses pins pour faire une entrée/sortie est tout à fait correct, mais détourner un endstop de sa fonction, c'est prendre un risque un jour de se retrouver avec un conflit, par exemple à l'occasion d'une modification/évolution de la machine, d'un changement de version du firmware ou autre changement.

En déclarant une broche non utilisée pour piloter ta pompe, et une autre broche non utilisée pour gérer la pause, ça sera plus 'parlant' et ça prêtera moins à confusion en cas de problème de SAV dans 6 mois, un an, 5 ans 😉

Modifié (le) par .AleX.
Lien vers le commentaire
Partager sur d’autres sites

Juste pour résumer si j'ai bien compris :

1/Pour la distribution

Je me connecte sur une pin libre (pouvant délivrer entre 0 et 5v)  et entre cette pin et la pompe je mets un relai (pour faire le contact sec) et un optocoupleur pour la sécurité du circuit (je ne suis pas sûr de ça) ensuite dans le gcode, je mets la commande M42 avec soit 0 ou 255 pour la distribution

2/Pour l'attente je créais un contact sec entre la pompe et la pin d'une carte et cette fois-ci c'est la pompe qui envoie soit 0 ou 1 et avec la commande m226 je contrôle l'état de la pin..

 

Je dis peut être n'importe quoi mais c'est ce que je pense juste

Lien vers le commentaire
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
×
×
  • Créer...