Arduino en langage C

Portrait de jackie

bonjour à tous,

j'ai construit une fraiseuse numérique à 3 axes :) 

matériel utilisé : Arduino + Shield cnc + drivers A4988 + 3 moteurs Nema 17 ( https://www.adafruit.com/product/324

Ce que j'aimerai, c'est contrôler ma CNC avec un Arduino sans la bibliothèque GRBL qui existe déjà..

c'est de tout simplement écrire en langage C sur arduino pour contrôler ma CNC avec atmel studio. j'aimerai ne pas me baser sur la bibliothèque GRBL qui lui est compliqué car une vingtaine de biblio.

Si vous savez m'aider ?  

Cordialement

Jackie

Portrait de Walter

Salut,

Je pense que tu trouvera ici, des gens pour t'aider, pour contre ça sera sûrement moins simple que d'utiliser une librairie spécialisée, développée par des gens qualifiés en C et optimisation pour µC.

Par contre à tu commencer à piloter ta shield CNC(driver A4988) pour faire bouger tes moteurs d'un pas, a vitesse constante?

As définie ce que tu voulais faire exactement?
c'est à dire faire bouger ta fraiseuse à parir de Gcode ou d'un autre format de commande, ou autre chose ?

As tu des question, ou bloque tu ?

Portrait de Manoé

Jackie ex yass77  tu nous prends pour qui là, tu as déjà fais un post sur ce même sujet mais avec un autre pseudo !

https://les-electroniciens.com/discussions/programmation-en-c-pour-une-cnc

Portrait de jackie

Bonjour manoé,

alors là pas du tout, je vous assure que ce n’est pas pas moi « yass7 »

effectivement nous avons à peu près même projet non c’est pas moi 

Portrait de Walter

Au moins c'est  à base d'atmel et pas un sombre µC :)

Du coup jackie tu as des réponse à mes questions?

Portrait de Manoé

Étant possesseur de deux CNC  je peux affirmer que vous n'arriverez jamais à réaliser des usinages aussi précisément qu'avec une carte Mach 3 et les softs qui vont avec. J'ai vu fonctionner des CNC en GRBL c'est loin d'être génial !

Le bon système c'est Cambam + Mach3 en français ! Mais si c'est pour un truc scolaire ...

Portrait de jackie

Walter : oui j'ai des réponses haha..

"Par contre à tu commencer à piloter ta shield CNC(driver A4988) pour faire bouger tes moteurs d'un pas, a vitesse constante? "  

oui oui tous ça c'est fait avec le GRBL  (ça fonctionne plutôt bien d'ailleurs) mais j'aimerai faire mon propre programme pour que j'apprenne aussi parce que prendre un truc tous fait, je n'aime pas trop et puisque je suis novice en programmation voila voila et du coup, de mon coté j'apprend un peu a programmer (tuto, cours, youtube etc)  mais pour ce que je veux faire je ne sais pas du tout par ou commencer et ni par quoi.. J'ai tout de même regarder les biblio GRBL et ça fait peur hahah

"c'est à dire faire bouger ta fraiseuse à parir de Gcode ou d'un autre format de commande, ou autre chose ?"

a par contre, je ne savais pas qu'on pouvait utiliser un autre format de commande que le Gcode. Je pensais que CNC = Gcode pour la contrôler... Si tu as d'autre solution a me proposer pour facilité le programme, je suis pour :D  .. ah oui et pour le logiciel j'utilise bCNC et si je ne dis pas de bêtise il ne travail qu'avec le Gcode.  

Autre chose encore, je sais qu'i existe des programmes tout fait en python et on m'a dit que python était un langage de programmation assez facile.. Du coup, je voulais savoir si en écrivant un programme en python et ensuite le convertir en C  ? 

Portrait de jackie

Manoé : Ce n'est pas du tout un projet scolaire mais plutôt un projet personnel.

Concernant Cambam, c'est intéressant je vais tester ce logiciel car moi perso, j'utilise Inskape qui lui est un peu compliqué aussi pour transformer le fichier en Gcode mais qui est plutôt efficace.

et pour mach3, en faisant un peu de recherche ça ne m'attire pas tant que ça honnêtement.. Peut être pour plus tard  mais merci pour l'idée ! :) 

Portrait de Manoé

Cambam c'est pour faire la gamme d'usinage inkscape c'est pour dessiner rien à voir et mach 3 c'est le top !

De plus pour faire des pièces autrement que 2D avec Inkscape je te souhaite bien du plaisir ainsi que les softs à base d'Arduino.

Tu as déjà utilisé une CNC ?

Avec Mach 3 tu as les accélérations automatiques, les limites XZ et Z par logiciel, le Z 0 automatique, le calage en X et Y automatique enfin tu fais ce que tu veux !

Un dernier Logiciel te permet de vérifier ta gamme d'usinage par simulation et de détecter les risque de casse outils c'est CutViewer Mills ! Je sais que cela peut te paraître compliqué mais c'est comme tout quand tu as mis le doigt dedans ...

Portrait de Walter

oui oui tous ça c'est fait avec le GRBL

Non je parle sans la librairie, puisque tu ne veux pas l'utiliser.
C'est justement par là qu'il faut commencer pour piloter un CNC, faire bouger un des moteurs, d'un pas, puis à vitesse constante, puisse dans un sens et son inverse.
Après il y a plusieurs façon de faire, d'abords apprendre le langage avec des choses simples, led, chenillard, capteur de température.
Ou commencer directement avec du lourd et le pilotage d'un moteur sans utiliser de délais ou autre cochonnerie bloquante.

Oui, il existe d'autre langage de commande que gcode, mais c'est anecdotique pour les amateurs.
La question comme tu n'utilise pas de librairie qui lit le gcode pour appliquer le mouvement correspondant, tu devra l'implémenter toi même si tu veux prendre n'importe qu'elle fichier d'un logiciel ou d'internet.
Mais si tu veux uniquement appliquer des primitives par exemple, tu peux faire ton propre langage de commande.
Mais visiblement tu veux pouvoir utiliser des applications standards, donc il faut que tu implemente un parser de gcode.

C'est possible que tu trouve des convertisseurs pythons => C, mais je ne pense pas qu'il va te générer du code C compatible avec ton arduino.
Pour le coup, toi qui trouve que GRBL  est trop compliqué, je ne suis pas sûre que cela fasse ton bonheur.

Portrait de Manoé

Walter je ne sais pas si tu as relu ce que tu as écrit. Si oui je pense que tu dois être un des rares à te comprendre !

Portrait de jackie

j'allais justement répondre mais je me suis dis... heu okey hahaha

Portrait de Walter

Oui, je me suis relus et ça me parait plutôt claire :'(

Mais je ne m'offusque pas si on me demande des éclaircissement sur ce que j'ai voulu dire :)
Donc jackie, dis moi ce que tu n'a pas compris et n'hésite pas à poser des questions.

Car là du coup difficile d'avancer avec un "heu okey hahaha"

Portrait de Jetfuzz

Walter.

Clair pour moi aussi.
Pour ma part j'utilise Galaad et un arduino avec grbl, la carte de puissance est de mon cru.
et vraiment pas de soucis.

Jetfuzz
 

Portrait de Walter

Merci Jetfuzz ;)

Portrait de Manoé

Ok Walter et Jetfuzz on n'a pas le même français certainement !

Portrait de Walter

C'est possible après je ne prétend effectivement pas non plus faire de la littérature :)
J'essaierais d'être plus claire la prochaine fois, mais c'est difficile de parler de ses sujets sans faire des posts de 4km de long, déjà que je le trouvais horriblement long.

Portrait de jackie

Bonjour, 

voila j''ai tester mes moteurs avec ce code (https://howtomechatronics.com/tutorials/arduino/how-to-control-stepper-motor-with-a4988-driver-and-arduino/) mais bon encore une fois c'est avec le langage Arduino et ce n'est pas en C :(

enfaite, je suis vraiment bloquer sur le fait d'écrire un programme.. 

Chaque jour, je suis la devant atmel studio mais je n'avance pas :(

Portrait de Walter

Pourquoi dis tu que ce n'est pas du C ?
Le code que tu montre est du C/C++

Il faut que tu sois plus précis, parce que là c'est comme si tu disais, aidait mon je n'arrive pas à aller a la campagne.

Que essaye tu de faire précisément dans ton logiciel et quel code utilise tu pour ça.
As tu essayé de faire comme je te l'avais conseiller quelque chose de très simple comme faire clignoter une LED ?
Si tu n'y arrive pas à quel endroit bloque tu?
As tu suivi des tutos/cours de ce genre ?

Portrait de jackie

bonsoir, 

désolé de donner une réponse que maintenant mais j'étais en vacances :) 

Du coup, voila en faisant un peu de recherche sur le net, j'ai trouvé un programme qui me permet d'interpreter et de driver les moteurs mais il y a un seul hic !  Le seul soucis c'est que je ne sais pas vérifier si il fonctionne ou pas car je n'ai pas de biblio GRBL dans le programme. Du coup, je ne sais pas contrôler ma CNC avec UGS par exemple vu qu'il ne demande que du GRBL. Du coup, je ne sais pas comment faire pour contrôler ma CNC via une interface. si vous avez une idée de comment faire ?

Portrait de jackie

Voici le code que j'ai trouvé :)

Cordialement 

Portrait de Walter

J'ai du mal a comprendre ou tu veux en venir.
Pourquoi ne pas utiliser GRBL, pour utiliser une autre librairie de contrôle ?
Quel est le ton but en utilisant un autre programme que tu ne maîtrise pas plus que GRBL?

Sinon le code que tu as fournis, écoute sur la liaison série des commandes g-code pour l'appliquer sur tes moteurs.
Donc que ce passe t-il si ton programme ugs envoit du gcode sur la liaison série de ton arduino?
Au pire il faudrait rajouter Serial.println("start"); avant process_string(Word, serial_count); pour voir ce qu'envois le programme ugs à l'arduino.

De même as tu essayer d'envoyer des commandes g-code sur la liaison série ?
qu'as tu essayer en fait ?