filetage avec microcontrolleur

  • Auteur de la discussion vibram
  • Date de début
V

vibram

Compagnon
Bonjour à tous,
sans parler de la conception mécanique. cela vous parait-il possible de réaliser des filetages au tour avec une avance contrôlée par microcontrôleur (STM32 ou arduino), driver et moteur PAP et un simple capteur de vitesse de broche ?
L'idéal étant que le microcontrôleur ajuste en temps réel l'avance en fonction de la vitesse de la broche.
Ce serait un montage amateur avec une vitesse de broche faible, j'imagine en dessous de 100trs/m

Il y a quelques videos sur youtube et cela semble fonctionner correctement.

Dans un premier temps, j'aimerais essayer avec une boucle ouverte et si cela est possible et concluant, essayer aussi de mettre une regle afin de connaitre précisement la position de l'outil et eviter le probleme des pertes de pas.

Qu'en pensez vous?
 
J

Jujucoy

Compagnon
Bonjour Vibram,

J'avoue avoir le même projet pour mon petit tour, de sorte à faire une avance auto pour le chariotage/filetage qui m'éviterai d'avoir à changer les pignons systèmatiquement.
Autant pour l'avance en chariotage je suis pas inquiet, autant pour le filetage je me questionne sur les points suivants :

- Comment rattraper le jeu entre deux passes ?
- Comment retomber dans le pas entre deux passes ? => Je pense qu'avec un "top tour" type capteur allumage + un codeur cela doit se faire
- Comment gérer les pertes de pas (surdimensionner le pap ?) ?

Voila grosso modo ce qui me pose problème pour le moment.

++

Jujucoy
 
V

vibram

Compagnon
content de voir que je ne suis pas seul.
En ce qui concerne le jeu, je ne compte pas motorisé le X, uniquement le Z donc je ferai cela manuellement
Pour retomber dans le bas, j'imaginais faire un montage avec le capteur de vitesse ou alors via encodeur et faire en sorte d'avoir un repere sur ma broche et que ce repere serve à chaque debut de filetage. il me semble que c'est comme cela que les autres procèdent.
Pour la perte de pas, je comptais effectivement sur dimensionner dans un premier temps, ou démultiplier. Dans un second temps, j'aurais bien fait un truc plus pro avec une regle de visu mais bon je ne veux pas bruler les étapes

Dodore:
Ce projet est grosso modo celui que j'aimerais faire, il a mis la visu etc.
 
L

lion10

Compagnon
Bonjour
La perte de pas empêche de débrayer la vis mère sauf à prendre des précautions avec un appareil à retomber dans le pas ou filetage aux repères par exemple.
Mais cela n'arrive qu'avec certains pas quand le rapport entre le pas à faire et celui de la vis mère ne respecte pas une condition.
Dans votre cas le pas de la vis mère sera créer virtuellement par l'électronique donc vous devriez ne pas avoir ce souci logiquement.
A chaque fois il suffira de simuler le bon bas de la vis mère.
Cdlt lion10
 
V

vibram

Compagnon
Bonjour à tous
Avec l'aide de plusieurs membre, j'ai un poil avancé
Je vais donc utiliser un STM32 plutot qu'un arduino et utiliser l'exemple ici:
http://embeddedsystemengineering.blogspot.ch/2016/07/arm-cortex-m3-stm32f103-tutorial.html
Cela devrait pouvoir me permettre de connaitre la vitesse de rotation de la broche et de simuler un point 0 pour le départ du filetage.
J'ai acheté une poupée de 102 avec réducteur (cela fait pas mal de temps que j'en cherchais une, notamment pour les grands diametres).
Debut juillet je vais donc m’atteler à 2 choses:
1. monter l'encodeur sur la broche. A voir comment je peux l'intégrer...
2. commencer le code avec acquisition de la vitesse et de la position de la broche, interface LCD avec sélection du pas du filetage et vitesse de rotation du PAP en fonction des points que je viens de citer + longueur du filetage
3. Je vais utiliser un raid type Hiwin KK que j'avais acheté sur ce forum. Je pense qu'il est un peu petit et manque donc de rigidité mais si cela me permet de valider le software, rien ne m'empeche de reprendre le hardware ensuite
4. Reflechir au systeme de retractation de l'outil + retour à la position de départ
5. d'autres choses auxquelles je n'ai pas encore pensées :wink:
 
V

vibram

Compagnon
Bonjour à tous,
Quelques nouvelles:
J'ai recu l'encodeur (plusieurs en réalité, un 400 pulse et un 600 pulse)
J'ai commandé 2 poulies + la courroie adaptée pour monter sur l'arriere de mon 102. Je dois finaliser le dessin de la pièce qui va permettre la fixation mais ce n'est pas quelque chose d'hyper compliqué.

je suis en train de me pencher sur le code et là ca se complique...Habitué à utiliser Arduino, je suis passé au STM32 depuis quelques projets, principalement pour des raisons techniques (à savoir de meilleures performances). Jusqu'ici j'utilisais l'IDE Arduino pour le STM32 ca me permettait de garder la meme routine et les memes reflexes (les librairies toutes faites, les nombreux exemples et j'en passe).

Maintenant, toute la doc que je trouve est un peu plus pointue et les gens utilisent souvent l'IDE Keil. Sans doute beaucoup plus performant, c'est aussi moins intuitif et surtout c'est moins prévu pour l'utilisation de librairie grand public. Etant autodidacte et sans formation particulière dans ce domaine, l'apprentissage est un peu plus douloureux. Je procède donc étape par étape, j'arrive à faire fonctionner le fameux "blink", maintenant je m'attaque au LCD16x2, avec I2C, et c'est loin d'être évident (comme encore une fois il n'y a pas 1 librairie utilisée par tout le monde comme c'est le cas pour l'arduino, ou alors je ne l'ai pas trouvé :wink: )

Bref, je ne lache pas le morceau mais il va falloir être patient !
 
Dernière édition:
L

LETARTARE

Compagnon
Bonjour,
devant votre pugnacité, voici deux pistes obtenues lors une recherche sur internet avec "github arduino stm32'
https://github.com/rogerclarkmelbourne/Arduino_STM32
je l'ai utiliser juste pour tester (avec 'blink') la carte
http://www.ebay.fr/itm/252832184945?_trksid=p2057872.m2749.l2649&ssPageName=STRK:MEBIDX:IT
associée à son chargeur de programme
http://www.ebay.fr/itm/252782090497?_trksid=p2057872.m2749.l2649&ssPageName=STRK:MEBIDX:IT
que l'on trouve moins cher maintenant,

et
https://github.com/stm32duino
que je n'ai pas testé.

Bonne continuation

PS: nouveau tarif : moins de 3 €
http://www.ebay.fr/itm/162521610310?ssPageName=STRK:MESINDXX:IT&_trksid=p3984.m1436.l2649
 
Dernière édition:
R

Rebus

Compagnon
Bonsoir,

Ça fait déjà plusieurs années que j'ai équipé mon tour avec ceci: http://www.autoartisans.com/ELS/
Avances et filetages, déplacement et arrêt du trainard programmables au clavier.
C'est un Pic 18F4685 qui se débrouille pas si mal.
Je n'ai pas commandé le kit, j'ai cablé le Pic avec un clavier différent et j'ai utilisé le firmware tel quel.
Il y a eu plusieurs discussions sur ce sujet, le capteur de la broche ne prenant qu'une impulsion par tour, certains avaient émis des doutes sur la précision ....
Moi, j'ai rangé avec plaisir la lyre, le jeu d'engrenages et tous les "supers programmes Excel" que beaucoup affectionnent particulièrement.
 
Dernière édition:
S

stef1204

Compagnon
J’avoue que cela m’intéresse également, ce serait si commode d’avoir un display et un clavier dans lequel on donne le pas ou l’avance pour le chariotage.

Pourquoi ne pas mettre en place un petit groupe d’intéressés/groupe de travail ?

Je suis un ingénieur à la retraite possédant un tour, une fraiseuse et beaucoup d’expérience de design électronique hardware & software.

En gros nous avons besoin d’un encodeur sur l’arbre du mandrin, un moteur pas à pas qui entraine la visse mère et un microcontrôleur qui gère le comptage, le clavier et le display.
 
M

MCrevot

Compagnon
Bonjour,

je viens de terminer un projet similaire (voir mon post en signature) avec 2 Arduino et un soft maison, l'asservissement fonctionne bien mais les variations de vitesse de la broche au démarrage sont trop importantes pour qu'un capteur avec un seul top soit suffisant.

Michel
 
5

59JAG

Ouvrier
Bonjour ,
je vais suivre le sujet et si possible ajouter ma pierre a l édifice
mon diviseur électronique sur base arduino et fonctionnelle mais c est juste en ressources, car je voudrais rajouter un codeur sur pap pour verfier si ppertes de pas.
 
V

vibram

Compagnon
merci à tous pour vos réponses
Ce n'est vraiment que le début et je suis deja relativement bloqué par mon manque de connaissances mais pour répondre en vrac:

1. Je gere la base de STM32duino et dérivés, c'est en gros se servir de l'IDE et des librairies de l'arduino sur le STM32. Avec le gain d'accessibilité de l'arduino, on pert la performance et les possibilité du STM32. Si je m'oriente sur cette carte, c'est pour le built in timer (cf lien dans mes messages précédents) qui devrait, en théorie et si je ne me trompe pas, pouvoir me donner quand je le désire la position et la vitesse de la broche et ainsi ajuster la vitesse de déplacement. J'espere ne pas me tromper.
En revanche, utiliser ce timer, implique d'utiliser keil (c'est le seul exemple que j'ai trouvé et mes compétences ne me permettent pas de partir de 0 la dessus).
Et c'est là que tout se complique, avec l'iDE Keil, exit les librairies toutes faites pour Arduino. Peut etre que c'est possible de les transposer mais là encore, je n'ai pas les connaissances.
et pourtant il n'y a pas enormement de travail car en gros il faudrait si possible:

1a. Transposer la librairie I2C LCD (liquidcrystal pour ne pas la citer) pour STM32

1b. Transposer une librairie pour les moteurs PAP. Pour le moment, tous les exemples que j'ai trouvé, les PAP sont controlés directement par le STM32. j'ai un moteur PAP 5 phases avec un driver, j'aimerais une lib comme on en trouve pour Arduino avec le STEP/DIR

2. Oui c'est dans l'idée de L'ELS, que je trouve tres bien sauf que je n'ai pas de vis mere, donc impossible de mettre cela en oeuvre

3. Que ce soit pour commander un chariot ou une VM, le principe reste le meme, suffit de prendre en compte le pas.

4. je pense qu'on doit aussi pouvoir faire cela avec un arduino slave qui gere le codeur et envoie les infos à un arduino master mais dans l'idée je préfère une carte qui gère tout. J'etudierai cela si vraiment je ne m'en sors pas avec le STM32
 
R

Rebus

Compagnon
2. Oui c'est dans l'idée de L'ELS, que je trouve tres bien sauf que je n'ai pas de vis mere, donc impossible de mettre cela en oeuvre

Là je ne comprends pas bien.

Arduino, STM32 ou Pic .... tous peuvent commander un moteur PAP, mais après il faut bien déplacer le trainard ???


Et pour les sceptiques du capteur 1 impulsion / par tour de broche, je peux vous dire que ça fonctionne parfaitement (même si en théorie avec plus d'impulsions par tour on peut espérer plus de précision).
 
Dernière édition:
V

vibram

Compagnon
Dans mon cas, je vais uniquement motoriser le chariot longitudinal, je n'ai pas de trainard
 
S

stef1204

Compagnon
Là je ne comprends pas bien.

Arduino, STM32 ou Pic .... tous peuvent commander un moteur PAP, mais après il faut bien déplacer le trainard ???


Et pour les sceptiques du capteur 1 impulsion / par tour de broche, je peux vous dire que ça fonctionne parfaitement (même si en théorie avec plus d'impulsions par tour on peut espérer plus de précision).

En effet, n’importe quel microcontrôleur fait l’affaire, pas besoin de “grosse” puissance de calcul.

J’ai déjà un capteur a effet hall pour afficher la vitesse de la broche, je pourrais dans le cas d’une impulsion par tour utiliser cette même impulsion.
 
R

Rebus

Compagnon
Dans mon cas, je vais uniquement motoriser le chariot longitudinal, je n'ai pas de trainard
Oui, c'est bien de celui là dont je parle, j'appelle ça "le trainard", mais ce n'est pas forcément le bon terme.
Il faudra donc l'entrainer par une vis trapézoïdale, une vis à billes, une chaine ... avec un embrayage etc ...

Sans vouloir mettre en doute ta volonté et tes capacités, regarde bien l'ELS, il y a eu beaucoup de travail, beaucoup d'essais pour arriver à quelque chose de vraiment opérationnel.
Il faudrait que je retrouve l'article qui a été à la base de cette réalisation.
C'était un schéma des années 1980 en composants discrets mais qui avait parfaitement décomposé let traité les problèmes.
Bonne journée
 
R

Rebus

Compagnon
Exact ! c'est bien celui-là.
Tu as été plus rapide que moi.
Je dois aussi avoir une copie du magazine Circuits Cellars dans lequel ça a été publié.
Mais je ne peux pas l'insérer, il y a du copyright
 
V

vibram

Compagnon
Pour le moment, si j'arrive jusqu'à l'étape hardware, je pense partir la dessus:
P-150A1-F0-Précision-vis-à-billes-KK.jpg


Et j'aviserai si je vois que ca manque de rigidité. La solution de secours: j'ai un petit chariot type schaublin que je peux numériser
Je me suis pas mal renseigné sur l'ELS mais ayant des connaissances limitées dans ce genre de domaine, je préfère me cantonner à ce que je sais et essayer de l'adapter
Je n'en ai pas un usage professionnel et pas d'obligation de réussir, c'est plutôt à titre ludique et pas défi personnel :wink:

Ce matin j'ai réussi à faire fonctionner le LCD, pas de I2C mais pour le moment je vais m'en passer.
Ce que j'aimerais vraiment, c'est être sur que le built in timer me permette de corriger la vitesse d'avance en temps réel.

Prochaine étape: test du sketch avec codeur (j'espere lundi) et ensuite gestion du moteur PAP avec ces histoires de librairie/STEP DIR etc
 
V

vres

Compagnon
Pour le timer je peux t'aider, sur la lecture du codeur aussi et la génération de step aussi.
 
V

vibram

Compagnon
Merci CNCSERV
avant de t inonder de questions techniques, j'aimerais déjà creuser par moi même mais je n'arrive pas à savoir sur quel noyau je dois m'orienter.
J'ai lu qu'il y avait 3 grandes familles, à savoir le core STM (je n'ai pas trop d'informations la dessus) , Le core duino (celui ci semble reprendre les principes de larduino et bon nombre de librairies semblent compatibles mais je n'ai rien trouvé sur le built in timer uniquement des codeurs avec interrup) et le core generic, qui semble récent mais rapidement se développer (là encore j'ai pas plus d'informations).

L'exemple dont je parle depuis le début semble basé sur le core STM je crois. Penses tu que c'est judicieux de partir la dessus et d'adapter les moteurs PAP (le LCD sans I2C fera l'affaire dans un premier temps et ça fonctionne ainsi) ou plutôt partir sur un ensemble ou je peux garder les librairies mais je dois trouver une solution pour le built-in timer.
Je pense avoir ma réponse mais je ne suis pas contre ton avis
 
R

Rebus

Compagnon
Pour le Hardware je suis un peu surpris :

Le Hiwin KK Module (KK4001P-150A1-F0) je viens de le voir sur Aliexpress à ....... 1032€ !
C'est le prix d'un petit tour chinois avec vis mère.
Et il faut rajouter le moteur Nema 23 il me semble + un contrôleur de puissance.
Sur mon petit tour j'avais aussi prévu un Nema 23.
C'était suffisant pour une avance fine mais au premier filetage j'ai compris !
Et je l'ai vite remplacé par un Nema 34.


Pour le soft :
Si le codeur te donne une centaine d'impulsions par tour, l'Arduino sera déjà bien occupé avec ça, même si la broche tourne lentement, comme c'est le cas en filetage.
Donc soit tu utilises un circuit spécialisé (compteur/décompteur) externe qui gère les impulsions du codeur et que tu vas lire quand tu en as le temps, soit il te faut un micro qui tourne nettement plus vite et la solution ARM devient évidente.

Bon courage.
 
V

vibram

Compagnon
J'ai mis une photo non représentative
On en voit passer d'occasion pour un prix réduit sur le forum ou ailleurs !
J'ai un petit module et un gros PAP, il faudra que je fasse l'adaptation mais je suis moins inquiet par ça que par le software.

Oui comme indiqué larduino est limité à ce niveau d'où ma volonté d'utiliser le STM32
Ce week-end c'est repos et utilisation du tour, suite la semaine prochaine :wink:
 
M

MCrevot

Compagnon
Ou alors, la solution que j'ai adoptée, 2 Arduino :
- le premier s'occupe du clavier et de la visu, il mesure la vitesse de la broche (sous interruption) et effectue les calculs
- le second ne fait que piloter le moteur pàp (génération des step et dir), il recoit les consignes calculées par le premier, et lui restitue la position théorique - si pas de perte de pas (je n'en ai encore jamais rencontré), il est inutile de rajouter un dro ...
L'"astuce" consiste de décorréler la fréquence d'envoi des ordres de celle du comptage (initialement, j'effectuais tous les calculs à chaque top broche et j'envoyais les consignes au même rythme : ça finit par coïncer, en particulier le temps pris par le second arduino à recevoir les ordres ne lui permettant plus de générer les step/dir ; mais cette fréquence calculs+envoi peut être largement inférieure à celle des tops broches, et du coup le second arduino peut générer ses step/dir (sous inrterruption) sans être perturbé par les interruption des transmissions Arduino1 -> Arduino2.

Michel
 
V

vres

Compagnon
savoir le core STM (je n'ai pas trop d'informations la dessus) , Le core duino (celui ci semble reprendre les principes de larduino et bon nombre de librairies semblent compatibles mais je n'ai rien trouvé sur le built in timer uniquement des codeurs avec interrup) et le core generic, qui semble récent mais rapidement se développer (là encore j'ai pas plus d'informations).

Ne pas confondre STM32 est une famille de micro-contrôleurs et arduino un concept de programmation simplifies faisant appel à des bibliothèques très documentées. Le STM32 sur les cartes Arduino à mon avis beaucoup d'avenir tellement il est plus performant que les micro-contrôleurs utilisés actuellement.
mais beaucoup plus puissant.


Les algorithmes pour le codeur et le Pas à Pas je les ai, je te les donnerai en temps voulu.
un petit exemple de la programmation d'un configuration timer double :
C'est un peu usine a gaz
 
V

vibram

Compagnon
Merci CNCSERV
mes bases étant trop faibles à mon goût, j'ai acheté un peu de littérature afin d'avoir de meilleures bases et essayer de mettre tout ça d'aplomb
Ce soir je test le code que j'ai mis au dessus et j'essaie de faire des modifications basiques pour voir ce que j'arrive à comprendre
 

Sujets similaires

Père-Pendiculaire
Réponses
23
Affichages
501
Père-Pendiculaire
Père-Pendiculaire
M4vrick
Réponses
13
Affichages
693
M4vrick
M4vrick
HellTom
Réponses
36
Affichages
1 554
D
Carton
Réponses
21
Affichages
2 748
Carton
Carton
who
Réponses
9
Affichages
949
midodiy
midodiy
Haut