Maquette CNC low cost

Bonsoir,
Plusieurs sujets de discussions sur la CNC sont actuellement actifs sur le forum. Les tests avec ce type d'équipement présentent souvent les inconvénients suivants :

  • coût important de la partie mécanique et la partie commande de puissance nécessitant un étalement des dépenses,
  • la CNC est parfois éloignée du lien de développement nécessitant de nombreux aller/retour,
  • difficulté de faire des tests sans les actionneurs importants (moteurs PAP, drivers PAP, broche d'usinage, etc...)
    Pour palier à ces inconvénients, j'ai imaginé une maquette de CNC regroupant tous les actionneurs de la CNC mais de faibles puissances et à un coût modique. (Peut être une CNC pour Ken - référence à une autre discussion :))

Première partie :

La première partie porte sur la simulation des axes (X, Y, Z et/ou A). Dans les CNC les axes sont pilotés par un moteur PAP associé à son driver. Les rotations des PAP sont effectuées par l'intermédiaire des entrées du drivers (PAS, DIRECTION et ENABLE).
Pour arriver à une solution très économique, j'ai opté pour un moteur pas à pas unipolaire qui se pilote plus facilement qu'un moteur bipolaire.

La réalisation se limitera à la réalisation d'un permutateur pour une commande bi-phase. Il est possible de faire un permutateur pour une commande en demi-pas mais il sortirait de la simplicité et surtout ferait appel à plus de composants.
Pour simuler nos axes une commande par pas entier est largement suffisante.


Le rôle du permutateur est de délivrer 2 signaux en quadrature (déphasage de 90°) et 2 autres signaux qui sont en opposition de phases (déphasage de 180°).
Les quatre signaux obtenus pilotent alors l'électronique de puissance propre à chaque moteur.

Ce type d'interface (moteur et étage de puissance) est un classique du monde Arduino et se trouve pour moins de 2 euros du côté où le soleil se lève.
Il nous reste à créer l'interface qui permet de transformer nos signaux PAS et DIRECTION en permutateur. La notion de pas peut être assimilée à la notion d'horloge. D'où l'idée d'utiliser de classiques bascules (D, J-K ou autres consœurs...).
Comme ces bascules offrent simultanément deux sorties complémentaires (Q et Q), bingo, déjà la moitié du travail d'effectué.
Maintenant, il nous reste à définir le signal qu'il faut appliquer sur les entrées D des bascules. Un petit rappel sur les bascules, la sortie prend l'état de son entrée lors de la réception du front d'horloge.
Dans le sens de rotation --> "c" est issu de "b" et "a" est issu de "c" ce qui nous donne :
Ea = c . DIRECTION et Ec = b . DIRECTION
Dans le sens de rotation <-- "a" est issu de "d" et "c" est issu de "a" ce qui nous donne :
Ea = d . DIRECTION\ et Ec = a . DIRECTION
soit :
Ea = (c . DIRECTION) + (d . DIRECTION)
Ec = (b . DIRECTION) + (a . DIRECTION)
Si l'on veut traduire ces équations avec des circuits logiques, il nous faudra 4 portes ET, 2 portes OU, 1 porte NON et 2 bascules D. Bref pas très économique !!!
Si l'on exploite la particularité que les sorties a et b sont complémentaires ainsi que c et d, nos équations deviennent :
Ea = (d\ . DIRECTION) + (d . DIRECTION)
Ec = (a\ . DIRECTION) + (a . DIRECTION)
Miracle, c'est l'équation du OU EXCLUSIF (circuit va et vient de l'électricien)

Maintenant notre schéma de commande se réduit à 2 bascules D (CD4013 en contient 2) et 2 ou exclusif (CD4070 en contient 4).
Comme il reste 2 ou exclusif non utilisés, on va les utiliser pour réaliser notre entrée ENABLE.

Finalement notre driver de moteur PAP compatible CNC se réduit à :

  • 1 x CD4013 (0,50 €)
  • 1 x CD4070 (0,50 €)
  • 1 patine Moteur PAP + ULN2003 (2,00 €)
  • un peu de divers (1,00 €)
    Soit un axe pour 4,00 €, il va être difficile de faire moins onéreux :wink: (4 axes opérationnels pour les tests pour 16,00€)

Prochaine étape : la réalisation de la simulation de la broche (moteur DC, pont en H, commande)
Le simulateur de broche pourra se piloter en vitesse variable dans les deux sens et disposera des entrées DIRECTION, VITESSE et ENABLE).
... à suivre ...

Re,
J'ai testé ce schéma (en attendant la livraison des chinois) avec des composants de fond de tiroir et de récupération.
Le moteur pas à pas de 48 pas par tour avec une limite sur la courbe couple/fréquence d'environ 300 Hz (décrochement)
soit 0,16 s pour un tour, ce qui donne 6,25 tour/sec ou 375 tr/min
Pour une utilisation avec GRBL, il faudra adapté les paramètres du logiciel (variables) aux caractéristiques spécifiques des moteurs pas à pas.
Mais cela fonctionne parfaitement.
@+

bonjour,
y a vraiment une bande de félés dans le coin :wink:
tu pourrais dire ou trouver ce genre de moteur en mode récup :slight_smile:

mais il faut bien rappeler que c'est une maquette et non pour une utilisation "normale", car sauter autant de pas ne pourra pas faire un bon job.

Salut infobarquee,

infobarquee:
bonjour,
y a vraiment une bande de félés dans le coin :wink:

On ne se refait pas :wink:

infobarquee:
mais il faut bien rappeler que c'est une maquette et non pour une utilisation "normale", car sauter autant de pas ne pourra pas faire un bon job.

Bien sur que ces une maquette pour faire de la simulation à moindre coût.
On ne saute pas des pas, on fonctionne juste en pas entier sans utiliser les micros-pas.
De nombreuses CNC fonctionnent de cette manière avec un réducteur mécanique à courroie crantée.
Pour revenir à mon essai, PAP en direct :
-1 moteur PAP (48 pas) couplé à un dispositif vis/écrou au pas de 2 mm donne une précision théorique de 0,04 mm
-1 moteur PAP (48 pas) couplé à un dispositif vis/écrou au pas de 5 mm donne une précision théorique de 0,1 mm
c'est loin d'être ridicule
@+

Bonsoir,
Pour faire suite à la première partie concernant les différents axes de la CNC, voici la broche !

Deuxième partie :

La deuxième partie porte sur la simulation de la broche de la machine. Dans les CNC la broche est pilotée comme les axes par un moteur (alternatif asynchrone, brushless, DC, etc...) associé à son driver. La rotation du moteur est réalisée par l'intermédiaire des entrées du driver (VITESSE, DIRECTION et ENABLE). La commande VITESSE peut être du type tout ou rien ou en mode PWM (vitesse variable)
Pour arriver, de nouveau, à une solution économique, j'ai opté pour un petit moteur 5V à courant continu de récupération (comme on peut les trouver dans jouets, imprimantes, etc...).
La commande de puissance du moteur est confiée à un circuit spécialisé (pont en H) qui est un classique du monde Arduino.

Ce type d'interface à base de L9110 se trouve pour moins de 2 euros du côté du soleil levant (double pont en H).
Cette carte comporte en plus des alimentations, 2 entrées (IA et IB pour la commande du moteur) et 2 sorties (OA et OB pour le pilotage du moteur).

Table de vérité du L9110.

On constate que si IA = IB le moteur est à l'arrêt et pour IA différent de IB le moteur est alimenté. IA = Low (L) et IB = High (H) le moteur tourne dans un sens et pour IA = H et IB = L le moteur tourne dans l'autre sens.

Pour pouvoir utiliser nos signaux VITESSE, DIRECTION et ENABLE (standard de la CNC), il y a lieu de prévoir une interface d'adaptation.

Si l'on étudie les différents chronogrammes de fonctionnement, on obtient les équations suivantes :

*IA = ENABLE\ + DIRECTION + VITESSE*
*IB = ENABLE\ + DIRECTION\ + VITESSE*

Remarque : ENABLE\ = ENABLE barre (pas facile à faire sur le forum)

Si un lecteur est intéressé par le cheminement pour arriver à ce résultat, je peux mettre la démonstration correspondante, il suffit de demander. :slight_smile:

Pas très économique l'utilisation de 2 portes OU à 3 entrées + 3 inverseurs de signaux (les OU à 3 entrées ne trainent pas forcément dans les tiroirs). Par contre, si l'on part du principe qu'une porte NAND peut facilement se transformer en ET ou OU en inversant la sortie ou les entrées. En triturant un peu les équations et après simplification, on obtient le schéma suivant :

Finalement notre driver de broche compatible CNC se réduit à :

  • 2 x 74LS00 ou CD4011 (1,00 €)
  • 1 patine L9110 (2,00 €)
  • 1 moteur DC 5V de récupération (ou 2,00€)
  • un peu de divers (1,00 €)
    Soit une broche entre 4,00 et 6,00 €, encore une fois un coût on ne peut plus raisonnable.

Pour l'instant le coût de notre simulateur de CNC se chiffre à :

  • axe X (4,00 €)
  • axe Y (4,00 €)
  • axe Z (4,00 €)
  • axe A (4,00 €)
  • broche (4,00 €)
    Total : 20,00 € (bien moins pour ceux qui font de la récupération ou les fonds de tiroirs):slight_smile:

Prochaine étape : la simulation des arrosages, des fins de courses, des boutons de commande.
... à suivre ...

Bonjour,
Une petite vidéo du fonctionnement de la broche (sens horaire et anti-horaire).
PWM par band de 0%, 25%, 50%, 75% et 100% + recherche limite de commande pour un PWM de 15%

Bonjour,
Des membres du forum sont-ils encore intéressés par cette rubrique ?
@+

Bonjour,
Après de nombreux tests de logiciels (GRBL et autres) et pour limiter le capharnaüm sur la table de travail, il fallait mette un peu d'ordre dans ma maquette.
En cours de réalisation :

@+

a quoi vont te servir les engrenage avec fin de course ?
est ce un band d'essai ?

Bonjour,

Heloderma-kris:
a quoi vont te servir les engrenage avec fin de course ?
est ce un band d'essai ?

La grande roue dentée simule le déplacement (env 180 mm) et les fins de course sont nécessaires pour simuler la position retour home sans intervention sur les BP.
Actuellement les fins de courses sont remplacés par des BP et la simulation comparative n'est pas très représentative.
@+

c'est donc un banc de simulation , car je me disais que déporter tout les deplacements des axes sur un paneau aller etre galère! :slight_smile:
beau travail.

Bonjour,
En marge de l'interface hard, j'avais besoin, pour des besoins d'initiation à l'utilisation des CNC, d'expliquer le principe de fonctionnement de la programmation "gCode". Une application visuelle de l'interprétation des blocs gCode ou des fichiers gCode est plus attrayante que sa version texte.
Le programme traduit en éléments clairs les différentes actions des mots contenus dans un bloc.
A terme, les affichages moniteurs seront remplacés par leurs équivalents commandes des actionneurs. Il sera alors plus simple de comprendre, par exemple, la commande des moteurs PAP en X, en Y et en Z pour une trajectoire rectilignes ou circulaire.
Le soft est prévu pour être utilisé sur une carte Arduino Mega (mais possible sur une Uno).
L'interface IHM se fait via un logiciel terminal série suportant le contrôle de flux XON/XOFF (la configuration est décrite au début du fichier interp2.ino).

Le bloc G00 X10 Y20 Z-5 saisi en entrée du terminal série affichera :

Interpreteur GCode
G00 X10 Y20 Z-5
OK

deplacement rapide
X = 10.00 mm
Y = 20.00 mm
Z = -5.00 mm

Le bloc G00 X0 Y0 Z10 (deplacement) saisi en entrée du terminal série affichera :

G00 X0 Y0 Z10 (deplacement)
OK

commentaire : (deplacement)
deplacement rapide
X = 0.00 mm
Y = 0.00 mm
Z = 10.00 mm

De même l'envoi du fichier envoi.txt donnera :

Interpreteur GCode
G00 X10 Y20 Z10
M03
G01 Z-2
G91
G01 X10 Y-15
G01 Z12
M05
G90
M02
OK

deplacement rapide
X = 10.00 mm
Y = 20.00 mm
Z = 10.00 mm
OK

broche ON sens horaire
OK

Interpolation lineaire (vitesse travail)
X = 10.00 mm (pas de changement)
Y = 20.00 mm (pas de changement)
Z = -2.00 mm
OK

Deplacement relatif
OK

Interpolation lineaire (vitesse travail)
deltaX = 10.00 mm
X = 20.00 mm
deltaY = -15.00 mm
Y = 5.00 mm
Z = -2.00 mm (pas de changement)
OK

Interpolation lineaire (vitesse travail)
X = 20.00 mm (pas de changement)
Y = 5.00 mm (pas de changement)
deltaZ = 12.00 mm
Z = 10.00 mm
OK

arret broche
OK

Deplacement absolu
OK

fin de programme

Dans la version actuelle, on traite les mots suivants :
(, N, F, S, X, Y, Z, I, J, P,
G00, G01, G02, G03, G04, G90, G91,
M02, M03, M04, M05, M07, M08, M09, M30
Ce bout de programme peut également être utilisé pour le test des exemples du topic Initiation CNC

A suivre ...

interp2.zip (5.16 KB)

Tu nous fait un GRBL a ta sauce :grin: