{"id":1143,"date":"2019-05-13T16:32:04","date_gmt":"2019-05-13T14:32:04","guid":{"rendered":"https:\/\/www.aacmb.fr\/wordpress\/?page_id=1143"},"modified":"2022-07-08T09:26:23","modified_gmt":"2022-07-08T07:26:23","slug":"projet-cnc-le-logiciel","status":"publish","type":"page","link":"https:\/\/www.aacmb.fr\/wordpress\/projet-cnc-le-logiciel\/","title":{"rendered":"Projet CNC &#8211; Le logiciel"},"content":{"rendered":"<p>Avant de pouvoir utiliser le Shield CNC, un microprogramme de contr\u00f4le doit \u00eatre install\u00e9 dans l&rsquo;Arduino. Ce microprogramme servira d&rsquo;interface en interpr\u00e9tant les GCodes envoy\u00e9s \u00e0 la carte Arduino, afin de les traduire en signaux compatibles avec les moteurs.<\/p>\n<p>Une solution bien aboutie est \u00abGRBL\u00bbl. Il s&rsquo;agit d&rsquo;un logiciel open-source qui optimis\u00e9 pour Arduino.\u00a0 Il accepte les codes g conformes aux normes et a \u00e9t\u00e9 test\u00e9 avec la sortie de plusieurs outils de FAO sans aucun probl\u00e8me. Les arcs, les cercles et les mouvements h\u00e9lico\u00efdaux sont enti\u00e8rement pris en charge, ainsi que tous les autres g-codes principaux.<\/p>\n<p>Une copie de ce logiciel peut-\u00eatre t\u00e9l\u00e9charg\u00e9 depuis le site\u00a0<a href=\"https:\/\/github.com\/grbl\/grbl\">https:\/\/github.com\/grbl\/grbl<\/a>.<\/p>\n<h5>Installation de GRBL<\/h5>\n<p>Pour installer GRBL dans l&rsquo;Arduino, vous devez disposer de l&rsquo;IDE Arduino, logiciel Open source, disponible \u00e0 cette adresse\u00a0<a href=\"https:\/\/www.arduino.cc\/en\/main\/software\">https:\/\/www.arduino.cc\/en\/main\/software<\/a><\/p>\n<p>Apr\u00e8s avoir d\u00e9zipp\u00e9 le fichier GRBL t\u00e9l\u00e9charg\u00e9, vous devez disposer du fichier\u00a0<em><strong>grblUpload.ino.<\/strong><\/em><\/p>\n<p>Il faut ouvrir ce fichier dans l&rsquo;IDE Arduino.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1164\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_04-e1557918002202.jpg\" alt=\"\" width=\"500\" height=\"420\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_04-e1557918002202.jpg 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_04-e1557918002202-350x294.jpg 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Une fois la carte Arduino connect\u00e9e et identifi\u00e9e sur votre machine, il suffit de cliquer sur\u00a0<em><strong>compile\/upload\u00a0<\/strong><\/em>pour proc\u00e9der au transfert du microprogramme.<\/p>\n<p>En fin de transfert, vous devez recevoir le message <em><strong>done uploading.<\/strong><\/em><\/p>\n<p>Si tout c&rsquo;est bien pass\u00e9, vous pouvez cliquer sur <em><strong>Serial Monitor.\u00a0 <\/strong><\/em>Vous devriez obtenir l&rsquo;\u00e9cran suivant :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1166\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_05-e1557918261427.jpg\" alt=\"\" width=\"500\" height=\"375\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_05-e1557918261427.jpg 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_05-e1557918261427-350x263.jpg 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Si le message Grbl xxxxxxxx appara\u00eet, le microprogramme est correctement install\u00e9.<\/p>\n<h5>Premiers essais<\/h5>\n<p>Avant d&rsquo;aller plus loin, il peut \u00eatre utile de pouvoir tester \u00ab\u00a0en l&rsquo;\u00e9tat\u00a0\u00bb la chaine d\u00e9j\u00e0 construite. Il faut donc pouvoir injecter dans la carte quelques GCode.<\/p>\n<p>J&rsquo;utiliserais pour cela une solution open Source :\u00a0<strong><em>Universal GcodeSender.<\/em><\/strong><\/p>\n<p><em><strong>Universal GcodeSender<\/strong><\/em> est un transmetteur de G-Code multi-plateformes compatible GRBL bas\u00e9 sur Java. Il est t\u00e9l\u00e9chargeable \u00e0 l&rsquo;adresse suivante :\u00a0<a href=\"https:\/\/github.com\/grbl\/Universal-G-Code-Sender\">https:\/\/github.com\/grbl\/Universal-G-Code-Sender<\/a><\/p>\n<p>Une fois t\u00e9l\u00e9charg\u00e9, connectez la carte Arduino \u00e0 votre ordinateur<br \/>\net notez le port COM auquel il est connect\u00e9. Lancer ensuite <em><strong>UGC.<\/strong><\/em><\/p>\n<p>Vous devez arriver sur l&rsquo;\u00e9cran suivant :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1171\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_06-e1557919271136.jpg\" alt=\"\" width=\"500\" height=\"398\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_06-e1557919271136.jpg 500w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_06-e1557919271136-350x279.jpg 350w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Cliquez sur l&rsquo;onglet \u201cContr\u00f4le Machine\u201d. S\u00e9lectionnez le num\u00e9ro de port auquel votre carte Arduino est attach\u00e9e. S\u00e9lectionnez 115200 comme le d\u00e9bit en bauds \u00e9tant donn\u00e9 qu&rsquo;il s&rsquo;agit de la vitesse configur\u00e9e dans le micrologiciel \u00abGRBL\u00bb par d\u00e9faut. Cliquez sur le bouton \u00abOuvrir\u00bb pour lancer la communication. Vous devez avoir un message de confirmation de la connexion.<\/p>\n<p>Vous \u00eates maintenant pr\u00eat \u00e0 contr\u00f4ler le moteur pas \u00e0 pas XYZ connect\u00e9 \u00e0 la carte.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1172\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_07.jpg\" alt=\"\" width=\"484\" height=\"231\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_07.jpg 484w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_07-350x167.jpg 350w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/05\/cnc_07-300x143.jpg 300w\" sizes=\"auto, (max-width: 484px) 100vw, 484px\" \/><\/p>\n<p>Cliquez sur X + ou X- par exemple, le\u00a0moteur pas \u00e0 pas reli\u00e9 \u00e0 la borne X doit tourner !!!<\/p>\n<h5>Configuration de GRBL<\/h5>\n<p>Il reste maintenant \u00e0 configurer le logiciel afin de prendre en consid\u00e9ration les sp\u00e9cificit\u00e9s m\u00e9caniques globales de la machine.<\/p>\n<p>Pour lister les param\u00e8tres actuels de la machine, il suffit de taper, depuis la console $$. Vous devez obtenir la liste suivante :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1180\" src=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/06\/param_GRBL.jpg\" alt=\"\" width=\"359\" height=\"505\" srcset=\"https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/06\/param_GRBL.jpg 359w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/06\/param_GRBL-350x492.jpg 350w, https:\/\/www.aacmb.fr\/wordpress\/wp-content\/uploads\/2019\/06\/param_GRBL-213x300.jpg 213w\" sizes=\"auto, (max-width: 359px) 100vw, 359px\" \/><\/p>\n<p>Nous allons nous int\u00e9resser aux param\u00e8tres principaux (vitaux ??).<\/p>\n<h6>\u00a0Param\u00e8tres 100. 101 et 102<\/h6>\n<p>C&rsquo;est param\u00e8tres d\u00e9finissent le nombre de pas (des moteurs pas \u00e0 pas) n\u00e9cessaires pour parcourir une distance de 1 millim\u00e8tre sur l&rsquo;axe indiqu\u00e9. Le calcul est assez simple :<\/p>\n<p>Valeur = Nombre de pas (du moteur) pour faire 360\u00b0 \/ Pas de la vis sans fin (ou nombre de dents de la poulie x espace entre les dents de la courroie).<\/p>\n<p>Dans mon cas (et pour les 3 axes)\u00a0 :<\/p>\n<ul>\n<li>Moteur Nema 17 : 1,8\u00b0 par pas, soit 200 pas pour faire 360 \u00b0<\/li>\n<li>Entrainement direct par vis sans fin M8, pas 1.25.<\/li>\n<\/ul>\n<p>D&rsquo;o\u00f9\u00a0 Valeur = 200 \/ 1.25 = 160<\/p>\n<p>Pour obtenir un d\u00e9placement de 1 millim\u00e8tre, il faudra 160 pas de moteur !<\/p>\n<p>Pour mettre \u00e0 jour le param\u00e8tre, il suffit de taper :<\/p>\n<p>$num\u00e9ro du param\u00e8tre = nouvelle valeur.<\/p>\n<p>Dans mon cas (en th\u00e9orie) :<\/p>\n<p>$100 = 160<br \/>\n$101 = 160<br \/>\n$102 = 160<\/p>\n<p>Seulement, il y a un autre param\u00e8tre qui intervient. Lors de la configuration du Shield CNC, j&rsquo;ai choisi le mode 1\/16 pas, afin d&rsquo;avoir plus de couple.<\/p>\n<p>Du coup, il ne faut pas oublier de multiplier par 16 le r\u00e9sultat ci-dessus:<\/p>\n<p>$100 = 2560<br \/>\n$101 = 2560<br \/>\n$102 = 2560<\/p>\n<h6>Param\u00e8tres 130, 131 et 132<\/h6>\n<p>Ces 3 param\u00e8tres d\u00e9finissent les distances maximales pouvant \u00eatre parcourues sur chacun des axes. Il n&rsquo;y a ici pas de calcul \u00e0 faire, il suffit d&rsquo;entrer la longueur de d\u00e9placement en millim\u00e8tre. En th\u00e9orie, si les valeurs entr\u00e9es sont correctes, les d\u00e9tecteurs de fin de course devraient \u00eatre inutiles.<\/p>\n<h6>Param\u00e8tres 110, 111 et 112<\/h6>\n<p>Ces param\u00e8tres d\u00e9finissent les vitesses maximum de d\u00e9placement sur les diff\u00e9rents axes. Nous somme plus ici dans le domaine de l&rsquo;exp\u00e9rimentation. Il s&rsquo;agit de d\u00e9finir les vitesses de d\u00e9placement HORS TRAVAIL, c&rsquo;est \u00e0 dire les d\u00e9placements de repositionnement.<\/p>\n<p>Une vitesse trop lente fera perdre du temps. Une vitesse trop rapide risque de vous faire perdre des pas moteur.<\/p>\n<p>Il y a beaucoup d&rsquo;avis qui divergent sur de nombreux forum, les r\u00e9glages allant de 4000 \u00e0 14000.<\/p>\n<p>Des tests en commandes manuelles peuvent d\u00e9j\u00e0 donner une bonne id\u00e9e de la question.<\/p>\n<h6>Param\u00e8tre 22<\/h6>\n<p>Ce param\u00e8tre doit \u00eatre activ\u00e9 (valeur = 1) si vous avez c\u00e2bl\u00e9 des capteurs de fin de course (ce sera mon cas).<\/p>\n<p>Les param\u00e8tres suivants seront alors (et uniquement dans ce cas) \u00e0 valoriser !<\/p>\n<h6>Param\u00e8tres 24, 25, 26 et 27<\/h6>\n<p>Ces param\u00e8tres &#8211; lorsque les capteurs de fin de course sont activ\u00e9s &#8211; permettent de contr\u00f4ler\u00a0 la proc\u00e9dure de Homing (point de retour o\u00f9 X=0, Y=0 et Z=0).<\/p>\n<p>Cette proc\u00e9dure peut-\u00eatre importante, et n&rsquo;est pas le plus simple r\u00e9glage \u00e0 effectuer. On peut se passer de cette proc\u00e9dure, \u00e0 partir du moment o\u00f9 les G-Codes g\u00e9n\u00e9r\u00e9s seront exprim\u00e9s en coordonn\u00e9es relatives. Il suffira alors d&rsquo;effectuer un positionnement manuel des 0 avant usinage.<\/p>\n<p>La proc\u00e9dure de Homing va d\u00e9placer le portique sur X et Y d&rsquo;abord relativement vite, jusqu&rsquo;\u00e0 toucher le capteur de fin de course. Des mouvements plus lents alternatifs seront ensuite r\u00e9alis\u00e9s pour d\u00e9tecter le point exact de d\u00e9clenchement.<\/p>\n<ul>\n<li>Le param\u00e8tre 24 correspond \u00e0 la vitesse lente. 25 mm\/mn devrait \u00eatre une valeur correcte. Le but est d&rsquo;obtenir une localisation exacte et r\u00e9p\u00e9table \u00e0 chaque fois.<\/li>\n<li>Le param\u00e8tre 25 correspond \u00e0 la vitesse de d\u00e9placement rapide. Une vitesse trop \u00e9lev\u00e9e et votre portique risque de heurter les fins de course. Une vitesse trop lente va g\u00e9n\u00e9rer un processus trop lent. 500 \u00e0 600 mm\/mn pourraient \u00eatre de bons param\u00e8tres de d\u00e9part.<\/li>\n<li>Le param\u00e8tre 26 est la valeur en millisecondes de rebond \u00e9ventuel du signal \u00e9lectrique du capteur, si celui-ci n&rsquo;est pas filtr\u00e9 (\u00e0 ne pas n\u00e9gliger).<\/li>\n<li>Le param\u00e8tre 27 est la valeur de laquelle le processus de homing va se d\u00e9caler des fins de course, \u00e0 la fin du processus. Ceci veut dire que le \u00ab\u00a0z\u00e9ro\u00a0\u00bb m\u00e9canique (celui des fins de course) peut-\u00eatre diff\u00e9rent du \u00ab\u00a0z\u00e9ro pi\u00e8ce\u00a0\u00bb.<\/li>\n<\/ul>\n<p>Normalement, il ne devrait pas \u00eatre n\u00e9cessaire de toucher aux autres param\u00e8tres disponibles<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Avant de pouvoir utiliser le Shield CNC, un microprogramme de contr\u00f4le doit \u00eatre install\u00e9 dans l&rsquo;Arduino. Ce microprogramme servira d&rsquo;interface en interpr\u00e9tant les GCodes envoy\u00e9s \u00e0 la carte Arduino, afin de les traduire en signaux compatibles avec les moteurs. Une solution bien aboutie est \u00abGRBL\u00bbl. Il s&rsquo;agit d&rsquo;un logiciel open-source qui optimis\u00e9 pour Arduino.\u00a0 Il &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.aacmb.fr\/wordpress\/projet-cnc-le-logiciel\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;Projet CNC &#8211; Le logiciel&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[69],"tags":[],"class_list":["post-1143","page","type-page","status-publish","hentry","category-gravure-cnc"],"_links":{"self":[{"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/pages\/1143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/comments?post=1143"}],"version-history":[{"count":0,"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/pages\/1143\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/media?parent=1143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/categories?post=1143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aacmb.fr\/wordpress\/wp-json\/wp\/v2\/tags?post=1143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}