fabrication d’une fraiseuse cnc home made

FORUMAMONTRES › Forums › Forum de discussions sur les montres vintages et sujets techniques › fabrication d’une fraiseuse cnc home made

15 sujets de 136 à 150 (sur un total de 250)
  • Auteur
    Messages
  • #420004925997
    Cadrature
    Membre

    Bonjour JC

    Merci de ne pas copier-coller des résultats de prompts IA. Nous pouvons le faire nous même, et puis
    l’IA répète parfois des choses erronées comme ici.
    Je répète qu’un microcontrôleur est suffisant pour avoir tout ce qui est nécessaire ici.
    Je fais avec des microcontrôleurs des mécanismes complexes avec chauffage régulé, moteurs régulés, moteurs pap, interface tactile,
    lecteurs SD, etc.
    RasberryPi, que je connais bien, permet d’aller plus loin, par exemple faire un serveur web de la machine, ou héberger des programmes complexes,
    mais ici, ça me semble inutile. RaspberryPi peut faire tourner aussi LinuxCNC; c’est une bonne alternative à la mienne, mais un peu plus couteuse.
    Dans la solution que je propose et qui est archi-classique, une communication UART se fait entre deux
    microcontrôleurs: l’un déchiffre le Code G, l’autre le produit. C’est simple et les programmes sont séparés. On gère n’importe quelle machine ainsi.
    Comme dit Vir, on peut faire communiquer avec un ordi pour n’avoir que la partie réceptrice du G-code. Ce n’est pas incompatible avec
    une interface de commande (pour faire bouger la machine par exemple).
    C’est simple, peu coûteux et surtout ça existe déjà.
    Le programme en Basic me parait difficile à maintenir, à faire évoluer et à interfacer avec des bibliothèques récentes. Le mieux est de reprendre en C++
    dans les règles à mon avis.

    @Vir,
    C’est quoi la partie électronique/informatique de votre projet ?
    Vous utilisez GRBL ? Marlin ?
    Autre ?

    Cadrature

    #420004925998
    Torzio
    Membre
    Cadrature a écrit:
    Bonjour JC

    Merci de ne pas copier-coller des résultats de prompts IA. Nous pouvons le faire nous même, et puis
    l’IA répète parfois des choses erronées comme ici.
    Je répète qu’un microcontrôleur est suffisant pour avoir tout ce qui est nécessaire ici.
    Je fais avec des microcontrôleurs des mécanismes complexes avec chauffage régulé, moteurs régulés, moteurs pap, interface tactile,
    lecteurs SD, etc.
    RasberryPi, que je connais bien, permet d’aller plus loin, par exemple faire un serveur web de la machine, ou héberger des programmes complexes,
    mais ici, ça me semble inutile. RaspberryPi peut faire tourner aussi LinuxCNC; c’est une bonne alternative à la mienne, mais un peu plus couteuse.
    Dans la solution que je propose et qui est archi-classique, une communication UART se fait entre deux
    microcontrôleurs: l’un déchiffre le Code G, l’autre le produit. C’est simple et les programmes sont séparés. On gère n’importe quelle machine ainsi.
    Comme dit Vir, on peut faire communiquer avec un ordi pour n’avoir que la partie réceptrice du G-code. Ce n’est pas incompatible avec
    une interface de commande (pour faire bouger la machine par exemple).
    C’est simple, peu coûteux et surtout ça existe déjà.
    Le programme en Basic me parait difficile à maintenir, à faire évoluer et à interfacer avec des bibliothèques récentes. Le mieux est de reprendre en C++
    dans les règles à mon avis.

    Cadrature

    Merci Cadrature pour votre sympathique réponse dont je vais m’empresser de ne pas tenir compte, je n’ai d’ordre à recevoir que de moi même, désolé. L’IA va devenir incontournable, ce qui est grave c’est de ne pas indiquer que c’est de l’IA. Lorsque j’ai réalisé mon premier diviseur, il y a plus de 20 ans, ni Arduino, ni Raspberry existaient. J’ai réalisé l’interface avec un PIC 16F84, programmé avec un émulateur Basic. Cette façon de faire m’a permis de sauver de nombreux garde temps, par exemple :

    Il y en a d’autres sur ma chaîne YouTube.

    Nous sommes sur ce forum pour échanger des idées, plus il y en aura de différentes, plus le lecteur aura le choix. Contrairement à certains, je n’impose rien, je montre ce que je fais et comment je le fais et les résultats, sans obliger personne à faire comme moi. Maintenant, si quelqu’un me fait un beau totu pour m’aider à faire très simplement une méthode pour piloter mon diviseur avec Arduino, je suis preneur ! J’ai BAC moins 5, mais je comprends vite, si on m’explique longtemps !
    Pour info, j’ai un ami, grand spécialiste en Arduino, m’a fait un sketch pour mon diviseur, c’est un peu plus compliqué à gérer que mon système avec un vieux PC et une interface à PIC.

    Mais chacun fait comme il veut, nous sommes encore en république, à la bonne heure !

    @+
    JC

    #420004925999
    Arno
    Membre
    Cadrature a écrit:
    Bonjour JC

    Merci de ne pas copier-coller des résultats de prompts IA. Nous pouvons le faire nous même, et puis
    l’IA répète parfois des choses erronées comme ici.

    Alors la réponse qui claque dans les dents, c’est comment ??
    Comment, mais comment oses tu t’immiscer dans le domaine de Monsieur ?
    N’as tu point honte ?
    Pxtain, parfois il y a du lourd, du super lourd … What the fuck ?!?

    _________________

    _________________
    « Je ne sais pas comment sera la troisième guerre mondiale, mais ce dont je suis sûr, c´est que la quatrième guerre mondiale se résoudra à coups de bâtons et de silex » A. Einstein

    #420004926000
    Cadrature
    Membre

    JC, voici un tuto simple. Il peut servir à ceux qui font des fraiseuses comme Vir

    – électronique: arduino mega + ramps 1,6. Ceci permet de commander au plus 5 axes PAP, un moteur DC pour la fraiseuse
    et d’avoir des pins analogiques ou digitaux dispos pour les fins de course et autres gadgets (ventilateurs, lampes, boutons, capteurs, etc)

    – informatique: télécharger GRBL (https://github.com/fra589/grbl-Mega-5X)

    – configurer le programme selon les spécifications de la machine

    Comme ça, pas besoin de savoir l’informatique et pas une ligne de codage à faire si on reste dans les choses basiques !

    Ce machin pourra se connecter à un vieux PC pour recevoir du code G.

    @+
    Cadrature

    #420004926001
    Torzio
    Membre

    @Cadrature,

    Pour remettre l’église au milieu de village et son horloge à l’heure, je tiens à préciser que je n’ai rien contre le Gcode, mais c’est du volapuk, pour moi. Si, comme Vir, je souhaitais faire une fraiseuse 3D à CN, je pense que je m’y mettrais, que ce serait certainement la meilleure solution.
    Toutefois, ma « fraiseuse » à CN est avant tout un diviseur. Sur ma machine, je donne simplement le nombre de dents, ( par exemple 71 ) il y a en mémoire les données pour diviser de 2 à 100 ( mais je peux en mettre plus). J’engage la fraise et je lance le cycle, en appuyant sur « o » et je vais vaquer à d’autres occupations. Plus simple tu meurs ! Je ne pense pas que dans ma situation, le Gcode serait un plus. Ma machine à tailler fonctionne parfaitement depuis plus de 20 ans et je la connais parfaitement. Je peux aussi facilement tailler des cames ou des chaperons. Ici une roue de compte taillée avec ma première machine réalisée avec un tour Lorch et une table croisée Proxxon 70, au début de ce siècle, avant Arduino : http://sulka.fr/rcompte/
    Je suis très fier de ce bricolage qui rivalise avec un Schaublin à plusieurs dizaines de milliers d’€uros, avec les accessoires, pour tailler les engrenages.

    @+
    JC

    #420004926002
    Cadrature
    Membre

    G-Code c’est juste des commandes pour faire marcher les machines. C’est très
    répandu et partagé. Ce n’est absolument pas incompatible avec le type d’interface
    que vous voulez, y compris pour un diviseur (qui est une sorte de fraiseuse 4 axes).

    Je passe maintenant coté de celui qui émet le G-Code, cela donne:

    Électronique: Un BigTreeTech TFT35 qui se branchera au Ramps via un port UART.
    Écran tactile, bouton encodeur (pour régler) et un buzzer qui fait bip bip.

    Informatique: télécharger https://github.com/bigtreetech/BIGTREETECH-TFT35-V3.0
    – Faire quelques images avec un logiciel de DAO pour avoir des icônes correspondant à une machine à diviser plutôt qu’à une imprimante 3D.
    – Coder quelques fichiers pour faire un diviseur (nombre de dents, caractéristiques de la roue ou du pignon, etc). Il faut savoir écrire un peu de C++, mais c’est à la portée d’un collégien avec les fichiers existants.

    Avec ce montage, le BigTreeTech envoie du G-Code à l’Arduino pour fixer X, Y, Z, A et pour lancer la fraiseuse.
    On peut même ajouter une pompe à lubrifiant.
    Il reçoit les codes des limiteurs de course et autres capteurs.

    C’est ce que je ferais de plus simple et de moins couteux actuellement si je devais faire l’électronique d’un diviseur CNC from scratch.

    Cadrature

    #420004926003
    Torzio
    Membre

    @Cadrature,

    Merci pour ces intéressantes infos, que je vais étudier.
    Petite question : si je comprends bien, le G-code se fait à partir d’un dessin DXF ou un fichier 3D ?

    @+
    JC

    #420004926004
    Cadrature
    Membre

    Pas directement.

    Certains logiciels de CAO produisent du G-Code à partir de dessins 3D pour les imprimante ou les fraiseuses ou les tours.
    C’est le cas des « slicers » comme Cura qui réalisent les tranches à imprimer pour imprimantes 3D. Une imprimante 3D reçoit minimalement du G-Code et rien d’autre via une communication ou une carte SD ou une clef USB.
    Cura (ou autre) produit les fichiers « G-Code » à partir d’images 3D.

    Un fichier G-code ressemble à ça :

    Code:
    M140 S60
    M105
    M190 S60
    M104 S200
    M105
    M109 S200
    M82 ;absolute extrusion mode
    G28 ; home all axes
    M117 Purge extruder
    G92 E0 ; reset extruder
    G1 Z1.0 F3000 ; move z up little to prevent scratching of surface
    G1 X2 Y20 Z0.3 F5000.0 ; move to start-line position
    G1 X2 Y200.0 Z0.3 F1500.0 E15 ; draw 1st line
    G1 X2 Y200.0 Z0.4 F5000.0 ; move to side a little
    G1 X2 Y20 Z0.4 F1500.0 E30 ; draw 2nd line
    G92 E0 ; reset extruder
    G1 Z1.0 F3000 ; move z up little to prevent scratching of surface
    G92 E0
    G92 E0
    G1 F1500 E-2
    ;LAYER_COUNT:100
    ;LAYER:0
    M107
    G1 F300 Z0.4
    G0 F6000 X114.901 Y114.249 Z0.4
    ;TYPE:SKIRT
    G1 F300 Z0.2
    G1 F1500 E0
    G1 F1200 X116.129 Y113.084 E0.06193
    G1 X117.382 Y111.974 E0.12317
    G1 X118.691 Y110.886 E0.18545
    G1 X120.013 Y109.863 E0.2466
    G1 X121.367 Y108.888 E0.30765
    …

    Chaque ligne commence par un code suivi d’éléments de réglage
    par exemple

    Code:
    G1 F1200 X116.129 Y113.084 E0.06193

    qui veut dire: Mouvement linéaire contrôlé (G1) de 1200mm/min déplacement XY à 116,129mm x 113,084, avance de l’extrudeur de 0,06193mm.

    On peut par exemple créer pour un diviseur un truc du genre:

    Code:
    …

    ;Déplacement rapide X de 10 mm
    G0 X10

    ;Déplacement rapide Z de 10 mm
    G0 Z10

    ; Déplacement A de 1/32 de tour (≈ 11.25°)
    G0 A11.25

    ;Mise en route moteur / broche
    M3 S10000 ; M3 = broche CW, S10000 = vitesse

    ; Déplacement lent Z de -10 mm
    G1 Z-10 F500

    ; Déplacement lent X de -10 mm
    G1 X-10 F500
    …

    Vir m’apprend que Fusion 360 produit du G-Code pour fraiseuse.

    Il est vrai qu’il y a du boulot pour réaliser un programme BigTreeTech qui produit du G-Code pour un diviseur très complet.
    Je l’ai fait pour réaliser une machine à laver les montres, c’était un peu long.
    Il y a peut-être des choses existantes pour les diviseurs, pour gagner du temps, je ne sais pas.

    Cadrature

    #420004926005
    Torzio
    Membre

    Merci pour la réponse Cadrature,

    C’est bien ce que je pensais et c’est sûrement pour cela que j’ai fait le choix de piloter mon diviseur en Basic, il y a plus de 20 ans.
    Je reste donc persuadé que c’est la solution la plus simple, pour un diviseur numérique.
    J’ai une imprimante résine 3D Elegoo, pour la fabrication de bijoux, mais tout est transparent. Je rentre mon fichier STL slicé sur un clé USB et l’imprimante fait le travail. Pour info, je suis nul en CAO ! Je travaille avec des prestataires étrangers qui pratiquent des prix défiants toutes concurrences avec une qualité au top, dans un délai de 48 heures !

    Maintenant, pour Vir, il est possible que le G-RBL soit incontournable. Mais ça risque de devenir compliqué pour le taillage d’engrenages, il va certainement falloir qu’il devienne expert en G-RBL !
    Ou, pour faire simple, il adopte ma solution !
    Avec mon système, pas besoin de fichier DXF ou 3D, j’ai juste à renseigner le nombre de dents souhaité !

    @+
    JC

    #420004926006
    Cadrature
    Membre

    Je vois que Vir avait répondu sur le type d’électronique qu’il envisage, et j’avais oublié:

    Vir a écrit:
    Concernant la modélisation et écriture du G code, j’utiliserai fusion 360.
    Oui j’utiliserai une arduino uno et cnc shield.

    Logiciel ide arduino pour programmer la carte
    Programme Grbl.
    Cncjs pour piloter la cnc.

    @Vir:
    Un conseil: remplacez le logiciel IDE Arduino par Visual Studio Code (avec PratformIO). Le code sera plus simple à écrire et à maintenir. Il y a 1000 tutos sur le net pour expliquer ça. Le mieux à mon avis est celui d’un prof de techno qui explique bien ces trucs: Eric Peronnin (Débuter en C++ avec Arduino).

    Pour le G-code d’une machine à tailler, il n’y a rien à faire sinon de considérer que c’est comme une fraiseuse 4 axes ; trois linéaires: XYZ, un rotatif: A.
    Programmer le code pour les spécifications d’une roue ou d’un pignon ne pose pas de problème particulier.

    Cadrature

    #420004926007
    Torzio
    Membre
    Cadrature a écrit:
    Pour le G-code d’une machine à tailler, il n’y a rien à faire sinon de considérer que c’est comme une fraiseuse 4 axes ; trois linéaires: XYZ, un rotatif: A.

    Cadrature

    Certes, mais il faut faire un fichier 3D, lalalère !
    Moi, pas besoin !

    @+
    JC

    #420004926008
    Cadrature
    Membre

    non non il y a confusion. G-Code n’a rien à voir avec un fichier 3D.

    @+
    Désolé Vir Chinois

    #420004926009
    Torzio
    Membre

    J’avais cru comprendre que le G-code était généré à partir d’un fichier 3D.
    J’ai faux ?

    #420004926010
    Cadrature
    Membre

    Je développe car ça intéresse aussi la fraiseuse de Vir 😉

    C’est faux si on pense que c’est systématique. Il est possible de générer du code G avec des outils de CAO, comme veut faire Vir
    pour sa machine, mais ce n’est pas toujours le cas.
    En mécatronique ou autres machins qui n’ont rien à voir avec une image, on peut aussi utiliser du G-Code.

    G-code c’est un langage ultra-simple pour commander une machine électromécanique quelle qu’elle soit. Pour la
    robotique c’est insuffisant, mais pour une machine CNC c’est bien.

    L’intérêt de ce langage pour la machine de Vir, c’est qu’il n’a rien à faire en informatique car les logiciels qui produisent du G-code
    et ceux qui le lisent existent déjà.

    Dans le cas qui vous intéresse, c’est moins sûr, mais le logiciel qui traite le G-Code existe déjà, ça simplifie un peu le process.

    Disons que l’intérêt de G-Code est de bien séparer deux choses et de faire une communication asynchrone via un fichier ou réseau
    entre deux machines séparées qui font ces deux choses:

    a) La conception de l’impression 3D par dépôt, la gravure 2D, le fraisage multi-axes, les spécifications d’une roue à tailler, etc.
    Matériel: Un ordi, une interface de commande, etc.

    b) Le fonctionnement d’une fraiseuse, d’une imprimante 3D, d’un graveur laser, d’une machine à tailler les roues, etc.
    Matériel: un microcontrôleur, des dispositifs électroniques et mécaniques.

    Dans le cas de Vir, a) est confié à un logiciel de CAO (Fusion 360) qui contient la fabrication en fraisage, b) est confié à GRBL.

    Désolé si j’ai été un peu long…
    @Vir: On remplit bien ton post !
    @+
    Cadrature

    #420004926011
    Torzio
    Membre

    J’ai demandé à l’IA de me concocter du G-CODE pour ma machine à tailler, Cadrature va être content, je cite la réponse :
    ————Début de la réponse IA (Gemini)
    Pour tailler un engrenage de 11 dents avec ton diviseur, chaque rotation du moteur de la broche doit être de 3436,36 pas. Pour éviter les erreurs d’arrondi dans le G-Code, la meilleure approche est d’utiliser une incrémentation de position ou une boucle qui assure que la position totale de 37800 pas est atteinte en 11 étapes.

    Calcul de l’incrément
    Le calcul est basé sur le rapport de ton diviseur :
    Increˊment=1137800​≈3436,3636
    Ceci représente le nombre de pas que ton moteur PAP doit faire pour indexer chaque dent. Cependant, comme le G-Code ne gère pas les valeurs décimales, il faut ruser pour que la machine effectue 11 rotations complètes qui correspondent à 1 tour de 37800 pas.

    G-Code pour 11 dents
    Voici un exemple de G-Code pour un contrôleur CNC standard. Cet exemple utilise une variable pour accumuler les pas et garantir une précision sur le long terme. On suppose que ton diviseur est sur l’axe A.
    G-Code
    (Programme de taillage d’engrenage – 11 dents)
    (Axe diviseur = A)
    (Nombre de dents = 11)
    (Pas total pour un tour = 37800)
    G21 (Unités en mm)
    G90 (Coordonnées absolues)
    G00 A0. (Position de départ)
    M03 S2000 (Démarrage de la broche à 2000 tr/min)
    M08 (Démarrage de l’arrosage)
    (Définition des variables)
    #1=0. (Variable pour le nombre de dents taillées)
    #2=3436.3636 (Nombre de pas par dent)
    #3=0. (Variable pour le pas cumulé)

    (Boucle de taillage)
    N100 (Début de la boucle)
    #1=#1+1 (Incrémente le compteur de dents)

    (Calcul de la position de la prochaine dent)
    #3=#3+#2 (Ajoute le nombre de pas à la position cumulée)

    (Rotation vers la position calculée)
    G00 A#3 (Mouvement du diviseur)

    (Mouvement de coupe – à insérer ici)
    (Exemple de G-Code pour une coupe)
    G01 Z-5. F100. (Avance de l’outil de -5 mm)
    G00 Z5. (Remontée de l’outil)

    IF [#1 EQ 11] GOTO 200 (Si 11 dents ont été taillées, aller à la fin)
    GOTO 100 (Retour au début de la boucle pour la prochaine dent)

    N200 (Fin du programme)
    M05 (Arrêt de la broche)
    M09 (Arrêt de l’arrosage)
    G00 A0. (Retour à la position de départ)
    M30 (Fin du programme)
    Pourquoi cette méthode est la meilleure ? 🤔
    La méthode ci-dessus évite l’erreur d’arrondi cumulée. Si tu avais un G-Code qui incrémentait de 3436 pas à chaque tour, le résultat final après 11 tours serait de 11times3436=37796 pas. Il manquerait 4 pas pour compléter un tour exact, ce qui provoquerait une erreur sur l’alignement de la dernière dent.
    En utilisant une variable qui accumule la valeur exacte (même si la machine ne peut bouger que des pas entiers), le contrôleur calculera la position finale de manière plus précise. Le contrôleur déplacera le moteur de 3436 pas, puis 3436, puis 3436, etc. puis le dernier déplacement sera de 37800−(10times3436,3636)approx3436,3636. Cette méthode garantit que le dernier mouvement indexera la pièce précisément à 37800 pas, c’est-à-dire à 0 degré.
    ———Fin de la réponse IA

    Ce n’est pas très simple, à mon goût ! Le truc que j’ai bricolé en Basic, il y a 20 ans ,est beaucoup plus simple, AMHA. Dans le dossier qui contient le programme Basic, il y a 99 fichiers pour les nombres de dents de 2 à 100. Voici ce que contient le fichier D11, pour tailler 11 dents :
    3437
    3436
    3437
    3436
    3436
    3437
    3436
    3436
    3437
    3436
    3436

    Lorsque je lance mon programme, le PC me demande combien de dents ? Si je répond 11, il va chercher le fichier D11, il me demande ensuite la profondeur de pénétration de la fraise, et l’avance, pour les roues épaisses, comme un barillet de pendule, je tape ensuite sur O (oui) pour continuer et je vais faire autre chose.

    Pourquoi faire simple quand on peut faire compliqué?
    Mais chacun fait comme il veut, nous sommes encore en république. Avec Arduino, je pense pas que cela soit possible simplement.

    L’esprit horloger d’autrefois était de faire des grandes choses avec peu de moyens, l’inventivité était le but. Un excellent de H. Belmont, créateur des montres Yéma, a fait un excellent livre sur la montre à cylindre où on ressent cet esprit horloger. Aujourd’hui, avec les moyens modernes, les choses ont changées, ce qui compte, ce sont les marges !

    @+
    JC

15 sujets de 136 à 150 (sur un total de 250)
  • Vous devez être connecté pour répondre à ce sujet.