[Realisation] CNC Low-cost – Episode 2

Publié: 19 avril 2013 dans Réalisations
Tags:, ,

Bonjour à tous !

Voici les nouvelles avancés réalisées sur ma CNC 🙂

Je suis passé en phase de démarrage ! Pour le moment le contrôle manuel semble fonctionner, et l’interprétation de G-Code aussi. Je dis « semble » car l’axe Z me pose encore quelques soucis : le moteur n’est pas le même que les deux autres (j’ai fait que de la récup pour les 3 pour le moment) et ne fonctionne pas vraiment. En plus les moteur sont des 0.5A alors qu’au mini le driver fait 0.7A du coup, ça chauffe … Et je ne peux pas faire des essais en continu, il faut faire des pauses pour laisser refroidir. Voici à quoi ressemble l’ensemble pour le moment :

_DSC8662

Niveau configuration Grbl j’ai pas eu encore grand chose à faire, mis à part adapter les vitesses, j’ai dû inverser « step enable ». Je posterai ma config complète dans un prochaine article que j’aurai bien tout compris. Pour les impatient c’est bien expliqué sur le github Grbl.

J’ai également ajouté deux glissières que j’avais récupéré que j’ai mises sous le plateau car les deux autres me semblaient trop écartées et le plateau risquerait de plier lors de l’usinage. J’ai également craqué et acheter 3 accouplement d’axe à 2,50€ pièce (fdp inclus, merci la Chine !) :

$T2eC16hHJI!E9qSO-S8OBQmL+t,t,g~~60_3

_DSC8656

Egalement commandé, une bague pour adapter des outils format Dremel à la défonceuse :

!BtnSdjQEWk~$(KGrHqUH-DkEvsNzohCPBL8tjNKPtQ~~_35

Niveau logiciel j’ai beaucoup avancé également. Finalement GRBL est dispo en version librairie Arduino, avec en supplément une appli Quick GRBL pour streamer le G-Code et disposer d’un pilotage manuel. Et en plus c’est cross-platform. Pas belle la vie ? 🙂 Mais j’en ai trouvé un autre, Zapmaker Grbl controller un poil mieux fait.

Alors je me suis pas encore pencher sur comment greffer mes fonctions en sup de cette librairie, mais pour le début ça devrait suffire ! Mais j’ai commencé à regarder et ça sera pas de la tarte mais j’ai quand même bon espoir !

Concernant la toolchain open-source j’ai justement trouvé un super article (en français s’il-vous-plaît !) sur le sujet, ainsi que cette vidéo qui explique en 5 min comment passer de l’idée à l’objet 🙂

Pour résumer ma (je l’espère) futur toolchain  :

CAO/DAO => – LibreCAD ou FreeCAD pour les pièces .

– Inkscape pour gravures d’image.

– F-engrave pour les gravures de texte « simple ».

– Kicad ou Eagle pour les PCB.

Génération du G-Code => HeeksCAD + HeeksCNC.

Streaming du G-Code => Quick GRBL ou Zapmaker Grbl controller.

Interprétation du G-Code => GRBL.

Enfin pour l’électronique voici le pinmapping de ma carte que j’ai « décodé » :

IMG_1361

Dans un premier temps j’ai fixé mes cartes sur une planche afin de travailler proprement et de vérifier la validité de mon électronique :

_DSC8659

Pour l’instant c’est une alim de récup, mais je viens de recevoir la nouvelle : une 24V 5A pour 15€ 🙂 Et elle a l’air pas dégueu ! A vérifier à l’usage cependant 😉

Par la suite je pense acheter un boitier alu que je ventilerai, et je concevrai une carte pour me brancher directement sur le contrôleur PAP, avec possibilité d’ajouter des capteurs de température, un LCD, des joysticks, monitoring de l’alimentation …

Prochain article : la première gravure 🙂

Publicités
commentaires
  1. Ayoub dit :

    Bonjour,

    Je m’intéresse aux machines CNC à faire soit même et je trouve votre série d’article trés bien.

    Je voudrais construire un CNC mais malheureusement mes connaissance se limitent au logiciel et je suis perdu dés que ça touche à l’électronique.

    Est ce que vous prévoyez de publier, un article bien plus détaillé avec les moteurs a acheter, les cartes, les câblages etc?

    Autre question pourquoi avoir utilisé le port parallèle alors qu’il y a des version d’arduino qui ont des port USB, donc plus facile a programmer?

    • battooo dit :

      Salut !

      Oui je prévois de détailler bien plus l’électronique une fois que je serai sûr que mes choix étaient les bons 😉

      Pour le port parallèle tu n’as pas dû bien comprendre : la plupart des systèmes existants utilisent le port parallèle qui tombe en désuétude. J’utilise ici l’Arduino pour faire l’interface, comme ceci :

      PC Arduino+GRBL Driver moteurs

      Sur la carte finale, je prévois de faire une carte avec deux Atmega : un dédié à GRBL, l’autre « libre » pour y insérer simplement un code perso, car GRBL à bidouiller je risque d’avoir pas mal de problème … Avec cette solution, il sera très facile d’ajouter des joysticks, un lecteur SD, l’ethernet et j’en passe … Tout ça sera publié 😉 Quand, la je peux rien promettre xD

      Pour le choix des moteurs, tout dépend surtout de l’application (plus il va y avoir d’effort à faire plus il faudra un gros moteur, logique !) et également de la mécanique derrière (plus ta vis aura un pas faible, moins il faudra de couple, mais c’est au sacrifice de la vitesse). Il y également des limitation induite par le driver : ici il est annoncé 2,5A par moteur. Comme c’est du matos chinois, je vais surement pas les pousser jusque la. M’enfin 2A ça fait déjà un excellent couple, quelque soit le type de travail demandé.

      Actuellement les miens sont trop faibles, mais je viens justement de récupérer 3 NEMA 24 1,4A, donc ça devrait suffire 😉 Mais il faut que je reperce et j’attends mes nouveaux accouplement d’axe. Donc en attendant jpeux pas avancer … Les axe X et Y fonctionnent mais le Z non.

      • Ayoub dit :

        Merci pour toutes ces explications, je comprends bien mieux maintenant.

        Je compte faire quelque chose d’assez modeste pour commencer, donc des petits moteurs.

        Mais aprés si on veux passer à quelque chose de plus puissant, ils suffit juste de changer la paire, moteurs, driver ? On peut garder le reste?

        J’attends la suite de vos articles avec impatience 🙂

  2. battooo dit :

    Si tu veux faire des essais, je te conseille tout d’abord de faire comme moi : de la récup ! Notamment les imprimantes qui sont de véritables mine d’or : moteur, alim …

    Si tu suis mon exemple, en effet il n’y a rien à changer si tu passes à des moteurs plus puissants, du moment que tu restes sous les 2,5A. Il faut juste configurer le courant de sortie (je ne l’ai pas décrit encore mais il il y a un simple interrupteur DIP sur chaque sortie moteur pour configurer le courant : 25%, 50%, 75% ou 100% de la sortie max, soit 2,5A). Une doc : http://www.fozztexx.com/CNC/HY-TB3DV-M_3Axis_Driver.pdf

    Ce n’est pas celle de cette carte la exactement, mais jusqu’à maintenant tout à correspondu. Après je n’ai pas joué avec le decay (déphasage courant-tension) ou les micros-pas, ça viendra ensuite lors des optimisations.

  3. Equinoxefr dit :

    Hummm, une bien belle machine 🙂

  4. battooo dit :

    Merci 🙂 j’attend toujours ces foutus accouplement d’axe pour reprendre les essais …

  5. Nessa dit :

    Bonjour,

    J’envisage de construire une fraiseuse CNC qui sera convertissable en imprimante 3D. Gros défi car je suis novice en … a peu près tout.
    Petite question par rapport à votre électronique. Je distingue en bas à gauche votre carte arduino qui est reliée au pc et à ? la carte de contrôle, de commande des moteurs peut-être?
    Et après … c’est le néant.
    Si vous pouviez m’éclairer sur tout le reste des branchements, se serait vraiment, mais alors franchement sympa.

  6. battooo dit :

    Bonjour,

    décidément il faut vraiment que je me bouge à faire ma carte pour pouvoir pondre le billet qui va avec xD

    Mais je vais tenter une explication ici quand même 😉 :

    La carte rouge est un driver de moteur pas-à-pas (je pense sur le fonctionnement de ce type de moteur qui est largement décrit ailleurs sur le net mieux que je ne pourrais le faire, donc si c’est pas déjà fait je t’invite à consulter google 😉 ). Comment fonctionne-elle : le port LPT est encore largement utilisé sur ce genre de carte car c’est un port pilotable directement par le PC (et donc les logiciels qu’il héberge) comme des ports digitaux d’une arduino, en gros on pourrait brancher directement des LED dessus et faire un chenillard par exemple. La très grande majorité des drivers de moteur pas-à-pas fonctionne avec deux information par moteur : une horloge et un signal pour la direction du moteur. L’horloge mais des créneaux 0-5V et à chaque front montant (ou descendant je ne me rappelle plus) la carte comprend « fait un pas » et le fait dans la direction qu’on a sélectionné avec le signal de direction (0V = un sens 5V = dans le sens inverse).

    Maintenant il faut donc piloter cette carte qui au final ne fait que gérer la puissance demander par les moteurs. Deux options se présente alors : on a un port LPT sur son ordinateur et un logiciel capable de le gérer avec un excellent timing. Et ce dernier point est crucial : en effet si la référence de temps du PC est mauvaise la précision de la fraiseur se dégrade très vite (au lieu d’un cercle on a un ovale). Et il se trouve que windows est très mauvais dans le domaine à l’inverse de linux. C’est pour celà que pas mal de DIYer utilisent EMC2 qui est un très bon logiciel de pilotage sous linux. Donc pour cette première solution, la meilleure solution est d’avoir un PC (pas très récent du coup) disposant d’un port LPT, et en linux avec EMC2. Maintenant (si comme moi) tu es allergique au pingouin, il faut un interpréteur de GCODE. Pour rappel le GCODE c’est le « langage » des CNC.

    Exemple : G00 X10 Y5 ==> déplacement aux coordonnées X=10 mm et Y=5mm

    Le but du jeu c’est donc d’avoir une interface (usb si possible) vers laquelle on va envoyer des lignes de caractères et qui va générer les signaux d’horloge et de direction en conséquence pour exécuter l’ordre. C’est ici que l’Arduino et GRBL entre en jeu : par le port série, j’envoie ligne par ligne mon Gcode (la génération de celui ci se faisant informatiquement par des logiciels de conception, au final on obtiens un bête fichier texte remplis de ligne de commande Gcode) avec un logiciel qui va simplement lire le fichier texte. L’Arduino reçoit la commande, par rapport à la position de la fraiseuse va en déduire le nombre de pas et la direction à réaliser en X Y et Z pour atteindre les coordonnées qu’on lui demande.

    Voila j’espère avoir répondu à tes questions 🙂

    • Nessa dit :

      Tout d’abord merci pour la rapidité de ta réponse, ainsi que la précision de cette dernière.
      C’est donc ok pour la carte driver et l’arduino.
      Mais … et oui il fallait s’y attendre! Par rapport à la photo, on voit donc la carte Arduino en bas, au dessus la carte driver moteur, et à quoi servent le circuit imprimé à droite de la carte driver, et la plaque blanche au dessus?
      Dernière petite question (pour l’instant 🙂 ), est-il possible de mettre des moteurs différents pour les 3 axes? Si oui, qu’est ce que cela change-t-il?

      Merci d’avance.

  7. battooo dit :

    Alors la carte sur la droite c’est l’alim (elle a changé depuis) et en haut c’était juste une breadboard que j’utilisais à ce moment la pour tester les branchements des moteurs (plus facile que de visser dévisser 4 fois le bornier).

    Oui tu peux mettre ce que tu veux comme moteur, la seule condition c’est de bien paramétrer le courant sinon ça va sentir le cramé … Car le vrai driving se fait en courant (en effet à haute vitesse les effets inductifs s’opposent au courant et il faut plus de tension pour conserver le couple). Pour chaque moteur il y a plusieurs interrupteur DIL pour configurer : le courant, le microstepping (le driver peut gérer le courant par phase et le répartir sur deux bobines qui se suivent, générant ainsi des 1/2, 1/8 ou 1/16 de pas par impulsion sur l’horloge au lieu du plein pas ce qui rend le mouvement plus précis, plus fluide et beaucoup moins bruyant) et le decay (décalage du courant, la on est dans le peaufinage et perso j’ai laissé la valeur par défaut).

    Le fait de mettre des moteurs différents n’a normalement pas d’effet, si ce n’est bien évidemment les limites de chaque moteur