Mesure de précision, de 20 vers 5 microns

Bonjour à tous.
Il y a un an de ça, je réalisais une machine qui me permet de mesurer une anche libre (donc mobile) en laiton ou inox (post Mesure de distance - précision 10microns environ). J'ai voulu poser ma question à la suite de ce fil de l'époque, mais il est fermé.
En gros, je suis sur une structure d'imprimante 3D, j'envoie un signal numérique dans la pièce à mesurer, je descends une pointe de test vers ma pièce, et quand je le retrouve de l'autre coté (j'ai opté pour le moment pour une raspberry) sur un gpio, j'envoie une interruption au programme python qui contrôle tout ça, et ça me donne la position du moteur à ce moment là. Pour le moment, j'observe empiriquement une précision de 20 microns.

Mon objectif est de descendre, en terme de précision, à 5 microns. Je cherche déjà à calculer le pas théorique de déplacement de mon moteur (couplé en direct à une M8, pas de 0.75mm).

Si je calcule bien :
360 degrés divisés en pas de 0.9° = 400 pas.
0,75mm de pas divisé par 400 ~= 0,002mm. Je devrais donc atteindre une précision théorique deux fois supérieure à ce que je vise.

Mais d'un autre coté, je vois le réglage par défaut de l'imprimante, qui est à 400pas / mm (à l'origine, l'imprimante est livrée avec des moteurs à pas de 1,8°). Ce qui me surprend est le réglage par défaut dans le firmware de la carte contrôleur (une skr mini e3 2.0) : il est déjà sur 400 pas / mm , prévu pour fonctionner avec des moteur en pas de 1.8°.
Or si je calcule 400 pas de 1,8°, ça m'en fera 720° soit deux tours, ce qui devrait me faire mon pas *2, soit 1,5mm, et non pas 1mm ....

Est-ce que quelqu'un est familier avec ces moteurs pas à pas et pourrait me dire où ma logique est erronée ?
Merci d'avance !

bonsoir
Je me souviens de ton topic , on peut le re-ouvrir si tu le souhaite et englober les 2 topics.

Tes moteurs pas à pas sont surement controlés en µpas avec là 2 µpas par pas mecanique (apparence de 0.9°/step)
pour se positionner et "tenir" le micron c'est mécaniquement une autre paire de (m)anche

J'ai l'impression qu'il y a un mélange entre pas/mm et pas/tour.

Attention de ne pas confondre précision et résolution. Si on passe en 20000 micros pas par tour, on a une résolution de 1/20000ème tour, mais on peut avoir une précision que de 1/200ème de tour.
Un moteur non chargé sans frottements secs se positionne pôle en face des pôles (le couple du moteur est nul), mais si il est chargé (entre autre par des frottements secs, mais aussi par un couple résistant, les pôles se décalent jusqu'à un vrai pas entier. Il est illusoire de penser qu'en mode demi pas, la précision augmente.

Ca ira pour le topic, merci :slight_smile:
Les moteurs sont vendus pour faire 0.9° par pas, et pour doubler en précision - du moins, j'ai cru lire sur des forums à droite à gauche qu'ils sont utilisés ainsi dans le monde de l'impression 3D. Si j'ai bien compris, il y a aussi des micros-pas, mais sur lesquels je ne peux pas prendre la main, qui ne sont que pour "lisser" le mouvement.
Et pour tenir le micron mécaniquement, je ne peux pas, j'ai trop de jeu partout sur une structure comme celle-ci. Sur la machine précédente, je manque de pas grand chose pour atteindre l'idéal rechercher (les 20 microns de précision sont très stables, souvent 10). J'en refais donc une où j'essaye de tout stabiliser le plus possible - tenseurs sur les coupleurs, etc .

Je crois que j'y suis. Effectivement, les microssteps sont gérés par la carte, mais de là où je suis , ce n'est qu'un paramètre.
Par contre, les moteurs utilisés sont bien donnés pour avoir un step angle de 0.9°(+-5%):

tu peux toucher a la structure de ton imprimante ?
parce que, instinctivement, je me dis que si tu démultiplies ton nema, tu devrais théoriquement gagner en précision, vu qu'il te faudra plus de tours pour faire parcourir la même distance à ta courroie. C'est une réflexion instinctive, ça mérite un peu plus de réflexion :slight_smile:

Ah oui tout à fait, j'y ai pensé. Le fait est que pour le moment, c'est un couplage direct, et qu'à priori, "théoriquement", la précision des moteurs 0.9° devrait suffire. Maintenant, comme ma théorie ne me permet déjà pas de comprendre comment est réglée la machine d'origine, j'ai un doute :slight_smile:

Bon, je réponds à ma propre question : effectivement, le réglage machine prend en compte les microsteps, qui sont par défauts de 16. J'ai du coup fait ce tableau pour trouver le réglage qui m'est nécessaire et la perte de couple associée, en fonction de ce qu'expliquait @vileroi : avec des moteurs en 0.9° avec des microsteps de 8, je devrais atteindre une précision de 2,5microns, en conservant 19% du couple.
Bon bah ... Merci à vous, y'à-plus-qu'à :slight_smile:

Sans doute plus, car rien ne dit que la taille des micros pas sont le mêmes. Si on n'alimente pas le moteurs, on a des crans qui correspondent à la réluctance minimale. Si les pôles sont alimentés, le couple est environ 10 fois plus grand, mais le couple final doit être une combinaison des deux, couple dû au champ magnétique et couple du à la réluctance.

De toutes façons la précision vient en grande partie de la partie mécanique aussi

bonjour
J'ajouterais même "surtout" , il n'existe pas de vis/ecrou avec un pas "extra-fin" ?
genre 0.25 ?

Idée rapide (et peut être irréaliste) en passant : hacker un comparateur mécanique en positionnant un aimant "diametral" sur l'axe de l'aiguille et recuperer l'info angulaire avec un capteur angulaire genre as5047

En théorie la résolution angulaire serait de 360°(un tour/mm) / 4096 (2^12) = 0,022 °
(1mm) /4096 = 0,00024 mm de résolution... toute théorique.

en complément si tu monte ce genre de module derriere ton PaP tu tombe à 0.75mm/4096 de résolution théorique 0,00018 mm en 12 bits
et en 14 bits à 0,000045 mm

J'ai cherché rapidement, je n'ai rien trouvé de mieux que le pas actuel. Je ne sais pas auprès de qui chercher ça ailleurs que via le web, si quelqu'un a quelque idée là-dessus, je suis preneur bien sûr.

C'est une bonne idée. Je m'étais posé la question de hacker un comparateur, mais je m'étais dissuadé par la complexité de la mise en oeuvre. C'est que je ne suis que bidouilleur, je n'ai pas d'expérience en conception de machine.
Je vais déjà essayer de pousser la structure actuelle au bout de ce qu'elle peut faire.
Si vraiment je veux un jour passer au cran dessus, j'envisagerai le laser - j'en ai vu qui pourraient correspondre, mais il y en a pour 2000€ pièce, ça fait cher pour bidouiller, et bonjour la peur de casser pour quelqu'un qui n'a pas l'habitude de manipuler ce genre de matériel !

Bonsoir

Au lieu d'en hacker un, pourquoi ne pas en faire un pseudo avec un capteur de type AS5600 ou équivalent plus précis. L'idée est que, sur le chariot, de façon perpendiculaire, un levier, sur l'axe du capteur, dont l'extrémité serait le contact du point de mesure. Ainsi, se capteur assurerai "l'entre-pas" de la vis du MPAP. La position mesurée serait la somme des pas de la vis + l'angle du capteur.
Ais-je été suffisamment claire :blush:

Cordialement
jpbbricole

Je crains que non, j'ai cherché mais je n'ai pas compris :slight_smile: . J'avais éliminé à l'époque les capteurs de tous poils, simplement parce que la zone à mesurer est élastique, mais aussi étroite (j'ai une pointe de 0.5mm de diametre pour faire ma mesure. J'ai essayé plus fin, mais il suffisait de la moindre poussière pour que le signal ne soit pas detecté. De la même manière, au moment de la lecture, j'imprime un micro-mouvement à la pièce, perpendiculaire à la pointe donc, pour faire "frotter" et éviter l'illisibilité sur certains points. Ca s'est révélé très fiable ainsi.

Bonsoir Jean

C'est un contact électrique qui fait que c'est "touché" ?
Avec ma proposition, c'est le fait que le capteur a bougé.
Le scénario serait ainsi, tu avances le capteur au moyen de la VAB jusqu'à ce que la capteur bouge parce que sa tige a touché l'objet, la position serait la position de la VAB + le "bougé" du capteur.
A moins que je n'aie rien compris, ce qui ne m'étonnerai pas du tout :upside_down_face:

Cordialement
jpbbricole

Ah oui ok. Alors, le contact se fait sur une pointe de test à ressort, parce que la lecture est faire sur une anche elastique (un bout de laiton fixé que d'un seul coté, et je mesure à l'extrémité non fixée). Le but est que, via le signal electrique (un TRUE numérique, donc un alterné +5 -5), le moindre éffleurement déclenche la réponse. Donc en théorie, la pointe ne bouge pas du tout.

Bonjour Jean

Donc, suivant la position de l'objet à situer, tu risques de te retrouver "entre 2 pas" de ta VAB?

Cordialement
jpbbricole

Oui exactement. Si c'est le cas, la pointe commence à "pousser" sur mon objet, et donc à fausser ma mesure (partiellement compensé par le fait que ça soit une pointe à ressort, mais sur la première partie de la course, l'anche est plus faible que le ressort). Ca a été un long travail d'expérimentation pour trouver le bon timing, d'ailleurs : la chaine complète (parcours du signal, conversion a/n, interruption machine, interruption programme, temps d'exécution de la routine de réponse) prends du temps, qui fait que si je descends trop vite, je peux vite avoir le temps de repousser l'anche de 1 ou 2 mm. Je fais donc 2 approches : une premiere rapide, et une seconde où je redescends très lentement , pour laisser le temps à la chaine de s'executer.

bonjour
Tu peux faire qq photos de ton banc de manip avec une anche en position , je me représente à peu prés le système,mais je réfléchis "mieux" avec du concret" . :grinning:

Tu utilise un pogo pin comme pointe de touche ?

Voici. Ca, c'est l'écart que je cherche à mesurer :

Voici le système actuel, juste avant la lecture :


La pointe du haut est celle par laquelle je fais la lecture, celle du bas, celle par laquelle je fais le réglage.

J'utilise ça (ce n'est pas exactement ce modèle là, mais très similaire) :slight_smile: https://docs.rs-online.com/38e6/0900766b815846a8.pdf

Bonjour;
Je déterre ce sujet car je suis toujours sur cette machine, qui fonctionne très bien, mais manque toujours un peu de précision (dans la pratique, autour de 20 microns alors que je vise les 5), et surtout, est désespérement lente.
J'ai cherché du côté des capteurs industriels, et j'ai trouvé ça :

A priori ça le ferait, mais j'ai un doute : n'ayant pas de compétences en électronique, est-ce que je pourrai récupérer facilement les valeurs fournies par l'appareil ? A priori, selon la doc, je peux paramétrer une sortie analogique de 0 à max 10V (paramètrable via un logiciel dédié). Je me dis donc qu'avec un convertisseur A/N, récupérer ce signal dans mon programme python (ça tourne sur une raspberry). Je viens prendre conseil comme les gens ici ont l'air de toucher, car je voudrais être sûr que c'est possible avant d'investir (c'est un sacré gros billet).
Merci d'avance pour vos avis !