Modification MiniThread : DRO + vis mère électronique pour tour

pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #1
Message du début du projet le 16/01/2019...

Bonjour,

Après le projet de visu sur le chariot Schaublin 102, j'aurai besoin de faire des filetages / taraudages mais j'ai pas les super accecoires qui valent un bras pour le faire et j'ai pas envie de changer de tour.
Donc, je me lance dans un projet pour un accesoire pour fileter / tarauder + avance automatique.
J'ai en stock :
- Des moteurs pas à pas nema 23
- De la plaque d'aluminium
- Un codeur en quadrature 400 pas / tour (pour la broche)
- Des règles digitale sur le chariot :-D
- Un écran Oled
- Une plateforme à base de STM32F103CB pour commander tout ça.

Pour la mécanique, la premiere ébauche de mon tourne manivelle :smt021...
systeme.JPG

systeme2.JPG

Il sera fixé sur les 2 rainures de la table et pourra être retiré rapidement.
Motorisation par un Nema23 (j'ai déja).

Je veux :
- Avance indexé sur la rotation de la broche avec reprise de la position à tout instant
- Reprise des fonctions de la Visu
- Choix du pas sur l'écran.
- Choix du décalage en +-
- Definition des points d'arrêt (arrêt de l'avance à une position pour filetage, dressage contre un épaulement).
- Travail en boucle fermée avec retour des règles (possible sans) --> Asservissement pour corriger jeu vis

Pour l'électronique / software --> intégré dans la pièce support:
- On amène juste du 12v, tout est intégré
- Plateforme STM32F103CB (128Kflash, 20K ram, 78Mhz) --> carte à rafaire mais même base que la Visu
- Codage en C++ plateforme Arduino STM32duino
- Ecran Oled 2.4 pouces.
- Driver PAP intégré
A suivre...
Pour rentrer dans le projet, le meilleur point de départ est la documentation d'utilisation :
https://www.usinages.com/attachments/doc-utilisation_-minithread_r1-pdf.660801/
Les posts 2,3,4 sont attribués à :
  • Post 2 : Zone réservée à la partie électronique "hardware" et sa mécanique associée (boîtier, câbles,...)
  • Post 3 : Zone réservée à la partie mécanique d’entraînement du chariot schaublin 102
  • Post 4 : Zone réservée à la documentation et aux évolutions logiciels
Situation au 21/11/2020 :
  • Entrainement du chariot Schaublin 102 ---> OK
  • Boitier MiniThread ( partie Hardware) --> OK
  • Documentation fabrication boitier --> A finaliser
  • Logiciel MiniThread --> version stable 1.0.0
  • Documentation utilisation -->OK en r1
IMG_8903.jpg
IMG_8904.jpg
 
Dernière édition:
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #2
Zone réservée à la partie électronique "hardware" et sa mécanique associée (boîtier, câbles,...)
Pour la construction du boîtier MiniThread


Maj le 15/11/19
... Suppression des fichiers de fabrication de la première carte qui sont obsolètes
Maj le 07/11/20
Ajout des fichiers de fabrication de la carte MiniThread V1.0 qui est 100% fonctionnel.

PCBA- avec ecran.jpg
PCBA-Sans ecran.jpg
PCBA- bottom.jpg

Maj le 13/11/20
Ajout du plan d'usinage du boitier Aluminium Hammond 1590BB

Boitier dessus.jpg
Boitier capot.jpg

Maj le 23/11/20
  • Fichier de fabrication en revision r1 avec mise à jour de la BOM avec détails prix.
 
Fichiers joints
Dernière édition:
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #3
Zone réservée à la partie mécanique d’entraînement du chariot schaublin 102

Maj le 18/11/19 :
Plans mécanique de l'entrainement du chariot schaublin.

ASM_Systeme.JPG


ASM_Systeme2.JPG


ASM_Systeme3.JPG

640F58FC-41DB-4A3A-AD59-FB6C7F39751A.jpeg
4E41D1FB-1479-4785-8B74-17AB84849B14.jpeg
92F1F440-BE12-4F23-861E-667104D672FC.jpeg
B7CFE2E1-F3AE-4F1C-9C23-68BB7387AE27.jpeg
 
Fichiers joints
Dernière édition:
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #4
Zone réservée à la documentation et aux évolutions logiciels
  • Fonctionnalités :
    Logiciel 1.0.0
    • Affichage en mm des axes X et Y (règles avec sortie en quadrature)
    • Coord absolue / relatifs pour X et Y
    • Configuration sens et résolution pour X et Y
    • Entrée d’une valeur sur X et Y
    • Mode diamètre sur Y
    • Affichage axe C (broche) vitesse en tour/min et position en degré
    • Configuration sens et résolution pour C
    • Gestion d’un moteur sur l’axe X (longitudinal)
      • Gestion de l’accélération / décélération
      • Réglage Vitesse Max, Accélération, Pas vis, ….
      • Butée électronique Min et Max
      • Mode automatique et manuel avec vitesse rapide et changement de vitesse
      • Modes filetage synchronisé
        • Extérieur sens 1 (pas à droite)
        • Extérieur sens 2 (pas à gauche)
        • Intérieur sens 1 (pas à gauche)
        • Intérieur sens 2 (pas à droite)
        • Choix du pas par incrément de 1/100 de mm
        • Du décalage dans le pas entre 0° et 360°
        • Attaque droite ou oblique avec choix de l’angle sur tous les modes de filetage
        • Bridage logiciel pour éviter les crashs de l’outil
  • Limitations :
    • Le moteur 2 n’est pas encore commandé
    • Correcteurs d’outils non fonctionnelles
  • Manuel d'utilisation du boîtier :
r0 : Première version publiée
r1 : Corrections mineures, Ajout calcul formule offset variable dans Annexe 3
Firmware en version 1.0.0
 
Fichiers joints
Dernière édition:
V
vibram
Compagnon
15 Mar 2014
4 068
FR-74
hop un peitt message pour suivre le sujet
surtout pour voir la partie soft que je n'ai jamais reussi à finir sur mon projet. dommage que ce soir du stm32duino mais c'est toujours bon à prendre :)
 
chabercha
chabercha
Compagnon
9 Jan 2009
10 608
FR-84 Cavaillon
Bonjour
J'avais eu besoin de faire pareil pour usiner un cône, assez rapide avec les moyens du bord.
ll.JPG

Ton système est vraiment nickel mais pour moi hélas pas d'électronique, pas savoir.
A+Bernard
 
brise-copeaux
brise-copeaux
Compagnon
5 Jan 2007
10 299
Rouen Normandie-76- ou Bagnole de l'orne -61-
Hello,
ton montage avec un moteur d'essuie glace est pas mal,
si tu fais varier la vitesse, tu peux fileter ?
Salut,

Oui mais comment faire pour retomber dan le pas...c'est pas synchrone avec la broche...idem pour "Pailpoe"

@ +
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #9
hop un peitt message pour suivre le sujet
surtout pour voir la partie soft que je n'ai jamais reussi à finir sur mon projet. dommage que ce soir du stm32duino mais c'est toujours bon à prendre :)
Oui, c'est dans le logiciel qu'il y a le plus de travail. Je pars sur un STM32F102 car il est assez puissant je pense et il gère les 3 codeurs en hardware.
Je pense partir sur une boucle de contrôle toutes les 100us pour le contrôle des steps moteur.
Je vais réutiliser ma carte de test de la visu pour faire la mise au point avec un driver de moteur que j'ai.
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #10
Salut,

Oui mais comment faire pour retomber dan le pas...c'est pas synchrone avec la broche...idem pour "Pailpoe"

@ +
Salut, j'ai un codeur sur la broche donc je me resynchronise cycliquement donc pas de soucis.
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #12
J'ai pas mal de truc déjà donc pas plus de 50€ pour les pcbs, les composants spécifiques (driver pap), l'écran Oled 2,4 pouces,...
J'ai déjà :
- Moteur pas à pas Nema 23 -->20€
- Un codeur rotatif 5v 400pas/tour pour la broche --> ?
- La matière (plaque Alu) --> ?

Le codeur pourrait être remplacé par un capteur magnétique avec un top / tour mais j'ai peur avec la chute de vitesse quand l'outil rentre dans la matière et le retard de la commande du pas à pas.
 
messdu74
messdu74
Compagnon
4 Oct 2012
506
Vient de la Yaute
Bonjour,

Après avoir bien roulé ma bosse avec Schaublin et Habergger... j’ai un projet en cours qui peut t’intéresser une fois fini.

Cependant ça reste de la numérisation avec boucle semi-automatique. Et bien sûr cela aurait dû être fait dès le début, car tu a déjà beaucoup d’accessoires crée....

Pour le projet un codeur 2500ppr est utilisé car d’après les utilisateurs moins ce est inutilisable en filetage synchronisé (pas encore essayer....)

Pour y’a curiosité je vais utiliser une carte acorn avec son logiciel cnc12 [emoji6]

Je suit avec joie ton sujet qui pour moi est épatant de ressources.

Par ailleurs il doit me rester un 3D de manivelle imprimer en 3 que j’utilisai avec une visseuse [emoji28].

Bonne soirée
Noel



Envoyé de mon iPhone en utilisant Tapatalk
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #14
Pour moi, le vrai challenge est de travailler en boucle fermée avec le retour des règles magnétiques. Je ne me fais pas trop d’illusion avec le jeu que j’ai dans les vis mais on verra bien.
Je souhaite surtout intégrer toute l’électronique dans la plaque supérieure comme la visu.
 
synapsis
synapsis
Compagnon
3 Sept 2011
1 597
Tarn
Bonjour pailpoe
Si tu as déjà travaillé sur des STM32 et que tu es rodé là dessus, pas de souci ; mais dans le cas contraire je te déconseille de t'y aventurer.
Il est vrai qu'ils ont de bonnes performances, mais ils sont très peu documentés et parfois on se trouve bloqué et on ne sait pas pourquoi (pas de réponse sur le net ???), c'est ce qui m'est arrivé.
Maintenant, je ne travaille plus que sur du Atmega2560 et 328 (les chinois en ont de très bien entre 2 et 6 euros en format mini). Il sont hyper bien documentés et il y a toutes les librairies possibles et imaginables.
J'ai réalisé pas mal de projet avec et aucun souci. Je travaille actuellement sur la motorisation des 3 axes de ma fraiseuse (tout en gardant le conventionnel) et je n'ai aucun souci ni de vitesse ni de performance.
Pour les écrans, j'utilise les Nextion écran tactile. Je trouve juste que dès qu'on passe au delà du 3.2" ça commence à faire cher:mad: ; sinon excellent produit.
A+
Syn.
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #16
Salut,

Je connais ces micros, c’est mon métier ( développement hardware). J’ai fait ma visu avec ce micro et je n’ai eu aucuns soucis avec les bibliothèques Stm32duino ( quadrature, i2c, graphique oled,...) : https://www.usinages.com/threads/dro-magnetique-pour-schaublin-102-ou-fraiseuse.102109/
C’est quand même bien plus puissant qu’un micro 8 bits quand on commence à faire du calcul sur des nombres 32 bits et ça coûte pas plus chère ( 3€ pour un stm32f103cb en version 128kb, 20k de ram et tournant à 78mhz).
 
synapsis
synapsis
Compagnon
3 Sept 2011
1 597
Tarn
Bonjour pailpoe,

Oui, c'est ce que je disais dans mon introduction : "Si tu as déjà travaillé sur des STM32 et que tu es rodé là dessus, pas de souci "
Donc oui, c'est bien ton cas et là pas de souci. :wink:
A+
Syn.
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #19
Je commence à mettre les choses en place.
Pour le codeur de broche, j'ai le codeur que j'ai utilisé pour la mise au point de la visu, c'est un Baumer BDK 16.05A100-5-4.
Il s'alimente en 5v, 100pas par tour soit 400points en décodage quadrature X4, axe de 5mm.
encoder.jpg


Je vais faire la liaison avec l'axe du tour par des poulies et une courroie GT2 de 6mm de large. L'alésage de la poulie devra être de 29mm donc je pense partir sur une poulie de 60dents et une de 20dents sur le codeur (rapport 3).
J'aurai donc une résolution de 1200 points par tour de broche.
accouplement codeur.jpg



Je suis en train de regarder pour le logiciel, je vais reutiliser l'entrée quadrature du Z pour la broche (decodeur hardware du STM32), en réglant l'overflow à 1200, j'aurai un zéro constant pour la broche :
//## configure timer_Z as quadrature encoder ##
pinMode(PA0, INPUT_PULLUP); //channel A
pinMode(PA1, INPUT_PULLUP); //channel B
timer_Z.setMode(0, TIMER_ENCODER); //set mode, the channel is not used when in this mode.
timer_Z.pause(); //stop...
timer_Z.setPrescaleFactor(1); //normal for encoder to have the lowest or no prescaler.
timer_Z.setOverflow(0xFFFF); <--- passage à 1999
timer_Z.setCount(0); //reset the counter.
timer_Z.setEdgeCounting(TIMER_SMCR_SMS_ENCODER3); //or TIMER_SMCR_SMS_ENCODER1 or TIMER_SMCR_SMS_ENCODER2. This uses both channels to count and ascertain direction.
timer_Z.attachInterrupt(0, IT_Overflow_Z); //Overflow interrupt
timer_Z.resume(); //start the encoder...
La, je regarde pour le code pour la commande du moteur pas à pas avec :
- Gestion de la vitesse
- Acceleration et deceleration
- Fonction go/to
- Gestion hardware des pulses pour monter en fréquence et travailler en micropas.
--> Si quelqu'un a des billes sur STM32duino, je suis preneur.

Après il y aura une boucle d'asservissement de la vitesse du pas à pas pour que la position de l'outil coincide avec la position calculée (position broche,...).
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #20
Bon, j’ai besoin de fileter dans pas longtemps et je suis comme un con avec mon super tour qui peux pas fileter, un chinois le peu...
Donc ce soir, réalisation de la partie mécanique de mon projet dans une plaque de 15mm en 2017.
C’est pas trop mal, demain, je fait le raccord entre le moteur et la manivelle. Puis sortir un code fonctionnelle rapidement.
5a508020930b045afa0163ce7db8b9d6.jpg

facb6cec3cd758a7dbd9c910211ab05d.jpg

a2ec6f00072b68071325d459e7a09fdb.jpg
 
aroy
aroy
Compagnon
6 Avr 2019
720
Doubs (25)
Beau petit projet !
C'est vraiment la merde pour faire du filetage avec ces 102 TO ! Et les appareils à fileter sont très chers !
Je dois finir la restauration du mien, dommage que tu sois pressé, on aurai pu s'arranger (doubs/haute saonne on est pas si loin)
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #22
Oui, et la ca sera mieux avec une reprise du pas ,un arrêt sur épaulement et le choix du pas à l’écran. L’accessoire se monte en 1min avec les 2 vis.
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #23
Ce soir, réalisation de la liaison entre le moteur et la manivelle.
Au final, je me connecte sur la boule de la poignée. J’ai fait ça dans une barre d’inox. Par contre, je suis bon pour refaire la pièce support moteur, le 3D du chariot était faux, j’ai un décalage d’1mm...
cf3d914319d883bd24f263f099f3b801.jpg

204e95377bba1832285a62a91c886cf8.jpg

4ef159ead584a0a5d6ab38d525ba4588.jpg
 
simon74
simon74
Compagnon
3 Mai 2016
1 554
Savoie
Question a la con, peut-etre, mais pourquoi n'as-tu pas fait une attache sur l'autre bout du chariot, en utilisant le plat deja usiné sur le vis pour le fonction filetage? Ca me semble que tous qu'il te faut pour le montage est deja la.
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #25
En fait, je pense qu’il y a pas la place pour placer le moteur pas à pas et je voulais pas percer ou modifier le chariot. La, je me fixe dans les 2 rainures.
Je vais bientôt lancer un pcb pour la commande de tout ça.
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #26
Bon, je me suis mis à la commande de tout cela en créant une feuille Google sheet sur google drive pour voir un peu ou je vais ( si certains sont intéressés, je peux partager la feuille ).
J'ai rentrée les différents paramètres du système pour voir comment j'allais procéder pour la commande de tout cela :
Data.jpeg


Et une feuille pour la simulation à 10Khz ( c'est ma fréquence max de commande du PAP et de régulation).
simu.jpeg


Donc mon capteur d'entrée et la broche avec mon capteur 400pulse/tour avec une réduction de 3 donc 1200pulse/tour.
Toutes les 100us, mon système va regarder si il doit ajouter un pulse à la commande du moteur longitudinal. C'est donc très simple, j'ai juste un calcul à faire qui n'est pas très compliqué.
Je vais régler le moteur du longitudinale à 800 pulse/tour sur le driver ce qui me donne une vitesse maximum de 10000/800 = 12,5 tour/s ce qui est encore beaucoup, je pourrai passer le moteur en 1600pas/tour.

Vous en pensez quoi ?
 
G
gaston48
Compagnon
26 Fev 2008
9 685
59000
Bonjour,
il faudrait que tu ailles plus loin dans ta réflexion, à savoir si tu vas t'inspirer
d'un cycle de filetage habituelle d'une CNC
rotation permanente de la broche, sans inversion de son sens, ce qui veut dire:
débrayage de la "boite électronique" , retour rapide arrière du chariot
(donc désynchronisation) , attente d'un top index de la broche pour se resynchroniser
et démarrer une nouvelle passe de filetage.
cela exige que tu scrutes un top index unique par tour de broche donc indépendant
de celui du codeur si le rapport codeur / broche est différent de 1.

 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #28
Alors, pour t'expliquer comment je vais faire. Le codeur rotative est géré avec un decodeur hardware sur le STM32F103 ( pour ma dro, je fais comme ça).
Dans les réglages du décodeur, j'ai réglé 1199 qui me génère une Interruption quand je passe de 1199 à 0 ou de 0 à 1199 mais pour la broche, elle tourne tout le temps dans le même sens...
J'ai donc un top de la broche à chaque passage par Zéro, c'est ma réference.
Pendant le filetage, la broche s'arrête jamais bien sur...
Etape 1: je positionne le chariot à sa position initial ( compteur 0) --> je suis pas synchro avec la broche
Etape 2: je lance le filetage --> Attente du passage par zero de la broche
Etape 3 : La broche passe par zero, je remets à zero son compteur et je lance la boucle de commande synchronisée du moteur
Etape 4 : Le moteur arrive à sa position (épaulement), j'arrête sa boucle de commande synchronisée.
Etape 5 : Je me dégage avec le transversal et revient à 0 avec le longitudinal
Etape 6 : Je me remet à la bonne position avec le transversal et je relance l'étape 2
 
pailpoe
pailpoe
Compagnon
29 Jan 2011
1 107
Haute-Saône
  • Auteur de la discussion
  • #29
Avec 800pas/tour du PAP, je suis à ça en erreur de suivi ( erreur entre position idéale et position réelle) :
1.jpeg


Et avec 1600 pas/tour :
2.jpeg
 
G
gaston48
Compagnon
26 Fev 2008
9 685
59000
J'ai donc un top de la broche à chaque passage par Zéro, c'est ma réference.
Oui, mais tu n'as pas une incertitude, 3 possibilités de remise à zéro par tour de broche ?
si tu arrêtes ta broche pour mesurer ton filetage, puis tu remets en marche ?
 
Haut