Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Soft de commande CNC en asm
JJE
Passioné
Passioné
Messages : 357
Âge : 78
Enregistré en : novembre 2017
Localisation : Picardie

#411 Message par JJE » lun. 27 mai 2019 14:58

je viens de tomber sur cette page qui m'a bien plue. Peut-être intéressera-t-elle aussi. C'est sérieux (IREM = institut de recherche sur l'enseignement des mathématiques) et facile à lire. C'est vrai que c'est pour un écran, mais je veux bien t'adapter l'algorithme de la page 16 pour l'adapter à la situation qui nous intéresse. Note que je n'ai pas du tout l'idée de te faire changer ton programme, c'est juste culturel et ça illustre bien le fait qu'il est préférable de distinguer les cas >45° ou <45°


Dans ma non-culture sur les moteurs pas à pas, pour lui faire faire un pas, on lui envoie une impulsion, dont la durée est certainement fonction du type de moteur et de sa charge. L'intervalle entre deux impulsions règle la vitesse de rotation du moteur, avec un minimum fonction du type de moteur et de sa charge. Sauf erreur, le "driver" n'est qu'un pont en H chargé de déterminer le sens de rotation.
Avec ce fonctionnement, si j'envoie simultanément une impulsion à deux moteurs, ils tournent en même temps. C'est, je crois ce que disais temps-x et ce que j'essayais de détailler dans mon post #406

Détrompe moi s'il te plait si je me plante, et, si tu as un lien sur un document décrivant ce fonctionnement, je suis preneur, merci
Cordialement

JJE

C'est pas parcequ'on n'a rien à dire qu'il faut fermer sa G....e

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 879
Âge : 65
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#412 Message par F6FCO » lun. 27 mai 2019 17:53

Re,
Je connaissais l'algo de Bresenham, il est plutôt utilisé pour le dessin, il sert plus à lisser une droite pentue pour avoir un bon rendu visuel qu'à avoir quelque chose de précis, c'est pour cela que je ne l'ai pas utilisé.
Le gars qui a pondu l'article explique au début qu'il y a trois méthodes pour tracer une pente, il a oublié de dire qu'on peut aussi le faire par les maths soit avec la fonction de calcul de pente y=ax+b, soit par la Trigonométrie, c'est cette dernière méthode que j'ai utilisée en faisant un calcul de tangente pour chaque déplacement.

Tu peux effectivement faire fonctionner un moteur pap avec deux ponts en H mais il est plus utilisé pour les moteurs à courant continu. Pas très pratique d'utiliser deux simples ponts en H pour commander un pap car il faudrait "allumer" ses 4 entrées (donc 4 pins utilisées) suivant la table de vérité pour le faire tourner dans un sens ou un autre, (voir ici par exemple), c 'était le cas des L293 et L298 qui regroupaient un double pont en H. On pouvait les commander soit en pilotant directement leurs 4 entrées suivant la table de vérité, soit en les interfaçant avec un L297 qui faisait le travail à notre place (voir ici).
Les drivers modernes n'ont plus besoin de tout çà et il n'y a plus que 2 pins utilisées par moteur, une pin pour les impulsions de pas et une pin pour le sens de rotation, c'est le cas par exemple des TB6560 et TB6600HG actuels. Bien sur il y en a d'autres, pratiquement tous les fondeurs ont sorti un chip pour driver les moteurs, je ne parle ici que de ceux que j'ai utilisés et qui sont les plus courants.

Non, une impulsion=1 pas, quelque soit sa durée. Tu veux faire 30pas, tu envoies 30 pulses. Si tu fais varier la durée de l'impulsion tu feras juste varier la vitesse de rotation, c'est ce que j'explique au post précédent.

Tu as raison, on peut parfaitement mettre deux moteurs pap, voir trois sur un seul PIC, c'est d'ailleurs ce que j'ai fais, la machine est basée sur un seul 18F4525 qui gère tout. En branchant les trois moteurs sur un même port on pourrait les faire tourner ensembles en envoyant un mot binaire sur le port, je n'y avais pas pensé :roll:. Mais à mon avis çà n'aurait pas amené grand chose de plus et plus compliqué à mettre au point. Le gcode envoie les infos une par une, X, ensuite Y et enfin Z, à chaque réception de donnée on fait bouger l'axe en question, c'est plus simple et plus pratique à gérer en cas de bug (et il y en a eu :roll: ) lors de la mise au point.
Une porte nand prend 2 bits en entrée... cochonne va !!! :langue:

Soft de commande CNC en asm
JJE
Passioné
Passioné
Messages : 357
Âge : 78
Enregistré en : novembre 2017
Localisation : Picardie

#413 Message par JJE » lun. 27 mai 2019 19:44

F6FCO a écrit :Source du message Non, une impulsion=1 pas, quelque soit sa durée. Tu veux faire 30pas, tu envoies 30 pulses. Si tu fais varier la durée de l'impulsion tu feras juste varier la vitesse de rotation, c'est ce que j'explique au post précédent.

Je crains une différence de vocabulaire
Dans mon vocable, mais je n'ai jamais fait beaucoup d’électronique, une impulsion c'est le passage d'un état bas à un état haut (ou le contraire) jusqu'à son retour, d'ailleurs, ne parle-t-on pas du front montant ou descendant ? la durée d'une impulsion est la durée qui sépare le premier front du deuxième, j'ai l'impression que=, pour toi, une impulsion, va d'un front montant au front montant suivant.
Je pense que pour un pap, mon impulsion doit avoir une valeur minimale mais qu'à part cela, ça n'a pas grande importance. Pour un moteur pap, je ne vois pas de nécessité à ce que les impulsions soient régulièrement espacées dans le temps, l'intervalle de temps entre le front descendant d'une impulsion et le front montant de la suivante (si le pap est commandé en logique positive ce que je ne sais pas) n'a pas, a priori de raisons d'être constant, c'est même là-dessus qu'on doit s'appuyer pour gérer la vitesse du moteur.
Ai-je bien compris ?

PS : curiosité, j' aurais pu commencer par là si je pensais à consulter Internet qui n'est pas vraiment de ma génération
En électricité/électronique, une impulsion est une variation brève et rapide d'un état électrique généralement utilisé comme signal.
Cordialement

JJE

C'est pas parcequ'on n'a rien à dire qu'il faut fermer sa G....e

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 879
Âge : 65
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#414 Message par F6FCO » lun. 27 mai 2019 20:30

Il suffit de parler la même langue :wink:
Bon alors on ne va plus parler d'impulsions, c'est un mot au sens général, en logique positive qui est notre cas un pulse est considéré comme la partie haute du signal (front montant, état haut, front descendant). Mais la partie basse en fait partie aussi.
En électronique on parle d'alternance, de demi-alternance et de rapport cyclique.
Une alternance est le signal compris entre un front montant et le prochain front montant.
Si on considère que l'alternance est comprise entre le front descendant et le prochain front descendant c'est parce qu'elle est déphasée de 180° (je simplifie au maximum hein!)
Ce que tu appelles impulsion (front montant et état haut) est presque une demi-alternance.

La fréquence est le nombre d'alternances pendant 1 seconde.
Pour mieux comprendre fais l'analogie avec le signal sinusoïdal du secteur (50hz=50 alternances par seconde), sauf qu'ici on est en signaux carrés.
Il faut considérer aussi le rapport cyclique qui est le rapport de durée entre la demi alternance haute et la demi alternance basse, quand les deux parties sont égales en durée le rapport cyclique est de 50%. C'est en faisant varier ce rapport cyclique qu'on génère un signal PWM.

Tout ceci exposé revenons à nos moteurs pap:
1 alternance = 1 pas. D'un front montant au prochain front montant et quelque soit le rapport cyclique.
On envoie tant d'alternances pour faire tourner le moteur de tant de pas. (c'est quand même plus parlant de dire "impulsions" :wink: )
Si tu fais varier la fréquence et que le nombre d'alternances envoyées par le programme reste le même on parcourra la même distance mais la vitesse d'exécution sera plus ou moins grande.

Mais on parle quand même la même langue :wink: car ce que tu dis est vrai et reviens à mon discours, si le driver déclenche au front montant pour faire un pas il fera son pas suivant au prochain front montant et il se sera passé ? .... une alternance.
Parce que c'est bien joli de faire faire un pas au moteur sur un front montant, mais si on veut faire un autre pas il faut bien passer par un front descendant avant... donc 1 alternance.
Modifié en dernier par F6FCO le lun. 27 mai 2019 20:58, modifié 1 fois.
Une porte nand prend 2 bits en entrée... cochonne va !!! :langue:

Soft de commande CNC en asm
JJE
Passioné
Passioné
Messages : 357
Âge : 78
Enregistré en : novembre 2017
Localisation : Picardie

#415 Message par JJE » lun. 27 mai 2019 20:56

merci de ces infos,
en résumé
    - pour faire tourner le moteur on envoie un (des) pulse(s) qu'il est relativement facile de convertir en distance parcourue par le chariot en fonction des paramètres matériels, pas de la vis, nb. de pas par tour du moteur. La durée minimale du pulse doit être donnée par la notice technique du moteur.
    - pour gérer la vitesse du chariot, problème qui ne doit se poser que pour des déplacements parallèles aux axes et de maigre intérêt je pense pour la gravure de PCB, on joue sur la fréquence, avec là aussi des contingences matérielles dureté du matériau, solidité de la fraise, ... un max pour pas aller trop vite, et sûrement un min pour que les impulsions ne se "mélangent" pas
    - rien n'interdit de commander plusieurs moteurs simultanément, sauf peut-être l'augmentation de la complexité des algorithmes :sifflotte:
je crois que je saurais commander des moteurs PAP, reste la partie technique, le "bricolage" pour monter tout ça, là je ne me sens pas de la classe et sans ça, pas de plaisir à s'amuser à développer le soft, ça m'aurait amusé de faire un programme qui fait les trous :-) , voire la sérigraphie, écrire du texte, ce doit être quelque chose. Il y a longtemps, j'ai fait, en VB6, une extension du TCI d'Urbani qui, entre autre, faisait les impressions (eh oui, Urbani refuse les minuscules et nombre de caractères), j'ai souvenir d'avoir eu pas mal de difficultés avec Windows pour écrire des textes "dans une glace" pour un typon

fin de la parenthèse dans ce sujet et :bravo: à paulfjujo d'avoir trouvé son défaut
Modifié en dernier par JJE le lun. 27 mai 2019 21:16, modifié 1 fois.
Cordialement

JJE

C'est pas parcequ'on n'a rien à dire qu'il faut fermer sa G....e

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 879
Âge : 65
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#416 Message par F6FCO » lun. 27 mai 2019 21:08

C'est dommage, cette conversation aurait méritée d'être faite dans le sujet "Discussion sur les CNC" :wink:

pour faire tourner le moteur on envoie un (des) pulse(s) qu'il est relativement facile de convertir en distance parcourue par le chariot. La durée minimale du pulse doit être donnée par la notice technique du moteur.


Exactement, il suffit de savoir si on est en pas entiers, demi-pas, etc. et connaître le pas de filetage de la vis d'entraînement.

pour gérer la vitesse du chariot, problème qui ne doit se poser que pour des déplacements parallèles aux axes et de maigre intérêt je pense pour la gravure de PCB, on joue sur la fréquence, avec là aussi des contingences matérielles dureté du matériau, solidité de la fraise, ...

Si, c'est quand même à prendre en compte suivant la vitesse de rotation de ton outil, si tu as une broche qui tourne trop lentement il ne faudra pas te déplacer trop rapidement sinon tu auras une découpe "hachée" pas très belle. Mais en général on utilise des moteurs qui tournent à 12000 tr/mn (broches chinoises) ou 30000tr/mn pour les dremels, donc dans ce cas effectivement la vitesse de déplacement n'est pas critique, il faut juste laisser à l'outil le temps de découper la matière.
Une porte nand prend 2 bits en entrée... cochonne va !!! :langue:

Soft de commande CNC en asm
JJE
Passioné
Passioné
Messages : 357
Âge : 78
Enregistré en : novembre 2017
Localisation : Picardie

#417 Message par JJE » lun. 27 mai 2019 21:22

tu est l'homme qui lit plus vite que son ombre, j'avais repris ma première réponse pour la compléter et je pense que tu n'as eu que le début.
C'est dommage, cette conversation aurait méritée d'être faite dans le sujet "Discussion sur les CNC" :wink:

C'est vrai, il n'y a guère qu'une page mais je ne sais pas faire, on peut mettre un lien jusqu'ici dans l'autre sujet, veux-tu que je m'en charge ?
Cordialement

JJE

C'est pas parcequ'on n'a rien à dire qu'il faut fermer sa G....e

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 879
Âge : 65
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#418 Message par F6FCO » lun. 27 mai 2019 23:19

Effectivement j'avais répondu avant que tu ne modifies ton post.
Oui tu peux faire le lien.
Une porte nand prend 2 bits en entrée... cochonne va !!! :langue:

Soft de commande CNC en asm
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 1336
Enregistré en : juillet 2016
Localisation : Terre

#419 Message par Temps-x » mar. 28 mai 2019 02:18

Bonjour JJE, F6FCO, et tout le forum,

je suis pas un artiste dans l'écrire comme vous, mais bon je vais essayer de m’exprimer.

Dans le post #351 s'explique à F6FCO qu'il ne peut avoir plus de 10 directions avec une CNC 3 axes, et si il avait adopté ma méthode
aucun calcul ne serait nécessaire.

La lecture du Gcode n'est pas un problème, puisque c'est le PC qui envoie les données.

De plus dans mon exemple j'utilise des moteurs unipolaire, ce qui rends la tache plus difficile qu'un bipolaire, car je dois trouver le
code pour chaque moteur,

Ceux de F6FCO sont des bipolaires, et comme il utilise un drivers pour chaque moteur, plus de soucis du codage.
Juste une impulsion pour faire tourner son moteur bipolaire d'un pas, avec le sens à gérer.

Très instructive cette discussion, et de plus fait avec courtoisie :bravo:

==> A+
Modifié en dernier par Temps-x le mar. 28 mai 2019 17:51, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 879
Âge : 65
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#420 Message par F6FCO » mar. 28 mai 2019 13:41

Et hop, une méthode de plus pour faire une pente, il faudrait peut-être en informer le gars de l'IREM :sifflotte: :lol:

Il y a toujours 1000 solutions à un problème et c'est ce qu'il y a de passionnant dans la programmation.
Une porte nand prend 2 bits en entrée... cochonne va !!! :langue:


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité