Construire une machine de découpe mousse CNC Arduino : Guide DIY complet
Dans ce tutoriel, nous allons apprendre à construire une machine de découpe mousse CNC pilotée par Arduino. C'est une machine CNC DIY typique : matériaux simples et bon marché, pièces imprimées en 3D et un Arduino comme contrôleur. Vous pouvez regarder la vidéo suivante ou lire le tutoriel écrit ci-dessous. Au lieu de fraises ou lasers, l'outil principal est un fil chaud, un fil résistif spécial qui chauffe intensément quand le courant le traverse. Le fil fond ou vaporise la mousse au passage, permettant de découper précisément toute forme souhaitée. Je dis « facilement » car construire une CNC n'est pas si difficile. Si vous êtes débutant et envisagez votre première CNC DIY, restez attentif : j'expliquerai tout le processus, de la conception au câblage électronique, en passant par la programmation Arduino, la préparation des formes, la génération de G-code et le contrôle via des logiciels libres. C'est parti ! Voici le modèle 3D de cette machine. Vous pouvez le télécharger et l'explorer dans votre navigateur sur Thangs. Télécharger le modèle 3D d'assemblage sur Thangs. Fichiers STL pour impression 3D : La structure de base utilise des profilés aluminium à rainure en T 20x20mm. Je les ai choisis pour leur facilité d'assemblage (pas de perçage), leur réutilisabilité et leur modularité. Le mouvement de chaque axe est assuré par des roulements linéaires glissant sur tiges lisses de 10mm (deux tiges par axe). Les chariots peuvent sembler étranges mais sont conçus pour être imprimés en une seule pièce tout en intégrant plusieurs fonctions : le chariot X accueille les deux roulements, tient la tige de l'axe Y, la poulie de courroie Y et les attaches pour la courroie X. Pour entraîner les chariots, nous utilisons des moteurs pas-à-pas NEMA 17. Via un coupleur d'arbre, une tige filetée, deux poulies et deux courroies, on entraîne simultanément les deux chariots de chaque rail. On remarque aussi un troisième moteur pas-à-pas permettant de réaliser des formes 2.5D, nous y reviendrons plus tard. Globalement, la conception n'est pas optimale en rigidité, mais l'objectif était une machine fonctionnelle avec un minimum de pièces. Pour l'impression 3D, j'ai utilisé mon imprimante Creality CR-10, excellente imprimante au prix raisonnable. Notez que certaines pièces nécessitent un post-traitement ou retrait des supports. Parfois, j'ai dû utiliser une râpe pour retirer l'excès de matière, probablement dû à de mauvais réglages de support dans le trancheur. Tous les matériaux sont prêts, commençons l'assemblage. Liste des composants principaux (électronique dans la section schéma) : Mes profilés faisaient 60cm, je les ai coupés aux dimensions à la scie à métaux. Puis assemblage du châssis de base avec les équerres. Installation des colliers d'arbre pour l'axe X. Travailler avec des profilés à rainure en T est si simple : boulons M5 et écrous à rainure suffisent. Insertion des tiges dans les colliers. À mi-parcours, on place le chariot X : on y met les deux roulements, puis on insère sur la tige. On enfonce la tige de l'autre côté et on serre avec boulon M4 et écrou. Même processus pour l'autre côté. Installation des axes Y : insertion des tiges dans les chariots X, alignement avec le bas de la pièce, serrage avec écrous/boulons M4. Puis insertion des chariots Y (un seul roulement linéaire chacun). Sur le haut des tiges Y, on fixe les supports de montage qui relient les deux tiges Y à un profilé en T sur le dessus. Même méthode de fixation. Pour attacher le profilé aux supports, j'ai mis 3 boulons M5 et écrous à rainure, glissé le profilé et serré. La structure principale est terminée, mouvement libre en X et Y. Fixation des pieds sur le châssis de base. Insertion du premier moteur pas-à-pas pour l'axe X. J'utilise des écrous espaceurs de 20mm pour décaler l'arbre du moteur afin de placer une poulie près du pied. Tige filetée 6mm simple pour entraîner les deux courroies. Coupée à la taille, roulement 6mm sur le pied opposé au moteur, tige passée à travers. Écrou pour fixer la tige au roulement et deux poulies dentées pour les courroies. Pour connecter la tige filetée au moteur, j'ai imprimé un coupleur d'arbre : trou 5mm côté moteur, 6mm côté tige. Emplacements pour écrous M3, serrage par vis M3 ou vis sans tête. Positionnement des poulies alignées avec les poignées des chariots, serrage des vis sans tête. De l'autre côté, insertion des deux poulies folles avec boulons/écrous M5. Installation des courroies GT2 pour l'axe X. Insertion et fixation de la courroie au chariot avec un collier de serrage (zip tie). Passage autour de la poulie dentée, puis poulie folle de l'autre côté, coupe à la bonne taille, fixation de l'autre côté du chariot avec un collier. Même processus pour l'autre côté. Lors de la fixation du second côté, il faut s'assurer que les deux chariots sont à la même position sur l'axe X : on les pousse au bout des rails, on tend la courroie et on fixe. Mécanisme X terminé. En relation : Traceur à plume DIY avec changeur d'outil automatique | Machine de dessin CNC Même méthode pour l'axe Y. Fixation courroie au chariot par colliers. Le chariot n'a qu'une poignée : on fixe un bout, on tend, on attrape les deux bouts avec un second collier, on retire le premier et on coupe l'excédent. Vérification alignement chariots Y. Mécanisme Y terminé. Ajout d'un profilé en T transversal sur l'axe X. Il servira à fixer le 3ème moteur pas-à-pas et à poser les plaques de mousse. Ce 3ème moteur permet des formes 2.5D (trois dimensions), comme une pièce d'échecs. Installation du fil résistif. Doit résister à haute chaleur avec température uniforme : fil Nichrome ou fil de pêche en acier inoxydable, peu coûteux et facile à trouver. Le fil doit être tendu entre les deux tours/chariots. Voici ma méthode : boulons M5 sur les deux chariots avec petits ressorts d'extension. Attache du fil aux ressorts. Tension maximale permise par les ressorts. Les ressorts compensent l'allongement du fil quand il chauffe. Connexion du fil résistif aux fils électriques. Courant continu, polarité indifférente, seul le passage du courant compte. Assurez-vous que vos fils électriques supportent 3-5 ampères. J'utilise du 22 AWG mais je recommande du 20 ou 18 AWG. Au début, j'ai connecté le fil électrique entre les deux écrous, le courant passant par la bobine vers le fil résistif. Cela n'a pas bien fonctionné, je vous montrerai pourquoi. J'ai passé les fils dans les poignées du chariot pour les tenir à l'écart du fil chaud. Installation des fins de course (end-stops). Ces micro-interrupteurs ont 3 connexions : Ground, Normalement Ouvert (NO), Normalement Fermé (NF). Au début connectés en NO, après tests je suis passé en NF pour plus de stabilité. Le problème : le bruit électrique généré par la CNC déclenche faussement les interrupteurs NO, stoppant la machine. Connexion des câbles moteurs pas-à-pas et vue d'ensemble du câblage électronique. Voici le schéma de connexion. Le cerveau est une carte Arduino. Avec elle : shield CNC Arduino, trois drivers pas-à-pas A4988 et un convertisseur DC-DC pour contrôler la température du fil chaud. Composants nécessaires : J'ai imprimé un support pour l'électronique, fixé sur un profilé en T. Fixation Arduino au support par vis M3, puis shield CNC par-dessus. Sélection de la résolution des drivers par jumpers. J'ai choisi 1/16 de pas (3 jumpers par driver) pour des mouvements plus fluides. Attention à l'orientation des drivers : le petit potentiomètre doit pointer vers le bas du shield. Fixation du convertisseur DC. Connexion des 3 moteurs pas-à-pas au shield CNC, et des 2 fins de course aux broches X+ et Y+. Alimentation : 12V 6A DC. Le shield CNC accepte 12-36V, le convertisseur DC aussi. Sur l'entrée du convertisseur, un interrupteur pour allumer/éteindre le fil chaud séparément. Sur la sortie, connexion des deux fils des extrémités du fil résistif. Enfin, alimentation Arduino via USB et shield/moteurs via prise DC. Test du fil chaud : 0V à l'entrée du convertisseur, 12V quand l'interrupteur est activé. Sortie à 0V, puis en tournant le potentiomètre, tension réglable 0-12V, contrôlant le courant et la température du fil. Meilleur test : essayer de couper de la mousse. Le fil doit couper sans résistance ni courbure excessive. Après tests initiaux, le fil s'est allongé par la chaleur et les ressorts n'ont pas compensé. Les ressorts ont perdu leur fonction par surchauffe : le courant passait aussi par eux avec cette configuration. Remplacement des ressorts par des neufs, et contournement : connexion directe des fils électriques au fil résistif via pinces crocodile. Donnons vie à cette machine pour en faire une vraie CNC. Il faut d'abord flasher un firmware sur l'Arduino pour contrôler les mouvements. Le choix le plus populaire pour CNC DIY est GRBL. Open source, téléchargeable sur GitHub. Une fois le zip téléchargé, extraire, copier le dossier « grbl » dans le répertoire des bibliothèques Arduino. Ouvrir l'IDE Arduino, Fichier > Exemples > grbl > grblUpload. Sélectionner carte Arduino UNO, port COM, et téléverser. L'Arduino sait maintenant lire le G-code et piloter la machine. Ensuite, il faut une interface pour communiquer avec l'Arduino. Je choisis Universal G-Code Sender, open source. Téléchargement version 2.0 Platform. Pour lancer : extraire le zip, aller dans dossier « bin » et ouvrir un fichier exécutable ugsplatform. C'est un programme Java, il faut installer Java Runtime Environment (gratuit sur le site officiel). Au lancement d'Universal G-Code Sender, on lance l'assistant de configuration. Sélection du port et connexion à l'Arduino. Une fois connecté, on vérifie le sens de rotation des moteurs via les boutons. Inversion si nécessaire. J'ai choisi mouvements positifs depuis la position home (fins de course) vers les autres côtés. Calibration des pas moteurs pour mouvements précis. Résolution 1/16 sélectionnée, moteurs 200 pas physiques = 3200 pas pour 360°. Selon transmission (taille poulies), calcul du nombre de pas pour 1mm. Valeur par défaut : 250 pas/mm. En cliquant un bouton de déplacement, le moteur fait 250 pas. Mesure réelle du déplacement à la règle, saisie dans le logiciel. Il calcule et propose la nouvelle valeur steps/mm. Dans mon cas : 83 steps/mm. Pour l'axe Z : 400 steps/mm (1mm = rotation 45°). Vérification fins de course. Selon connexion NO/NC, inversion possible ici. NC a mieux fonctionné pour moi. Important : désactiver la fin de course Z car nous n'en avons pas. Sinon, impossible de faire le « home ». Pour cela, aller dans le dossier grbl de la bibliothèque Arduino, éditer config.h. Trouver les lignes « homing cycle », commenter la config 3 axes par défaut, décommenter la config 2 axes. Sauvegarder et re-téléverser grblUpload. Redémarrer les programmes pour tout réinitialiser. Test du « home » via bouton « Try homing ». La machine doit aller vers fin de course X, puis Y. Inversion sens si nécessaire. À la fin de l'assistant, on définit les limites logicielles (Soft Limits) : distance max de déplacement. Dans mon cas 45x45cm. Le programme est prêt. Avant chaque utilisation, toujours faire « Home » puis libre cours. Suggestion : tester le contrôle Jog (déplacement manuel). Essayer de couper de la mousse pour trouver le débit (feed rate) optimal. Jouez avec température fil chaud et vitesse d'avance pour obtenir les coupes les plus nettes et précises. Reste à voir comment préparer les dessins pour que la CNC en fasse des formes. Il faut un logiciel graphique vectoriel, encore open source : Inkscape (gratuit sur site officiel). Deux exemples de préparation G-code avec Inkscape. D'abord, taille de page = zone de travail : 45x45cm. Exemple 1 : logo Arduino importé, conversion en vectoriel via « Vectoriser bitmap ». Pour couper au fil chaud, la forme doit être un chemin continu. Le fil est toujours présent dans la zone de travail, ne peut pas se lever comme une fraise ou s'éteindre comme un laser lors des déplacements à vide. Donc on relie toutes les pièces séparées par des carrés simples : sélection des pièces, fonction « Union ». Les boucles fermées internes doivent être ouvertes via « Différence ». Dessin prêt, utilisation de l'extension Gcodetools pour générer le G-code. D'abord, génération des points d'orientation. Mise à l'échelle du modèle. Puis bibliothèque d'outils : définition de l'outil (fil cylindrique). Diamètre 1mm, vitesse d'avance. Autres paramètres non critiques. Génération du G-code via « Chemin vers Gcode ». Le G-code est un ensemble d'instructions que GRBL/Arduino comprend pour piloter les moteurs. Ouverture dans Universal G-code Sender, visualisation du parcours via fenêtre Visualizer. Lignes jaunes = déplacements à vide (air). Problème : le fil chaud ne peut pas faire ces déplacements sans couper la mousse et ruiner la forme. Ici, pas de chemin unique car on a oublié d'ouvrir les zones fermées du logo. Retour au dessin, ouverture des zones fermées, régénération G-code. Astuce : choisir son point de départ en double-cliquant la forme, sélectionner un nœud, « Couper le chemin au nœud sélectionné ». Nouveau G-code : chemin commence à la lettre A, parcourt toute la forme, revient à A. Pour fixer la mousse : supports simples avec boulons M3 traversant la mousse. Second exemple : forme 3D. Pilier carré à couper sur 4 faces à 90°. Forme pilier via « Vectoriser bitmap ». Rectangle de la taille du pilier, soustraction du pilier. Suppression d'un côté : on ne garde qu'un profil du pilier. C'est le chemin réel de la CNC, avec rotation du 3ème moteur de 90° après chaque passage. Pour les points d'orientation : profondeur Z = -8mm. Paramètres outil : pas de profondeur = 2mm. G-code généré : 4 passages du même chemin avec différence 2mm en Z. Pour une fraiseuse CNC, cela signifierait 2mm plus profond à chaque fois, mais ici l'axe Z fait tourner la mousse : 45° par mm, 90° pour 2mm. Modification G-code nécessaire. Par défaut, après chaque passage, Z revient à 1mm (élévation fraise pour déplacement à vide). On pourrait laisser tel quel mais mouvements Z inutiles (rotation mousse pour rien). Donc après chaque itération, modifier les valeurs Z pour qu'elles restent au même niveau, sans retour à 1mm. Pour fixer la mousse en 3D : plateforme avec boulons M3 s'enfonçant dans la mousse pour la maintenir pendant l'usinage. Avant lancement G-code : amener manuellement le fil chaud près de la mousse. Distance centre-fil = épaisseur voulue. Pour dimensions exactes : mesurer distance origine-centre forme dans le dessin. Cliquer « Reset Zero » dans le contrôleur pour dire au programme de démarrer d'ici (pas de home). Puis « Play » : la CNC Arduino réalise la forme 3D. Téléchargement fichiers G-code et Inkscape pour tous les exemples : C'est à peu près tout pour ce tutoriel. J'espère que les explications étaient assez claires pour que vous puissiez construire votre propre CNC. Questions en commentaires bienvenues, et découvrez ma collection de projets Arduino.Vue d'ensemble

Modèle 3D de la machine CNC mousse Arduino





Assemblage de la CNC
















Schéma circuit CNC mousse Arduino







Logiciels pour machines CNC Arduino








Génération de G-code pour la machine CNC
















Processus de fabrication
- Guide du prototypage CNC : précision, rapidité et production rentable
- Guide complet des machines de découpe CNC : types, avantages et applications
- Qu'est-ce que le CNC ? – Comprendre la Commande Numérique par Ordinateur pour la fabrication moderne
- Couteau oscillant CNC : Applications et capacités industrielles
- Comparatif rapide des outils de coupe CNC : Fraises, tarauds et plus
- Machines CNC de bureau abordables pour la découpe de précision des métaux à domicile
- Fondamentaux CNC : Maîtriser la commande numérique par ordinateur
- Fraisesuses CNC : Guide Complet et Vue d'Ensemble Technique
- Guide approfondi des machines de coupe plasma CNC : caractéristiques, avantages et applications