Régulateur de vitesse [résolu]

Électricité, électronique
Répondre
louis16
Messages : 5
Enregistré le : 20 avr. 2020 05:51

Régulateur de vitesse [résolu]

Message par louis16 »

Salut salut,

Tout d'abord, MERCI à Romain et Mstrens (et aux autre personnes) pour le taf énorme et le partage.
Ensuite, J'ai une question :lol:
Est ce que quelqu'un (de gentil) pourrait me dire si il est possible d'ajouter un variateur de vitesse pour les axes XYZ?
J'ai vu sur le forum que le sujet à était "survolé" à moins que j'ai mal chercher :oops: .
Mais en fait, je trouve que cette "option" est juste indispensable même si je sais qu'on peut joué sur les vitesses via le tft, avoir un potar entre les doigts en début de prog fait vraiment toutes la différence (avis perso) et ce fameux potar m'a sauvé quelques fois sur des commandes numérique...
Je ne suis pas bien malin en électronique mais est ce que ce type de potar pourrait se brancher entre l'alimentation et l'alim des moteur XYZ


Je ne pense pas être le seul à trouver ce variateur indispensable, je suis preneur pour toutes info, voir un schéma ce serait encore mieux :D .

Merci les gars, A+
Modifié en dernier par louis16 le 23 avr. 2020 05:24, modifié 1 fois.
ismael
Messages : 280
Enregistré le : 17 oct. 2019 04:51
Localisation : Vendée

Re: Régulateur de vitesse

Message par ismael »

Salut,
Tu peux tout de suite oublier l'idée de mettre un potar entre les drivers et les moteurs, en effet ceux-ci reçoivent des signaux numériques.
Pour intégrer un tel potar, il faudrait que celui-ci envoie l'information à GRBL et agisse sur les même paramètres que via le TFT.
Quand-à la réalisation, cela dépasse mes compétences!
Je ne penses pas dire trop de conneries, merci de me corriger si c'est le cas malgré tout.
ismael
Messages : 280
Enregistré le : 17 oct. 2019 04:51
Localisation : Vendée

Re: Régulateur de vitesse

Message par ismael »

Si tu veux comprendre comment fonctionne des moteurs PAP (moteur pas-à-pas, comme ceux qui actionnent les axes XYZ), je te conseille la lecture de ce tuto:
https://eskimon.fr/tuto-arduino-603-a-p ... %C3%A0-pas
Beaucoup de lecture et de schémas, ça peut paraître impressionnant quand tu scrolle la page, mais en prenant bien son temps, ça passe tout seul, c'est fait pour!
Avatar du membre
RoMaker
Administrateur du site
Messages : 5063
Enregistré le : 02 janv. 2017 20:24
Localisation : Montpellier
Contact :

Re: Régulateur de vitesse

Message par RoMaker »

Effectivement, les moteurs pas à pas fonctionnent par impulsions, leur vitesse varie en fonction de la fréquence qu'on leur envoie, pas en faisant varier la tension comme sur un moteur classique !
On ne peut modifier la vitesse de job (feedrate) que par une voie logicielle, sois via un soft comme bCNC connecté à la machine, soit via le TFT.
Si on voulait faire varier le feedrate via un potar, il faudrait le brancher sur une entrée analogique du processeur et via le code attribuer telle tension d'entrée pour tel % de feedrate.
Donc tout est faisable mais ça demande un peu de boulot.
louis16
Messages : 5
Enregistré le : 20 avr. 2020 05:51

Re: Régulateur de vitesse

Message par louis16 »

Salut,

Merci pour vos réponses, sa rejoint ce que j'avais cru comprendre :oops: .
Il faut créer un code arduino pour "dire" à la cnc de prendre en compte le variateur (grossierement c'est ça ) ?
Cette petite CNC reste quand même mon gros kif, je l'adoooore.
Merci encore, prenez soin de vous.
A+
supernono
Messages : 12
Enregistré le : 18 avr. 2020 11:38

Re: Régulateur de vitesse

Message par supernono »

RoMaker a écrit : 21 avr. 2020 14:09 Si on voulait faire varier le feedrate via un potar, il faudrait le brancher sur une entrée analogique du processeur et via le code attribuer telle tension d'entrée pour tel % de feedrate.
Donc tout est faisable mais ça demande un peu de boulot.
une partie de ce boulot est déjà faite pour une carte a base d'atmega2560 je ne sais pas si c'est transposable au code du stm32 mais ça donne une voie de réflexion a voir avec mstrens le programmeur en chef si c'est possible

dans ce lien regardez les fichiers feed_rate_pot.c et feed_rate_pot.h

il y a des "déclarations" dans les fichiers grbl.h , main.c , protocol.c et ma_machine.h (qui remplace le cpu_map.h dans cette version)
selectionnez tous les fichiers .c et .h les ouvrir tous en même temps dans notepad++ et faire une recherche (ctrl + f) de "FEED_RATE_POT" dans tous les fichiers

j'espère que ça rendra service et que ça fera avancer le smilblick !!

j'essais de mon coté de le faire avec un codeur rotatif et un arduino pro micro qui communiquerais via une liaison uart auxiliaire avec l'atmel2560 ,je vous en dis plus quand ça marche !

a mon avis et ça n'engage que moi : il est primordial voir indispensable d'avoir cette commande , ça peut vous sauver un usinage qui part mal en jouant sur la vitesse d'avance surtout si elle a été mal définie dans le gcode (et il est facile de se planter dans la création d gcode quand on débute !!)
Avatar du membre
RoMaker
Administrateur du site
Messages : 5063
Enregistré le : 02 janv. 2017 20:24
Localisation : Montpellier
Contact :

Re: Régulateur de vitesse [résolu]

Message par RoMaker »

C'est vrai qu'il y a de la demande pour cette fonction, mais perso je suis une bouse en programation, il faut voir ce qu'en pense MStrens, après s'il faut juste rajouter des pins pour un encodeur rotatif sur le PCB, je peux faire sans problème.
supernono
Messages : 12
Enregistré le : 18 avr. 2020 11:38

Re: Régulateur de vitesse [résolu]

Message par supernono »

pour ce que j'ai présenté en lien ça fonctionne avec un potar relié a une pin analogique du mega2560 (ou du stm32 si dispo)
qui viens modifier la valeur de l'override du feed rate
ce travail n'est pas de moi mais je suis en contact avec l'auteur , comme tu dis il faut voir avec mstrens ce qu'il en pense

pour le moment l'encodeur rotatif faut attendre que j'ai fini la mise au point
l'idée dans le grandes lignes c'est que la carte GRBL (atmega2560 ou stm32) envoie une requête via un port série annexe vers l'arduino pro micro réclamant la valeur du (des) codeur (s) et l'arduino pro micro répond la (les) valeur (s)

le première moitié fonctionne (carte indépendante encodeur / arduino pro micro )
il me reste a faire l'intégration de la communication série dans le code de grbl (et la ça se complique pour moi pas très doué en C l'autre partie a été écrite en arduino là ça vas a peut près )
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Régulateur de vitesse [résolu]

Message par mstrens »

Personnellement je ne suis pas convaincu par l'utilité de cette fonction.
La modification (overwrite) de la vitesse des moteurs ( et aussi de la broche) est déjà possible avec l'ESP32 par pas de 1 ou de 10 (facilement adaptable) durant l'usinage.

Si on craint que l'usinage démarre avec une vitesse trop rapide, il est possible de réduire par exemple de 3X10% la vitesse avant de lancer l'usinage et ensuite de l'augmenter en quelques secondes au besoin.
Utiliser un encodeur rotatif ne réduira pas beaucoup le temps de réaction.
L'utilisation d'un potentiomètre réduit un peu plus le temps de réaction mais exclu la modification par les boutons déjà présent sur le TFT ou par un programme comme BCNC (car le potentiomètre fixe alors la valeur de l'overwrite alors que les boutons demande de la changer d'un certain %)

A noter que d'un point de vue technique, il y a 3 solutions pour implémenter un potentiomètre:
- modifier le code de l'ESP32 pour lire le potentiomètre et en déduire les modifications d'overwrite à commander à GRBL via l'interface série (et ce en fonction de la valeur courante de l'overwrite communiquée périodiquement par GRBL sur le port série
- modifier le code de GRBL pour lire le potentiomètre et en déduire la valeur d'overwrite à appliquer
- utiliser un arduino séparé pour lire le potentiomètre et envoyer la valeur à GRBL via un autre port série (ou I2c ou SPI) ; modifier GRBL pour lire cette valeur.
Aucune des solutions n'est triviale.
supernono
Messages : 12
Enregistré le : 18 avr. 2020 11:38

Re: Régulateur de vitesse [résolu]

Message par supernono »

pour clarifier :

ayant un début de réponse à la question posé dans ce sujet je me suis permis de la proposée ici pour faire avancer le smilblick

pour le moment il me manque des pièces pour finir la mécanique et je travaille avec une carte MKS GenL et CNCjs (mais je suis de près l'avancement du système 32 bits)

après pas mal de tests je me suis aperçu que si on règle la valeur du feed rate a 100% avec le potentiomètre on peut reprendre la main sur le réglage dans CNCjs

j'ai développé une carte annexe comme tu le propose pour communiquer via port serie 2 de ma MKS (port PH0 et PH1) mais je ne suis pas vraiment doué en langage C pour modifier le code de GRBL , mais j'y travail !! (la carte annexe est codé en langage arduino !!)

la carte annexe est composée d'un arduino pro micro , 2 encodeurs avec bouton poussoirs "sous" l'axe et 2 leds bicolore
un encodeur pour le feed rate et un pour le spindle , le bouton poussoir permet d'activer ou non le fonctionnement de l'encodeur et la led indique le mode activé (rouge) ou bloqué (verte)
en mode bloqué j'ai la main sur les contrôles Feed rate, Spindle et Rapide de CNCjs

personnellement (et ça n'engage que moi) je préfère tourner un bouton de potentiomètre que de naviguer dans les menus d'un écran tactile ou cliquer à la souris sur un ecran de PC c'est plus intuitif et plus rapide
Répondre