CNC et carte ARDUINO

  • Auteur de la discussion carlos78
  • Date de début
C

CreusetLab

Nouveau
Bonjour,

Actuellement dans la conception d'une future CNC (usinage bois, pmma, tout matériaux tendres), j'hésite vraiment entre un système sous mach 3 et un système type arduino. Le monde de l'arduino nous tente bien, car très polyvalent et cela collerait toute à fait avec notre structure associative.
Vers quelle type de carte et driver pourriez vous me conseiller. La mega 2560 est t-elle intéressante pour notre futur CNC (x 1200 voir 1500, y 850 et z 150 mm) ?
Aussi, j'y vois un écart de prix impressionnant entre des kits contrôleur de chez Soprolec et ce que l'on trouve sur aliexpress.

Enfin, j'ai pu lire ici que l'arduino n'était que très peu adaptée à la gestion d'une CNC. Dans quelle proportion ? Au niveau logiciel ? GRBL semble avoir sensiblement progressé..
Merci pour votre aide.
 
Dernière édition:
J

Jibeji

Nouveau
Bonsoir,
Entre Mach3 (qui je le rappelle est payant), la complexité de trouver ou d'ajouter un port parallèle, et un Arduino à 15 € (une Mega2560 n'apporte rien de plus) chargé avec un logiciel libre dont l'auteur est à l'écoute des utilisateurs, mon choix est vite fait.
Tant que l'on reste sur 3 axes, GRBL me semble être un très bon compromis.
 
C

CreusetLab

Nouveau
Merci pour ta réponse Jibeji.

As tu une idée d'un bon revendeur situé en France ? Il y en a tellement qui surfent sur la mode arduino que j'ai du mal à m'y retrouver et avec la petite gue guerre entre les deux fondateurs de ces cartes, cela n'arrange pas l'affaire...
 
Dernière édition:
C

chtipanda

Apprenti
est qu avec linux cnc on peut piloté cette carte
ma carte et mon alim cnc viennent de rendre l âme
du coup j hesite a remettre la meme chose
 
J

Jibeji

Nouveau
@CreusetLab,
N'importe quelle Arduino Uno compatible fera l'affaire. J'ai utilisé GRBL sur une Uno originale et une Uno compatible sans constater aucune différence.

@chtipanda,
Je ne sais pas, je n'utilise pas linux cnc mais Universal GCode Sender (appli java toutes plateformes)
 
D

decosign

Apprenti
s'il vous plait les paramétres a changer sur marlin arduino carte mega 2560 pour piloter une cnc 3 axes X.Y.Z guidé par des vis sans fin pich5mm et 16mm de diamètre.
j'ai des variations de vitesse dans l'axe X, et je ne sais pas ou es le problème
#define DEFAULT_AXIS_STEPS_PER_UNIT {640,640,640,80} est déja calculé .
cordialement
 
D

decosign

Apprenti
par ex dans un tracé d'un carre de 20/20 cm dans le sens X il commence à tracer normale quand il arrive au milieu vers 10cm il fait un petit arrêt après marche lentement - arrêt - lent - arrêt -lent jusqu'au la fin de 20 cm après vers le sens Y il trace 20cm normale sans arrêt
 
D

decosign

Apprenti
ton email pour t'envoyer un vidéo pour voir c'est mieux
 
F

fabrice c

Compagnon
met tes vidéos sur youtube et poste le lien ici
 
D

decosign

Apprenti
Voila le sens X ou il y'a le probléme : Voila le sens Y ou je vois normale sauf il marche lentement dés le début et à la fin de course :
 
C

chtipanda

Apprenti
c est pas pour une imprimante marlin
tu a fait comment ?

sinon je pense a un dur mecanique
si tu le fait dans l autre sens c est pareil de gauche a droite ?
 
D

decosign

Apprenti
enfin le problème est résolu avec ces paramétrés
merci bcp

//// MOVEMENT SETTINGS
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {15*60, 15*60, 4*60, 0} // set the homing speeds (mm/min)

// default settings

#define DEFAULT_AXIS_STEPS_PER_UNIT {640,640,3200/1.25,80} // default steps per unit for Ultimaker
#define DEFAULT_MAX_FEEDRATE {200,200,5,25} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {20,20,80,800} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.

#define DEFAULT_ACCELERATION 5000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 1000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
 
D

decosign

Apprenti
Bjr
y'a t'il un programme mieux que Repetier-Host ?
 
M

Moi37

Compagnon
1) installer la librairie : sur le site : https://github.com/LETARTARE/Grbl-xx_with_Arduino se trouve un fichier unique zip. Ce fichier contient toutes les versions de grbl pour UNO et MEGA2560. Chaque version a son propre répertoire. Pour la UNO la dernière version est la Grbl9fUno.
Pour installer cette version, Il faut décompresser son répertoire dans : C:/programmes/arduino/libraries.
C'est tout ce qu'il ya à faire pour installer la librairie.

2) Ensuite :

-------> Rappel de la Page 1 de ce post :
PROGRAMMATION DE LA CARTE ARDUINO MEGA 2560 ARDUINO UNO
...
- Lancer normalement l'environnement de développement arduino.
- Charger le sketch qui se trouve maintenant dans l'onglet : "Fichier / Exemples / Grbl82Mega2560 / Grbl82Mega2560.ino Grbl9fUno / Grbl9fUno.ino "
- Surprise : Ce sketch pour un non initié comme moi parait VIDE. Il n'en est rien.
- Raccorder la carte arduino (vérifier si le port COM est OK)
- Téleverser comme d'habitude ce programme sur la carte
(sa taille est de 25 688 octets).
C'est fini. La carte raccordée sur un port USB du PC est maintenant prête à donner des instructions aux drivers ...

DIALOGUER AVEC LA CARTE ARDUINO MEGA 2560
...
- Installer la Version 3.5.1 de Grbl Controller Windows
- Lancer le programme Grbl Controller 3.5.1 ( en français)
- Choisir le port de communication (COM3 pour moi), la vitesse de transmission à 57600 bauds. Sur l'onglet "Outils / Options" cocher la case "valider le mode 4 axes"
- Raccorder la carte arduino au PC et appuyer sur la touche "OUVRIR"
Le dialogue s"établi avec la carte ... On peut tester immédiatement les commandes manuelles et un programme Gcode
.


J'y suis arrivé ... donc tu vas y arriver.

Carlos


Bonjour,
Ce sujet m’intéresse, et je suis super content d'être tombé sur le post de Carlos, tout trouver en un seul téléchargement est une aubaine, sauf que.....
Lorsque j'arrive sur la page donnée citée, je tombe bien sur un lien de téléchargement qui n'aboutit qu'à un "dézippage" vierge...

https://github.com/LETARTARE/Grbl-xx_with_Arduino

Please, help me!!!!!!
Ceci sera ma seule intervention en anglais, car je n'y arrive vraiment pas dans cette langue, chinoise pour moi....
 
L

LETARTARE

Compagnon
Bonjour,
j'ai déplacé tous les fichiers dans 'tags' car ces fichiers sont obsolètes (Août 2014).
Si vous désirez malgré tout les récupérer :
- depuis la page d'accueil allez dans '1 release' puis cliquez sur 'Grbl-Old' ensuite choisissez le fichier qui vous intéresse pour le téléchargement.
- une fois sur votre ordinateur en le décompressant vous aurez toutes ces vielles versions.

Toutes les versions officielles se trouvent en https://github.com/gnea comme indiqué par @Jibeji .

J'ai ajouté une version 4 axes (Août 2017), basée sur l'officielle en https://github.com/LETARTARE/grblQ-Mega-4axes.

Bonne continuation
 
Dernière édition:
M

Moi37

Compagnon
Merci pour toutes ces précisions.
Je croyais cet univers plus simple, donc, au lieu de mettre la charrue avant les bœufs, je pense que j'ai un gros travail de vulgarisation à faire avec cet outil Arduino.
Certes, ça parait bien passionnant, mais pour moi, c'est encore trop inconnu.
En première étape, je voudrais faire un indexage type table rotative de dimensions modestes, mais avant d'arriver à ça, je vais avoir à rejouer l’élève de base.
Le projet est de faire un indexage angulaire, le verrouillage en rotation évitant la réversibilité pourrait être confié à un blocage mécanique car je souhaite m'affranchir d'un système a roue et vis sans fin. Seule une démultiplication du pas à pas pour le soulager serait retenue par couple poulies/courroie.
Le but étant également de produire un petit ensemble compatible avec le format de ma BF20 tant en courses qu'en capacités. Toujours dans le même but de faire petit (donc relativement frêle) la prise de pièce serait assurée par pinces ER et non par un lourd et volumineux mandrin 3 mors
 
L

LETARTARE

Compagnon
@Moi37
je n'avais pas fait attention à votre localité : Tours, que de souvenirs de mes jeunes années à Chargé !

Pour ce qui est de vos étapes sur Arduino , avez-vous déjà réussi à utiliser 'Grbl' officiel (3 axes X,Y,Z), soit sur 'Uno' soit sur 'Mega2560' ?
 
M

Moi37

Compagnon
Euhhhh....
A mon niveau actuel avec ces petites platines bleues, je fais clignoter des LED.........
Pour mes jeunes années, elles se sont écoulées près de Nancy, je connais finalement assez peu la région de Tours
 
V

v tec

Compagnon
bonsoir tout le monde

j'ai une machine autonome a faire
habituellement j'utilise des cartes de gestion autonome soprolec (350 euro la carte), qui gere parfaitement des axes moteurs entrée et sortie

mais pour ce projet , j avais besoin d'une interfacegraphique basique avec bouton, j ai donc pris un arduino uno

mon code de l automate est fonctionnelle, mais j'ai besoin de déplacer avec précision des moteurs pas à pas, et c'est là que tout se complique

autant ma carte autonome coute cher, mais est super facile pour les moteur pas à pas, mais y couplet un ecran, devient vraiment trop cher, (700 euro l'interface tactile, dont je n ai pas l utilité)

autant un arduino avec ecran, coute peu cher, mais est une usine a gaz pour juste envoyer un signal step/dir afin de piloter n'importe quel driver externe


est ce que quelqu'un pourrait me dire si il serait possible de piloter de façon autonome une sucession de deplacement avec 1 moteur pas à pas, et en ayant des courbe d'acceleration pas trop elevé (pour eviter de décrocher)

pour que je sache si je dois continuer d'investir du temps dans l'arduino ou non

merci
 
G

gralo

Compagnon
bonsoir

avec la librairie accel stepper
http://www.airspayce.com/mikem/arduino/AccelStepper/

Elle marche très bien et facile à mettre en œuvre.


pour le coder la mano j'avais utilisé l’interruption d'un timer.
afin de ne pas utilisé de "delay" dans mon porgramme. Ceci sans phase d’acceleration


////////////////////////////////////////////////////////////////////////////// TIMER 2 /////////////////////////////////////////////////////////////////////////////////////////////////////////
// Initialise le Timer 2 pour déclencher les interruptions à intervalle régulier
TCCR2A = 0; //default
//TCCR2B = 0b00000110; // clk/256 est incrémenté toutes les 16uS WGM22 est le bit 3 du registre TCCR2B Les bits 0 à 2 de ce même registre sont appelés CS20 , CS21 et CS22 et servent à régler le prédiviseur
TCCR2B = 0b00000111; // clk/1024 est incrémenté toutes les 64uS
TIMSK2 = 0b00000001; // TOIE2 Pour autoriser une interruption par le timer, il faut que le flag TOIE2 qui est le bit 0 du registre TIMSK2 soit à 1
sei(); // autorise les interruptions
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


if (pos_actu != pos_order)
{
TIMSK2 = 0b00000001;
}
else {
TIMSK2 = 0b00000000;
}


////////////////////////////////////////////////////////////////////////////////////// routine d'interruption du timer//////////////////////////////////////////////////////////////////

ISR (TIMER2_OVF_vect)
{
//pour diviseur 1024
// 256-6 --> 250X64uS = 16000uS = 16mS
// Recharge le timer pour que la prochaine interruption se déclenche dans 16mS
TCNT2 = 256 - 6; // Chargement du timer

if ( pos_actu != pos_order) {

if (pos_actu < pos_order)
{
digitalWrite (dir, HIGH);
pos_actu++;
}
if ( pos_actu > pos_order)
{
digitalWrite (dir, LOW);
pos_actu--;
}

pos_aff = pos_actu / 1;

digitalWrite (pulse, !digitalRead(pulse));
}
}
 
Dernière édition:

Sujets similaires

M
Réponses
6
Affichages
1 112
MitchCanon
M
T
Réponses
2
Affichages
24 879
Tristan l'apprenti
T
Haut