A
anorac
Nouveau
1 Contexte
N'ayant pas l'environnement logistique et financier requis, je suis amené à bricoler sur des chinoi-
series d'établi du type SX3. De plus finissant par en avoir assez de compter les tours de manivelle en fraction de
mm (ici 1.5)... surtout à mon âge avancé... je me suis décidé à explorer l'installation d'un équivalent de
règle et visu DRO sur ma fraiseuse pour un budget aussi faible que possible. Les solutions du commerce
tournent en fonction des courses autour d'un budget avoisinant les 80-90€ pour une précision de mesure
au 1/100 mm. Or si on accepte une solution du type codeur incrémental avec traitement électronique
des impulsions sur opto-coupleurs à fourches et visualisation sur un écran LCD l'ensemble piloté par une
carte arduino type UNO on se place sur un budget fournitures de 25€ environ. Pour obtenir la précision
souhaitée due à l'inévitable présence du jeu de l'ensemble vis-écrou sur ce type de machine, on prend en
compte par programmation la valeur du jeu en gérant le sens de rotation de la manivelle.
2 Dimensionnement
La manivelle a un diamètre de l'ordre de 90mm et le pas de la vis est de 1.5mm. Les codeurs
incrémentaux classiques sont donnés pour 200 pions par tour. Pour tenir une précision de l'ordre du 1/100
je suis parti sur une roue de 50d sur un diamètre de l'ordre de 100mm ce qui donne un pas au niveau
des dents de l'ordre de 7mm bien compatible avec les opto-coupleurs. La précision maximale obtenue
(distance entre deux impulsions) doit donc être : 1.5/200 = 0.75/100mm. Le mouvement de la manivelle
étant effectué à la main il s'agit de vérifier la vitesse maximale admissible par l'électronique pour ne pas
rater des impulsions. L'arduino est cadencé à 16MHz. Les deux roues génèrent chacune une interruption
respectivement sur les PIN 2 et 3. Pour chaque interruption, le CPU lit l'état de chaque opto-coupleur
sous la forme d'un digitalRead qui prend environ 80 cycles soit 5μs. Puis il incrémente ou décrémente les
compteurs au maximum 4x5 cycles. On peut estimer à 20 μs le temps de traitement de l'interruption due
à l'impulsion. Ceci nous donnerait pour un demi-tour 100x20μs soit 2 ms. Ceci me parait confortable par
rapport à la vitesse à laquelle on tourne les manivelles. C'est un point à vérifier de toutes façons.
Rappel : codeur à 2 pistes
L'utilisation des deux roues décalées de 90° permet de détecter le sens de rotation et pour nous de
gérer la reprise de jeu.
3 Matériel
-Fabrication par impression 3D de deux roues phoniques tête-bêche, de 50 dents chacune décalées d'un demi pas.
-Carte de mise en forme des signaux des deux opto-coupleurs à fourches ici des OPB 820S10 (2x2.5€)
-Alimentation +5v de l'arduino, masse commune, étage de filtration par condo de 100μF et 100nF
et mise en forme du signal par deux portes NAND d'un SN74ALS02N de récup. Pour la mise
au point, notamment de positionnement des fourches décalées de 1/4 de période, branchement
d'un diode sur chaque voie.
-Carte Arduino Uno : le modèle de base suffit : 6.97€
-Ecran LCD en I2C : Bon je me suis fait plaisir j'ai pris un 4x20 mais un 2x16 pourrait suffire bien sur. 10.99€
-(En Option) clavier 4x4 : Pour rentrer une valeur initiale, faire un reset ou autre. Une autre
solution à l'aide de bouton poussoir aurait pu faire l'affaire. 2.1€
-Et tout le reste est de la récup...
4 Mise en route
C'est la contrainte du système. Avant de mettre en route il est judicieux de mettre la vis en butée
sur la noix de façon à positionner correctement le jeu du système 'écrou-vis'. Par défaut dans le programme
j'ai choisi le sens positif 'P'. Mais et c'est là l'avantage d'un clavier 4x4 j'ai associé à la touche A du
clavier l'affectation du jeu au sens positif, et la touche B au sens négatif (M = moins). La touche C est
affectée au rôle d'offset. Celui ci permet d'affecter à l'axe X la valeur rentrée au clavier au point actuel
(à noter que la touche # a été substituée par le - et la touche * par le point décimal, de façon à prendre
en compte n'importe quelle valeur limitée au 1/100 mm). La touche D permet de modifier la valeur du
jeu entre noix et vis ici initialement positionnée à 18 pions obtenue après quelques essais (point initial à
l'aide du vernier sur l'axe puis finition par essai pas à pas).
Résumé des affectations des touches clavier et impact sur l'afficheur :
L'afficheur indique à chaque instant la valeur X de positionnement, la valeur du compteur et les valeurs
des compteurs en butée P/M. Ceci permet de positionner la manivelle par rapport au jeu à tout instant.
En rappel en bas à droite le sens du dernier reset (P ou M).
Sur la première ligne à droite on met en écho les touches frappées au clavier concernant le pavé numérique
( à 9 et touches + et .)
La mise en place d'un comparateur sur l'axe concerné permet de vérifier la bonne répétabilité de
positionnement après des allers retours de manivelle avec cette gestion du jeu.
En manipulant normalement les manivelles je n'ai pas noté de raté d'implusion
confirmant la compatibilité les éléments retenus entre eux (fréquence, nb de dents).
Certes ceci ne remplacera jamais un bon système vis écrou précontraint ou une bonne vis à billes pré-
contrainte, ou une lecture directe absolue du positionnement par règle, mais pour le prix çà me convient
car cerise sur le gâteau l'ensemble est très facile à protéger des copeaux.
En pièce jointe un pdf récapitulatif avec le code arduino associé. Dossier_avec_code_arduino
N'ayant pas l'environnement logistique et financier requis, je suis amené à bricoler sur des chinoi-
series d'établi du type SX3. De plus finissant par en avoir assez de compter les tours de manivelle en fraction de
mm (ici 1.5)... surtout à mon âge avancé... je me suis décidé à explorer l'installation d'un équivalent de
règle et visu DRO sur ma fraiseuse pour un budget aussi faible que possible. Les solutions du commerce
tournent en fonction des courses autour d'un budget avoisinant les 80-90€ pour une précision de mesure
au 1/100 mm. Or si on accepte une solution du type codeur incrémental avec traitement électronique
des impulsions sur opto-coupleurs à fourches et visualisation sur un écran LCD l'ensemble piloté par une
carte arduino type UNO on se place sur un budget fournitures de 25€ environ. Pour obtenir la précision
souhaitée due à l'inévitable présence du jeu de l'ensemble vis-écrou sur ce type de machine, on prend en
compte par programmation la valeur du jeu en gérant le sens de rotation de la manivelle.
2 Dimensionnement
La manivelle a un diamètre de l'ordre de 90mm et le pas de la vis est de 1.5mm. Les codeurs
incrémentaux classiques sont donnés pour 200 pions par tour. Pour tenir une précision de l'ordre du 1/100
je suis parti sur une roue de 50d sur un diamètre de l'ordre de 100mm ce qui donne un pas au niveau
des dents de l'ordre de 7mm bien compatible avec les opto-coupleurs. La précision maximale obtenue
(distance entre deux impulsions) doit donc être : 1.5/200 = 0.75/100mm. Le mouvement de la manivelle
étant effectué à la main il s'agit de vérifier la vitesse maximale admissible par l'électronique pour ne pas
rater des impulsions. L'arduino est cadencé à 16MHz. Les deux roues génèrent chacune une interruption
respectivement sur les PIN 2 et 3. Pour chaque interruption, le CPU lit l'état de chaque opto-coupleur
sous la forme d'un digitalRead qui prend environ 80 cycles soit 5μs. Puis il incrémente ou décrémente les
compteurs au maximum 4x5 cycles. On peut estimer à 20 μs le temps de traitement de l'interruption due
à l'impulsion. Ceci nous donnerait pour un demi-tour 100x20μs soit 2 ms. Ceci me parait confortable par
rapport à la vitesse à laquelle on tourne les manivelles. C'est un point à vérifier de toutes façons.
Rappel : codeur à 2 pistes
L'utilisation des deux roues décalées de 90° permet de détecter le sens de rotation et pour nous de
gérer la reprise de jeu.
3 Matériel
-Fabrication par impression 3D de deux roues phoniques tête-bêche, de 50 dents chacune décalées d'un demi pas.
-Carte de mise en forme des signaux des deux opto-coupleurs à fourches ici des OPB 820S10 (2x2.5€)
-Alimentation +5v de l'arduino, masse commune, étage de filtration par condo de 100μF et 100nF
et mise en forme du signal par deux portes NAND d'un SN74ALS02N de récup. Pour la mise
au point, notamment de positionnement des fourches décalées de 1/4 de période, branchement
d'un diode sur chaque voie.
-Carte Arduino Uno : le modèle de base suffit : 6.97€
-Ecran LCD en I2C : Bon je me suis fait plaisir j'ai pris un 4x20 mais un 2x16 pourrait suffire bien sur. 10.99€
-(En Option) clavier 4x4 : Pour rentrer une valeur initiale, faire un reset ou autre. Une autre
solution à l'aide de bouton poussoir aurait pu faire l'affaire. 2.1€
-Et tout le reste est de la récup...
4 Mise en route
C'est la contrainte du système. Avant de mettre en route il est judicieux de mettre la vis en butée
sur la noix de façon à positionner correctement le jeu du système 'écrou-vis'. Par défaut dans le programme
j'ai choisi le sens positif 'P'. Mais et c'est là l'avantage d'un clavier 4x4 j'ai associé à la touche A du
clavier l'affectation du jeu au sens positif, et la touche B au sens négatif (M = moins). La touche C est
affectée au rôle d'offset. Celui ci permet d'affecter à l'axe X la valeur rentrée au clavier au point actuel
(à noter que la touche # a été substituée par le - et la touche * par le point décimal, de façon à prendre
en compte n'importe quelle valeur limitée au 1/100 mm). La touche D permet de modifier la valeur du
jeu entre noix et vis ici initialement positionnée à 18 pions obtenue après quelques essais (point initial à
l'aide du vernier sur l'axe puis finition par essai pas à pas).
Résumé des affectations des touches clavier et impact sur l'afficheur :
L'afficheur indique à chaque instant la valeur X de positionnement, la valeur du compteur et les valeurs
des compteurs en butée P/M. Ceci permet de positionner la manivelle par rapport au jeu à tout instant.
En rappel en bas à droite le sens du dernier reset (P ou M).
Sur la première ligne à droite on met en écho les touches frappées au clavier concernant le pavé numérique
( à 9 et touches + et .)
La mise en place d'un comparateur sur l'axe concerné permet de vérifier la bonne répétabilité de
positionnement après des allers retours de manivelle avec cette gestion du jeu.
En manipulant normalement les manivelles je n'ai pas noté de raté d'implusion
confirmant la compatibilité les éléments retenus entre eux (fréquence, nb de dents).
Certes ceci ne remplacera jamais un bon système vis écrou précontraint ou une bonne vis à billes pré-
contrainte, ou une lecture directe absolue du positionnement par règle, mais pour le prix çà me convient
car cerise sur le gâteau l'ensemble est très facile à protéger des copeaux.
En pièce jointe un pdf récapitulatif avec le code arduino associé. Dossier_avec_code_arduino