Welcome! Log In Create A New Profile

Advanced

Commande moteur extrudeur dans Marlin

Posted by sv650s 
Commande moteur extrudeur dans Marlin
March 30, 2016 07:34AM
Bonjour,
Je souhaiterais savoir où se trouve la commande du nombre de pas du moteur de l'extruder dans Marlin
Quelqu'un sait il où celà se trouve ?
Merci a vous

Edited 1 time(s). Last edit at 03/30/2016 08:01AM by sv650s.
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 12:41PM
Personne ?
cela me servirait a calculer la distance de filament utilisé et avoir un fichier sur la sd card qui indiquerait le filament restant sur chaque bobine

A moins qu'il n'y ait un moyen plus simple de calculer la longueur de filament... si vous avez d'autres idées, n'hésitez pas

Edited 1 time(s). Last edit at 03/30/2016 12:42PM by sv650s.
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 01:22PM
Salut,

Quand tu prépares le gcode pour l'impression, tu as l'information concernant la longueur de filament.
Il te suffit de faire un calcul au fur et à mesure pour savoir combien de filament est consommé sur la bobine ou combien il t'en reste.

Sinon, tu peux toujours te baser sur le poids restant de la bobine pour estimer la longueur de filament restante.


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 03:52PM
Ce que je souhaiterais en fait c'est :
- couleur bobine dans le gcode, ça c'est bon
- longueur filament dans le gcode, c'est bon aussi
- lors du lancement de l'impression (ou a la fin de l'impression) via l'ecran lcd :
- ouverture d'un fichier "longueur.txt" sur la carte sd
- soustraire la longueur utilisée pour la piece a la longueur restante
- ecriture du nouveau parametre longueur dans la bonne section couleur
- enregistrement du fichier
- sur l'ecran lcd, pouvoir avoir un menu "filament" qui permettrait de consulter le fichier "longueur.txt" pour avoir la longueur restante sur chaque bobine

Beaucoup d'aide me serait grandement indispensable
Merci a vous

Edited 1 time(s). Last edit at 03/30/2016 03:53PM by sv650s.
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 03:58PM
Ok, je comprends mieux smiling smiley

Mais du coup, comment fais tu pour avoir la couleur et la longueur dans le gcode ?
Comment ton firmware va être capable de parser cette valeur ?


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:04PM
Pour la longueur, c'est directement integre en fin de gcode avec simplify3d
Pour la couleur, dans le end gcode, j'ajoute juste ";couleur: bleu"

Pour le reste je rame......
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:07PM
Oui, ça je suis d'accord que trouver l'info n'est pas difficile smiling smiley

Mais comment veux tu l'extraire du gcode ?
C'est la que je ne vois pas.

Sinon, ta question m'intéresse aussi donc je vais essayer de regarder comment on peut modifier le code pour y arriver.
Mais je ne promets rien winking smiley


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:14PM
Extraire les donnees me semble accessible meme a mon niveau
Mon probleme est d'ouvrir le fichier et de l'enregistrer avec les nouvelles donnees
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:26PM
Pour commencer, il faut les librairies, la pas de probleme elles sont deja dans le Marlin
Puis il faut creer un objet du fichier longueur.txt et permettre la lecture et l'ecriture
Code :
File longueur;
longueur = SD.open("longueur.txt", FILE_WRITE);

Pour fermer le fichier
Code :
longueur.close();
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:28PM
Ben après, les fichiers sont codés en c++.
Du coup, ça reste de la lecture, écriture et maj d'un fichier texte.

Je ne connais pas ce langage, mais ça ne doit pas être trop complexe par rapport aux autres.

Le seul truc va être de trouver ou mettre le code à l'intérieur du firmware.


EDIT : je viens de voir ton message.
Tu créérais donc un fichier txt par couleur ???

Edited 1 time(s). Last edit at 03/30/2016 04:29PM by joyeufetar.


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:30PM
Oui c'est bien le gros probleme...
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:37PM
Par contre il faudrait peut etre commencer par rajouter un menu "filament" selectionnable via l'encodeur rotatif de l'ecran lcd
Où se gerent les menus ?

Ensuite mettre un fichier txt sur la sd card et faire afficher les valeurs sur le lcd
Se serait deja un bon debut

Donc 1ere etape ou se trouve la gestion des menus dans le Marlin ?
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:38PM
Ne pourrait on pas plutôt faire un fichier texte du style :

ID;COULEUR;LONGUEUR
1;noir;110
2;blanc;5
...

Du coup, quand à la fin de l'impression, tu viens lire ton gcode :
- Tu commences par récupérer la couleur et la longueur associé
- Tu vas lire ton fichier texte à la ligne qui correspond à la couleur (il faudra juste que les couleurs matches)
- Si tu as la ligne de ton texte, tu as du coup l'id de la ligne
- A partir de l'id, tu supprimes la ligne et tu la recréés (ou un simple update si c'est possible, mais je ne sais pas. Si oui, alors l'id n'est pas utile)


EDIT : une chose que je n'avais pas pensé, mais il faut aussi une fonction de reset pour la couleur choisie.
Histoire de pouvoir tout remettre à 0 quand on change par une bobine neuve smiling smiley

Edited 1 time(s). Last edit at 03/30/2016 04:39PM by joyeufetar.


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:39PM
Oui cela est possible, par contre as tu vu le post juste au dessus ?
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:42PM
Oui, j'ai vu smiling smiley

J'étais en train de regarder dans le firmware ou la partie écran était gérée.
Mais bon, vu qu'il est possible de gérer plusieurs écrans différents, ça risque de pas être simple winking smiley

A la limite, il faudrait pouvoir simuler le firmware sur l'ordi avant d'uploader quoique ce soit.
Ca permettrait de gagner du temps de developpement.
Je ne sais pas si c'est possible ?

Edited 1 time(s). Last edit at 03/30/2016 04:42PM by joyeufetar.


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:43PM
De mon cote j'utilise le classique smartcontroller, donc je commencerais par celui ci
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:52PM
Regarde le fichier cardreader.h (appel de fonction) et cardreader.cpp (code des fonctions).
Ouverture, ecriture et fermeture du fichier y sont faits smiling smiley

Pour la gestion de l'écran, j'hésite encore entre plusieurs fichiers.


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:55PM
Tu sais où sont gérés les menus ?
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 04:57PM
De ce que je peux voir, les menus semblent gérer directement dans les fichiers du lcd grâce à la fonction MENU_ITEM.

Regarde dans le fichier ultralcd.cpp

Edited 2 time(s). Last edit at 03/30/2016 05:05PM by joyeufetar.


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 05:03PM
Merci je vais regarder ça
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 05:06PM
Cette fonction prend 3 arguments en paramètres :
MENU_ITEM(type, label, args...)

"type" peut prendre plusieurs valeurs : back, submenu, function et gcode
"label" comme son nom l'indique est pour le nom du menu
"args" les arguments que tu veux passer au menu


Déjà, avec tout ça, normalement tu devrais pouvoir faire le menu assez facilement smiling smiley


EDIT : dommage que je n'ai pas un arduino sous la main pour tester.
Car le dev ne semble pas si complexe que ça au final winking smiley

Edited 2 time(s). Last edit at 03/30/2016 05:08PM by joyeufetar.


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 05:16PM
C'est bete, j'ai tout en rab sous la main, arduino ramps et lcd, mais pour moi c'est plus complexe a comprendre....

Edited 1 time(s). Last edit at 03/30/2016 05:16PM by sv650s.
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 05:20PM
Je vais voir si je peux trouver un peu de matos.
Mais clairement, ça m'embête de démonter l'arduino de l'imprimante ^^
Donc je vais voir si il existe des simulateurs arduino + lcd


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 05:24PM
Oui je comprends bien que tu ne vas pas démonter ton imprimante, ce serait dommage
De mon côté je vais commencer a regarder ce que je peux faire...
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 05:30PM
On se tient au jus smiling smiley


Ma Prusa i3 (ancienne imprimante, transformé en Itopie depuis)
Mon Itopie
Mon thingiverse
[TUTO] Lcd full graphic avec firmware Marlin
--
Possibilité de vous imprimer des pièces, n'hésitez pas à demander en MP
Re: Commande moteur extrudeur dans Marlin
March 30, 2016 06:46PM
Voici un petit début ... j'ai réussi a créer une nouvelle page "Filament restant" sur le menu
Les modifs apportées (uniquement de l'ajout en rouge) :
1 - au fichier "language_fr.h"
...
#define MSG_END_HOUR "heures"
#define MSG_END_MINUTE "minutes"
#define MSG_FILAMENT_RESTANT "Filament restant"


2 - au fichier "ultralcd.cpp.h"
...
#if ENABLED(ULTIPANEL)

#if HAS_POWER_SWITCH
extern bool powersupply;
#endif
const float manual_feedrate[] = MANUAL_FEEDRATE;
static void lcd_main_menu();
static void lcd_tune_menu();
static void lcd_prepare_menu();
static void lcd_move_menu();
static void lcd_control_menu();
static void lcd_control_temperature_menu();
static void lcd_control_filament_restant();
static void
...
/**
*
* "Main" menu
*
*/

static void lcd_main_menu() {
START_MENU();
MENU_ITEM(back, MSG_WATCH, lcd_status_screen);
if (movesplanned() || IS_SD_PRINTING) {
MENU_ITEM(submenu, MSG_TUNE, lcd_tune_menu);
}
else {
MENU_ITEM(submenu, MSG_PREPARE, lcd_prepare_menu);
#if ENABLED(DELTA_CALIBRATION_MENU)
MENU_ITEM(submenu, MSG_DELTA_CALIBRATE, lcd_delta_calibrate_menu);
#endif
}
MENU_ITEM(submenu, MSG_CONTROL, lcd_control_menu);

#if ENABLED(SDSUPPORT)
if (card.cardOK) {
if (card.isFileOpen()) {
if (card.sdprinting)
MENU_ITEM(function, MSG_PAUSE_PRINT, lcd_sdcard_pause);
else
MENU_ITEM(function, MSG_RESUME_PRINT, lcd_sdcard_resume);
MENU_ITEM(function, MSG_STOP_PRINT, lcd_sdcard_stop);
}
else {
MENU_ITEM(submenu, MSG_CARD_MENU, lcd_sdcard_menu);
#if !PIN_EXISTS(SD_DETECT)
MENU_ITEM(gcode, MSG_CNG_SDCARD, PSTR("M21")); // SD-card changed by user
#endif
}
}
else {
MENU_ITEM(submenu, MSG_NO_CARD, lcd_sdcard_menu);
#if !PIN_EXISTS(SD_DETECT)
MENU_ITEM(gcode, MSG_INIT_SDCARD, PSTR("M21")); // Manually initialize the SD-card via user interface
#endif
}
#endif //SDSUPPORT

MENU_ITEM(submenu, MSG_FILAMENT_RESTANT, lcd_control_filament_restant);
...

/**
*
* "Main" > "Filament restant" submenu
*
*/
static void lcd_control_filament_restant() {
START_MENU();
MENU_ITEM(back, MSG_MAIN, lcd_control_menu);

END_MENU();
}
Sorry, only registered users may post in this forum.

Click here to login