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 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 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 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 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 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 ?