Articles Tagués ‘CNC’

Bonjour à tous,

Vu que le sujet à l’air de passionner les foules, je me bouge un peu 🙂

Pour commencer les diverses découvertes/constatations/tests :

Dans un précédent billet je vous parlais d’un adaptateur pour des fraises de petits diamètres :

!BtnSdjQEWk~$(KGrHqUH-DkEvsNzohCPBL8tjNKPtQ~~_35

Celles la ne marche pas bien du tout ! Impossible de tenir une  fraise droite … En revanche ce type la marche bien :

collet_1

Ensuite je vous parlais de GRBL controller, oubliez !! Je pensais que le firmware GRBL était lent, mais en fait c’est le streaming par ce soft qui était naze …

Conclusion : prenez le soft officiel GRBL Universal code sender il marche du feu de dieu !!

Allez on passe aux choses sérieuses 🙂

L’électronique de pilotage des CNC

 

 
Un article pour décrire basiquement le fonctionnement de l’électronique qui anime les fraiseuses numériques et imprimantes 3D.

Les moteurs pas-à-pas

 

Il est d’abord primordial de saisir le principe de fonctionnement (très simple) des moteurs PAP. Bon je vais pas ré-inventer l’eau chaude, l’article wikipedia sur le sujet est assez simple et bien foutu : http://fr.wikipedia.org/wiki/Moteur_pas_%C3%A0_pas

Ce qu’il faut retenir : en gros, un moteur pas à pas c’est une série d’électroaimants qu’on alimente tour à tour pour générer des rotations complètes. Il existe alors deux types de moteur : les unipolaires et les bipolaires. Dans le premier, les bobines ne sont alimentées que dans un seul « sens », alors que dans les bipolaires les bobines sont alimentées dans un sens puis dans l’autre, inversant la polarité du champs magnétique. Les bipolaires sont les plus courants, et encore plus dans le monde des fraiseuses et autres imprimantes 3D. Ce type de moteur nécessite l’emploi de montage type pont en H :

pontH

Sur un moteur à courant continu, si on ferme C1 et C4 on tourne dans un sens, et dans l’autre si on ferme C2 et C3. Maintenant si on mets une bobine de moteur PAP à la place, et qu’on multiplie par deux ce montage, on peut piloter les deux bobines d’un moteur PAP bipolaire.

Les circuits intégrés les plus courant dans le domaine sont le L293 et le L298. Ils ont principalement deux faiblesses :

– les courants qu’ils peuvent commander sont faibles pour une CNC : le L298 peut d’après la datasheet commander 2A en continu. Expérience personnelle : déjà à 1A ça chauffe sacrément …

– il faut une électronique de commande : en effet vous remarquer que si on fait des pas avec un stepper, on est obligé de mettre une interface « intelligente » pour faire les 4 étapes de base :

 

Tableau récapitulatif de l’ordre des phases
Impulsion Bobine A Bobine A Bobine B Bobine B
T1 +    
T2     +
T3 +    
T4     +

 

A noter que le L298 a la possibilité de réguler en courant : en effet on peut placer une résistance en sortie sur moteur pour obtenir une image en tension du courant, le L298 ajuste alors la tension pour maintenir le courant et donc le couple. J’en parle ici car c’est une fonction très importante sur les driverx de stepper pour CNC. Les effets inductifs étant de plus en plus grand au fur et à mesure qu’on augmente la vitesse de rotation du moteur, les bobines s’opposent au courant et il faut alors une plus grande tension pour le maintenir et ne pas perdre de couple. C’est pour celà que les driver CNC demandent souvent plus de 24V alors que sur les steppers vous verrez souvent des spécifications aux alentours de 5V.

On fait alors appelle à d’autres circuits intégrés, plus puissant et plus complets. Un modèle très courant est le TB6560 (en cours de remplacement par le TB6660). Il est capable de gérer 3,5A par phase (=bobine) et est bien plus complet : gère le microstepping (1/2, 1/8, et 1/16 de pas), le decay (décalage de courant, inutile de se tracasser la tête avec ça pour le moment) et intègre une interface intelligente. Ici on ne commande plus directement le pont. En effet, un TB6560 peut gérer un moteur, et il n’a besoin que de deux signaux : une horloge (créneaux alternatif 0-5V) pour les pas, et un pour la direction (5V=un sens 0V=autre sens). A chaque transition 0->5V, le moteur fait un pas dans la direction spécifiée par le pin de direction.

Prenons maintenant le connecteur DB25 de mon driver (en version 5 axes ici, j’ai pas trouvé la 3 axes mais les branchements sont les mêmes).

stepdb

DB25(PIN)

The role of the pin on driver board

Notes

1 EN Enable all axis
2 STEPX X pulse signal
3 DIRX X direction signal
4 STEPY Y pulse signal
5 DIRY Y direction signal
6 STEPZ Z pulse signal
7 DIRZ Z direction signal
8 STEPA (absent sur la 3 axes) A pulse signal
9 DIRA (absent sur la 3 axes) A direction signal
10 LIMIT-1 Limit input1
11 LIMIT-2 Limit input2
12 LIMIT-3 Limit input3
13 LIMIT-4 Limit input4
14 Relay control  
15 blank  
16 STEPB- (absent sur la 3 axes) B pulse signal
17 DIRB-(absent sur la 3 axes) B direction signal
18-25 GND  

(A noter que les flèches indiquant le sens des signaux sont inversées …)

Il y a 3 x TB6560 sur cette carte pour 3 moteurs donc, et on retrouve logiquement 3 couples STEP/DIR. Si maintenant on prend le pinout de GRBL :

Grbl_Pin_Diagram

Et la il devient très facile de savoir qui va où 😉 Step Pulse X-Axis à STEPX, Step Pulse Y-Axis à STEPY, Spindle Enable à Relay control …

Les pins indispensables à brancher sont le 12, et ceux de 8 à 2. Pour les butées (=Limit) je ne sais pas si on peux les brancher à ceux de la carte via DB25. Dans tous les cas, deux options 100% sûres s’offrent à vous si vous avez la même carte que moi : brancher vos butées au driver, mais au cas où vous enclenchez une butée, GRBL continuera de tourner, alors que si vous choisissez la seconde option qui consiste à brancher les butées sur l’Arduino, les mouvements stopperont et GRBL s’arrêtera ce qui peut permettre de rattraper les choses éventuellement …

Notez que sur le schéma, certains pins dont les butées que je viens d’évoquer sont en pull-up, c’est à dire que sur chaque pin la résistance interne (de 20 kOhm de mémoire) de pull-up est active, donc il suffit pour déclencher la fonction qui va avec de relier ce pin au GND. Exemple concret : si je veux pouvoir démarrer/mettre en pause le travaille, il me suffit de mettre un bouton poussoir entre le pin A2 et le GND.

Mais GRBL ça sert à quoi exactement ??

Il me semble quand même important de remettre les choses à plat concernant les différents maillons de la chaîne. Pour celà je vais vous décrire la création d’une pièce comme je le fais aujourd’hui et en décrivant le rôle de chaque acteur.

1ère étape : dessin de la pièce

Je dessine ma pièce sur LibreCad, j’obtiens alors un fichier DXF. C’est un format de fichier dédié au pièces en 2D ou 3D : http://fr.wikipedia.org/wiki/Drawing_eXchange_Format

2ème étape : génération du G-Code

Il faut maintenant traduire cette « image » en chemin pour ma CNC. Pour celà j’utilise HeekCAD. Très simplement on choisit une esquisse et on lui attribut une fonction, par exemple une découpe par l’extérieur (c’est à dire que pour réaliser la découpe, le logiciel va tenir compte de la taille de la fraise pour respecter les cotations de l’esquisse).

Le logiciel traduit alors l’esquisse en mouvement de fraise, en gros elle va écrire des ordres en G-Code qui voudront dire « va aux coordonnées X=10 mm et Y=20 mm à telle vitesse puis fait plonger la fraise de 3 mm, puis déplace toi aux coordonnées X=0 et Y=5 » … On obtient alors un fichier texte (ils peuvent prendre divers extensions, mais au final on peut toujours l’ouvrir avec le bloc note 😉 ) rempli de lignes de G-Code.

3ème étape : préparation de la CNC

Je fixe ma plaque de bois ou autre et place ma fraise au point de départ en utilisant GRBL universal code sender et ses outils de déplacement.

4ème étape : je lance la gravure !

Dans GRBL universal code sender je charge mon fichier G-Code et je lance le travail. Le soft va alors streamer le G-Code, c’est à dire qu’il va envoyer ligne par ligne, par liaison série, les ordres en GCODE. GRBL embarqué sur l’Arduino va alors traduire ces ordres en signal d’horloge et de direction comme expliqué au début de ce billet. La carte drivers reçoit les signaux d’horloge de pas et de direction et fait tourner les moteurs en conséquence.

Branchement des moteurs au drivers et configuration du driver

Comme évoqué auparavant, il faut configurer principalement deux paramètres sur le driver : le microstepping et le courant. Le microstepping permet d’avoir des mouvements beaucoup plus fluides et d’avoir une meilleure précision en régulant le courant dans deux bobines consécutives. Par exemple si au lieu de passer brusquement de la bobine A à la bobine B (cf. tableau du début), j’insère une étape où j’alimente A et B en même temps, le rotor prend alors une position intermédiaire. Et hop voilà le demi-pas 😉 Si maintenant j’injecte moitié moins de courant dans A et toujours autant dans B, je fais un quart de pas et ainsi de suite … Le revers de la médaille c’est qu’il faut une horloge rapide en entrée du drivers. Et oui maintenant pour lui, une transition 0->5V signifie maintenant 1/16 ème de pas si vous l’avez configuré ainsi, donc comparé à du plein pas, il faudra une horloge 16 fois plus rapide pour une même vitesse. Pour ma part je travaille en 1/8 de pas.

Pour le courant il faut faire très attention car c’est ici qu’on peut faire du dégât : ces drivers peuvent débiter des ampères donc on grille très vite le moteur et/ou le driver … Mon conseil : commencer au plus bas, si jamais vous faîtes une erreur ça sera sans dommage. Dans un deuxième temps quand vous avez tout bien configuré et que vous maîtrisez les choses, passez au courant nominal du moteur mais sans jamais le dépasser !

Pour brancher les moteurs, je vous invite à consulter (oui je sais, encore une fois !) la doc de mon driver . Alors on trouve des moteurs à 4, 5,6 ou 8 fils, suivant les connexions internes du moteurs. Si vous avez la datasheet du moteur tant mieux, sinon (ce qui est très souvent le cas !) il va falloir jouer de l’ohmmètre dans un premier temps et savoir qui est quoi (à peu près). Si vous avez un quatre fils, il sera facile de retrouver lesquels sont pour la bobine A et lesquels sont pour la B vu qu’ils sont reliés deux à deux et que les bobines ne sont pas reliées entre elles. Pour un 6 fils, le point milieu sera celui qui aura la résistance la plus basse comparés aux extrémités de la bobine concernées. Après tout est une question de bon sens 😉

Ensuite dans la doc, suivant votre moteur, vous trouverez différents modes de branchement suivant que vous souhaitiez privilégier la vitesse ou le couple. Tout dépendra du type de matériaux visé, du couple nominal des moteurs, du pas de la vis (ou de la courroie) … A vous de voir mais vous verrez qu’il existe au final pas mal de levier pour perfectionner votre machine. Bon quand vous en serez la je pense que cet article vous paraîtra bien basique 😉

Voila j’espère avoir éclaircit certains esprits, si vous avez besoin de précision et d’autres infos n’hésitez pas à le demander en commentaire 😉

Prochain article : création d’une carte Arduino dédiée au branchement à un driver via DB25

Bonjour à tous !

Ça y est ! Enfin ! Après des mois de construction, d’apprentissage et de prise en main, j’ai enfin pu faire quelque chose à cette engin 🙂

Après avoir reçu mes nouveaux accouplement, j’ai pu monter mes nouveaux moteurs (des NEMA 24 1.5A) : ça chauffe plus et ça dépote !

Du coup nouvelle alim aussi : 24V 5A 12€ sur ebay … Et elle est bien monté dedans, c’est propre.

Pour les remarques suivante je rappelle que je n’ai pas l’habitude des moteurs pas à pas, et par conséquent certaines remarques peuvent paraître évidentes pour les initiés mais comme je suis pas le seul à être ignorant 😉

Je suis passé au 1/8 de pas (dipswitch M1 et M2 « ON »), les moteurs sont beaucoup plus silencieux et je vais encore plus vite : 400 mm/min ce qui est plus qu’honorable ! Je pense également revoir tout l’aspect interface PC – Driver de moteurs : en effet je pense en fait faire un simple connecteur qui viendra sur le LPT avec un Atmega328 programmé GRBL, et une seconde carte, branché elle comme l’actuelle sur le port télécommande. Je pourrait ainsi sans avoir à rentrer dans les méandres de GRBL et risquer de tout perturber ajouter mes fonctions (télécommande, buzzer, SD, LCD …). Autre piste que j’explore : tout simplement un autre firmware, mais qui ne sera pas sur Atmega328 (Teensy 3.0 ou Sanguino probablement). Mais ne vous inquiéter pas je continuerai mes articles pour expliquer plus précisément chaque partie de ma CNC avec une partie détaillée sur la partie électronique 😉

Pour commencer pas par pas, j’ai bien entendu commencé par quelque chose de simple : gravure d’un éclair sur une petite boîte en bois qui me sert de fourre-tout électronique.

Tout d’abord, on dessine la pièce sous Libre CAD (la vidéo que j’ai publié lors d’un précédent article m’a été très utile) :

librecad

Puis on l’importe dans heeksCAD :

heekscad

J’ai simplement demandé au soft de me faire une poche comme on dit, c’est à dire vider la zone que j’ai dessiné. Pour se faire la fraise parcours des parcours concentrique d’un pas inférieur au diamètre de la fraise (logique !).

Volontairement je ne rentre pas trop dans les détails, n’étant pas du tout encore un expert dans la manipulation de ces logiciels, je ne pourrai pas en dire plus que ce qui est dit dans la vidéo qui est au final assez complète pour prendre en main toute cette toolchain.

On génère le GCODE et on balance tout dans GRBL Controller :

grblcontrol

Résultat :

_DSC9043

_DSC9041

Alors comme j’ai pas encore la notion des différentes vitesses à adapter, j’y suis allé molo, trop d’ailleurs parce que ça fait du bruit dans le salon xD et au bout de 30 min ça devient très lourd … Surtout que ce bois était très léger donc j’aurais pu aller bien plus vite.  Je ferai mieux la prochaine fois !

Alors avant j’ai testé F-engrave, destiné à générer très simplement un G-Code pour graver un texte. Il est bof … Certaines commandes ont fait buguer GRBL, peu de police … Bref Libre CAD + HeekCAD me parait au final être une solution bien plus rigoureuse et pas forcement plus complexe.

J’ai également noté que mon plateau n’est pas parallèle au déplacement du chariot, du coup si on regarde bien ma gravure, elle est plus profonde à gauche qu’à droite. Quelques rondelles suffiront. Vous avez également surement noter dans la vidéo mon nouveau super système de fixation. Rudimentaire mais efficace et très peu coûteux 🙂

Au passage je vous donne mes paramètres sous GRBL :

$0=1280.000 (x, step/mm)
$1=1280.000 (y, step/mm)
$2=1280.000 (z, step/mm)
$3=50 (step pulse, usec)
$4=200.000 (default feed, mm/min)
$5=200.000 (default seek, mm/min)
$6=60 (step port invert mask, int:00111100)
$7=25 (step idle delay, msec)
$8=20.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=1 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=0 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=200.000 (homing feed, mm/min)
$20=200.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)

A bientôt !

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 🙂

Bonjour à tous !

Ça faisait quelques semaines que le projet me trottait dans la tête, j’ai décidé de passer à l’acte : construire un fraiseuse CNC.

Qu’est-ce que c’est ?

Une CNC c’est en gros, une perceuse pilotée par des moteurs pas-à-pas.  Ça permet sans aucune connaissance en menuiserie et autres artisanats de matériaux de fabriquer des pièces au dixième de millimètre.
Il vous suffit de faire un tour sur Youtube et vous verrez à quoi ça ressemble et ce qu’on peut faire avec.

Problème principal : c’est cher. L’entrée de gamme (hors électronique)  tourne autour de 200€ grand mini, mais ça grimpe très vite, la plupart du temps c’est mini 500€.

Mais quel intérêt pour un DIYer ?

Fabriquer des façades de boitier ultra propres et engravées, des bâtis moteur, des supports, des pancartes, de graver des PCB et de les percer … Bref la encore c’est l’imagination la principale limite.

Ma mienne

Le cahier des charges dans mon cas était le suivant :

– Un coût très bas (<100 euros hors électronique).
– Une fabrication qui nécessite le moins d’outils possible pour que chacun puisse la faire sans être fraiseur-tourneur depuis 20 ans …
– Des matériaux et pièces facilement trouvables.
– Une fabrication la plus simple possible, en minimisant les coupes notamment (moins de coupes = moins de chances de ne pas être aligné)
– Pas de contrainte sur la vitesse de fraisage. Je suis un DIYer, pas un pro 😉
– Le plus open-source possible.
– Capable de travailler de l’alu (en basse vitesse s’il faut).

Afin de remplir le dernier point, je suis parti sur une défonceuse. Pourquoi ? Vitesse de rotation (3500-22000 tr/min pour la mienne), et mécanique prévue pour les mouvements latéraux.
Et oui, les perceuses par exemple sont prévues pour des mouvements axiaux et on peut flinguer les roulements très vite et vive le jeu … J’ai pris celle de Brico-dépôt : 20€, 1000W et vitesse réglable !

Du coup ça implique un certain poids à prendre en compte dans le design. Le design justement : pour le guidage, j’ai choisi des glissières de tiroir. Le système de guidage, c’est souvent ce qui coûte un bras. Après recherche, c’est chez « l’entrepôt du bricolage » que j’ai trouvé mon bonheur : prix et qualité (enfin quand c’est neuf). Et elles vont dans les deux sens, alors que chez Mr Bricolage elles ne vont que dans un sens, ce qui limite l’amplitude de mouvement.

Pour le choix du matériau de base, je suis parti sur du médium : « solide » et prix contenu. Je mets des guillemets parce que c’est rigide, mais comme c’est de la poudre de bois compactée, ça s’effrite facilement. Alors comme des planches de 2m c’est chiant à transporter, j’ai cherché des plaques plus petites (en plus si j’ai pas à découper en largeur c’est une grosse partie des coupes en moins, et droite qui plus est). Mais souvent, ça douille … Spéciale dédicace à Casto ! Et chez Mr Bricolage ils ont des planches de 120×60 pour 13€, et les 60 cm c’est ce que j’avais prévu 😉

Après tergiversation, je suis arrivé à ça :

3D_2 3D_1

Alors j’ai la chance d’avoir un papa pas mal équipé niveau bricolage ! Scie à ruban et perceuse à colonne notamment. En fait j’ai pas eu besoin d’un matos ultra évolué, et tout ce que j’ai eu à faire est réalisable avec du matos encore plus simple (scie sauteuse ou circulaire par exemple). Et une perceuse à colonne, ça démarre à 50€ et ici ça suffit.

Les photos (en vrac) :

_DSC7956 _DSC7955 ???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? _DSC7944 ???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? ???????????????????????????????????? ????????????????????????????????????

Le vrai défi ça a été de tout couper/percer en prévision de l’alignement … Donc quand on peut, coller les pièces ensemble et faire un trou, comme ça après montage c’est forcement aligné 😉

J’ai choisi un montage cheville/encollage (surtout pour l’esthétique à vrai dire …) mais à refaire j’utiliserais de la bonne vieille vis (sans oublier les avants-trous néanmoins).

Pour les déplacements, ça sera une tige filetée avec des bagues qui serve en temps normale à les relier avec des moteurs pas-à-pas surporter grâce à des entretoises comme celles qu’on trouve dans les PC. Photos au prochain épisode.

Pour la défonceuse, il faut bricoler un peu ! Il faut virer toutes les parties métalliques pour alléger et by-passer le bouton poussoir (sur une défonceuse la mise en marche n’est pas verrouillable, en tout cas sur celle la) :

IMG_1318 IMG_1317 IMG_1316

Un peu de gaine thermo et hop tout propre 🙂 Au passage j’ai changé la prise « classique » pour compacter un peu.

J’ai pas pris de photo mais la variation de vitesse se fait via un bête gradateur. Pas impossible que j’en rajoute un piloter par l’Arduino plus tard … 🙂

Bilan des dépenses (pour le moment)

– Bois 3 x planches = 3 x 13 = 39€ Mr Bricolage
– Roulements x 3 = 3 x 1 = 3€ Ebay (moi je les ai récup sur des moteurs 230V usagés, y’en a chez Décathlon aussi)
– tige filetée x 2 = 2 x 2 = 4€ Brico dépôt
– Glissières = 9 + 5 + 5 = 19€ Entrepôt du bricolage
– boulons cylindriques = 3 x 2 = 6€ Brico dépôt
– Chevilles bois = 3€ Brico dépôt
– Colle à bois = 4€
– Défonceuse = 20€ Brico dépôt
= 98€ Objectif complete !

Côté électronique (et oué quand même)

Pour l’électronique j’ai beaucoup réfléchi : il faut savoir que piloter des CNC nécessite de maîtriser parfaitement le temps réel. Et oui si les moteurs ne sont pas parfaitement synchro ça fait un ovale au lieu d’un rond … Et apparemment (la ça dépasse mes compétences) Windows est une vraie daube dans le domaine (merci aux trolleurs de linuxiens de s’abstenir :p).

De plus, on trouve très peu de freeware pour piloter une CNC sur cet OS. Enfin dernier problème : les électroniques de pilotage utilisent pour la très grande majorité le port LPT, qui tend à disparaître.
Bref côté DIY tout ça c’est pas jojo. Et la du coup, pourquoi pas utiliser une Arduino non d’un chien ? Et nous y voila ! Mais avant le détail la théorie : pour fabriquer une pièce il faut tout d’abord dessiner sa pièce en 3D (typiquement en open source, freeCAD).

Ensuite il faut convertir cette objet en 3D en G-Code. Le G-code est le langage universel : grosso modo c’est un fichier texte qui dit « axe des X bouge de 200 mm à 5mm/min, axe des Z … » chaque ligne correspondant à une étape. Donc la il faut un autre logiciel pour réaliser cette étape (faut que j’étudie les solution open source la).

Et enfin il faut convertir ce texte en pilotage réel. Et la, soit on utilise encore un autre soft (certains logiciels rassemblent toutes ces fonctions, la plupart coutent plus cher que l’appareil … je dis pas que c’est volé bien au contraire, mais pour un DIYer ça fait bizarre) qui va piloter le LPT (le LPT se comportant alors comme des simples sortie digitales) ou bien on passe un microcontrôleur sur lequel on streamer le G-code.

Cette dernière solution présentent d’énormes avantages : plus de problème de temps réel, le µC est parfait pour ça, USB, et enfin multi-plateforme (et oui les Apple-ien, jusqu’à présent ils l’avaient dans l’os dans le domaine !)

Deux solutions existent alors :

– GRBL : un excellent article dessus  http://www.civade.com/post/2011/06/15/piloter-une-CNC-avec-Arduino-GRBL-moteurs-pas-a-pas
Cette solution me pose un problème : il faut mettre les mains dans le cambouis, il faut passer par AVR Studio si on veut essayer de comprendre et/ou modifier le code … Bref c’est pas user-friendly et j’ai pas le temps pour le moment d’apprendre un autre environnement.

– Librairie RepRap : http://reprap.org/wiki/G-code   ahaaaaa !! La ça me plaît 🙂 Une vraie lib Arduino ! J’ai pas approfondi à fond mais ça semble correspondre à mes attentes. Pour l’instant je mets ça de côté, je verrais quand tout le hardware sera opérationnel afin de pouvoir vraiment tester mais il semble déjà que les développeurs ont pensé à utiliser une carte SD … Donc même pas besoin de PC 🙂

Sur ebay on trouve pour 30-40 euros des cartes à base de TB6560 :

$T2eC16ZHJGoE9nuQgj-zBQGKJLWCfQ~~60_12

On en trouve beaucoup de bleu, apparemment elles sont pas terribles … Alors que les rouges corrigent la plupart des défauts. Celle la en plus a un port pour une télécommande manuelle. Même si j’aurais pu hacker directement le LPT, je voulais garder les deux si jamais en cas de problème je devais me rabattre sur des solutions plus « traditionnelles ». Hier j’ai réussi a comprendre qui fait quoi sur ce port car aucune doc n’est dispo (WTF?!) et le marquage sur le PCB est totalement faux … Mais ça a l’air de fonctionner, au prochain épisode je vous montrerai ça et les systèmes de guidages 😉

Bilan 

C’est quand même pas simple … Beaucoup d’heures de travail, beaucoup de recherches … Ça coûte cher ces bestioles mais on se dit que c’est pas du luxe parce quand on doit le faire soi-même il faut s’attendre à cravacher. J’espère qu’à la fin de l’aventure je vous aurez donné toutes les clés pour que ça soit beaucoup plus simple pour vous, j’étudie déjà d’autres solutions pour un bâti certes plus cher (et encore) mais beaucoup plus facile à monter.

EDIT : suite des aventures ici