CNC écrire un système de mesure d'outils en rotation par shadow laser et quadrant photodiode
par
, 10/09/2018 à 04h39 (1015 Affichages)
Bonjour,
Le projet consiste à mesurer le diamètre et la longueur d'un outil en rotation sans contact en obscurcissant (shadowing) un laser.
La vitesse de rotation est connue et stable à 1%
La vitesse de translation est connue et précise à une valeur proche de 100%
La précision dépend de l'encodeur linéaire monté sur la fraiseuse en général 5 microns ou 1 micron
La précision souhaité est <= 1/100 de mm fiable
La répétabilité doit permettre de valider une mesure au 1/100 de mm
L'outil doit couter à la fabrication moins de 100€
Le prototype est en plaque d'acier de 20mm pour la base et 10mm pour les murs
l'outil définitif sera en granit epoxy et vendu moins de 500€ avec le filtre à air comprimé les protections anti liquides et les valves disponible aussi en open source.
On s'amusera ensuite à compter les dents et les mesurer ainsi que la digitalisation du profile, du faux rond et de l'usure (développement ultérieur)
Le principe.
un laser rouge à 1€ alimenté de façon stable raisonnablement réglé passe à travers un trou lissé et fraisé de 1.5 mm de diamètre puis passe 20 cm dans l'air puis repasse à travers une loupe (ou pas) et atterrit sur une photodiode en quadrant S5980 ici http://images.100y.com.tw/pdf_file/2...5981-S5870.pdf
J'en ai eu 2 gratos merci Hamamatsu mais c'est un composant assez onéreux de l'ordre de 15€ unitaire pour un achat de 1000
Je les ai monté en phototransistor avec des BC547c avec une résistance de 1k sur l'émetteur alimenté en 5V et cela fonctionne très bien.
le premier essai avait été fait avec une arduino, je passe maintenant sur NUCLEO-F401-RE
Mon premier essai avait été fait avec un phototransistor en quadrant récupéré sur un encodeur de photocopieuse xerox et cela fonctionnait très bien aussi, et il était probablement moins cher , malheureusement je n'ai jamais réussie à en trouver d'autre .
le montage est fixé sur la fraiseuse perpendiculaire à l'axe des X, l'outil est en rotation 600RPM (il faudra peut être faire un sélectioneur de vitesse 300 rpm pour les grosses fraises 600 et 900rpm )
la première stratégie consistait à considérer que si 3 fenêtres sur 4 voyaient leur valeur tomber sous leurs valeurs minimum alors la tangente de l'outil en rotation avait dépassé le centre (de peu)
on étalonne chaque quadrant du phototransistor en cherchant la valeur minium sur 1000 mesures
lorsque l'on détecte que deux femêtres sont en dessous de leur valeur minimum on active le signal de probe qui vas dérouler le programme Gcode retrait de 1mm puis avance en vitesse lente .5mm sec
lorsque l'on a la 3ième fenêtre en dessous de son minimum on envoie le signal de probe on soustrait la largeur du séparateur + une valeur déterminée par comparaison avec l'éétalon dans le Vcode de la CNC....job done
Hélas, si les précisions pouvaient se révéler remarquable la répétabilité était lamentable en dehors de toute possibilité de trimming
Donc le principe simple très simple était....trop simple.
Ou j'en suis
définir un nouveau principe de fonctionnement
Même avec des collets de précision il est pratiquement impossible d'avoir un faux rond inférieur à 1 micron, hors mes photo diodes "voient" une variation de 1 micron chaque photodiode mesure 2.5mm le convertisseur analogique digital du NUCLEO-F401-RE est- sur 12bits soit 4096 2.5mm cela fait 2500 microns on a donc 610 nanomètre par point.
Bien entendu on aura pas de stabilité avec une telle valeur mais on devrait pouvoir déterminer une variation cyclique.
Disons le tout net, des collets de cette précision sont très couteux et leurs possesseurs s'achèterons des outils de métrologie à plus de 10000€ susceptible de les satisfaire.
je dois chercher une variation cyclique
lorsqu'une de mes fenêtres passe en dessous de son minimum je déclenche un T.start
si ma valeur n'augmente pas dans le temps nécessaire pour faire 1tour je fais un T.reset cela signifie qu'une poussière est passée devant une fenêtre sinon je vais affiner mes calculs de variation cyclique.
évidemment sur autre chose qu'un mandrin lisse j'aurai plusieurs cycles en fonction du nombre de dents
je prendrai la plus grande variation qui est censée être la première entrée dans le laser
Je calcule le temps qu'il lui faudra pour atteindre le centre de ma cellule (la partie aveugle fait 3/100ème de mm)
j'envoie le signal probe moins le temps de traitement de ma CNC au moment calculé
Je peux éventuellement vérifier la validité de ma mesure en regardant si la 3ième fenêtre sera atteinte au moment prévue .
Je cherche des gens qui seraient intéressés pour développer cela avec moi .
On travaillera en spooling les routines de calculs de périodicités seront coupés pour faire des appels de lecture sur les photodiodes, cela évitera les empilages couteux en temps des interruptions (à moins que cela ne coute rien, je suis obsolète dans mes connaissances mais je doute que l'on puisse faire des interruptions sans bouffer un max de cycles).
Tout repose sur la vitesse de la conversion analogique digitale . A ce sujet j'ai unsigned short read_u16 () ou float read () Je srai bien sur tenté d'utiliser l'unsigned short mais j'i ocru lire que le float était plus rapide sur le STM32 alors float ou integer ?
Je vais avoir un axe de test (ce sera l'outil qui se déplacera au lieu de l'inverse)
Pour l'instant je vais commencer à faire mes tests sur l'ancien photo transistor.
J'ai testé le Hamamatsu pour faire un logiciel d'alignement dont je vais fournir le source
Vos questions et vos objections sont les bienvenues
Merci d''être allé au bout