{"id":4565,"date":"2022-03-11T17:59:02","date_gmt":"2022-03-11T16:59:02","guid":{"rendered":"https:\/\/www.breizh56.fr\/crepp2024\/?page_id=4565"},"modified":"2022-08-02T00:30:47","modified_gmt":"2022-08-01T22:30:47","slug":"projet-feutrage-tissus","status":"publish","type":"page","link":"https:\/\/www.breizh56.fr\/crepp2024\/projet-feutrage-tissus\/","title":{"rendered":"projet feutrage de tissus"},"content":{"rendered":"<p><strong>Projet: Automatiser le feutrage de la laine qui est actuellement enti\u00e8rement manuel.<\/strong><\/p>\n<p>On part du principe que si, sur une surface en laine ( 80% ), on pose une petite quantit\u00e9 de laine pure, on pourra avec une aiguille sp\u00e9ciale enfoncer des brins de laine dans le support et ceux-ci y resteront \u00e0 la remont\u00e9e de l&rsquo;aiguille ( les brins de laine s&rsquo;accrochent entre eux avec une facilit\u00e9 incroyable ). Pour une petite surface on utilise un support avec 6 \u00e0 9 aiguilles et tenir dans la main le dit support avec un aller et retour vertical devient fastidieux avec des risques de blessures.<br \/>\nC&rsquo;est cette action qu&rsquo;il faut automatiser.<\/p>\n<p><iframe loading=\"lazy\" title=\"FabLab \/ CREPP couture feutrage de tissus\" width=\"860\" height=\"645\" src=\"https:\/\/www.youtube.com\/embed\/tAPR7J9X1Uk?feature=oembed&amp;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>Les actions de finition se font \u00e0 la main avec une seule aiguille et son support.<\/p>\n<p>photo des aiguilles:<\/p>\n<p><a href=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4562\" src=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-1.jpg\" alt=\"\" width=\"4032\" height=\"3024\" srcset=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-1.jpg 4032w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-1-300x225.jpg 300w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-1-768x576.jpg 768w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-1-1024x768.jpg 1024w\" sizes=\"(max-width: 4032px) 100vw, 4032px\" \/><\/a><a href=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4564\" src=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-3.jpg\" alt=\"\" width=\"4032\" height=\"3024\" srcset=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-3.jpg 4032w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-3-300x225.jpg 300w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-3-768x576.jpg 768w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-3-1024x768.jpg 1024w\" sizes=\"(max-width: 4032px) 100vw, 4032px\" \/><\/a><a href=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4563\" src=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-2.jpg\" alt=\"\" width=\"4032\" height=\"3024\" srcset=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-2.jpg 4032w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-2-300x225.jpg 300w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-2-768x576.jpg 768w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/03\/220208-Feutrage_-2-1024x768.jpg 1024w\" sizes=\"(max-width: 4032px) 100vw, 4032px\" \/><\/a><\/p>\n<p>Vif int\u00e9r\u00eat pour les d\u00e9mos de Graziella et beaucoup d&rsquo;\u00e9changes dans le groupe sur le profil m\u00e9canique et le codage des automatismes de cette machine. Je pense que l&rsquo;on s&rsquo;oriente vers un syst\u00e8me I3D.<\/p>\n<p>Il serait int\u00e9ressant que mardi prochain Graziella puisse \u00eatre l\u00e0 pour montrer \u00e0 Michel ce qu&rsquo;elle nous a montr\u00e9 mardi soir.<\/p>\n<p>Par ailleurs, Graziella a souhait\u00e9 nous apporter son concours lors l&rsquo;\u00e9tude de faisabilit\u00e9 de cette machine; proposition int\u00e9ressante pour que l&rsquo;on puisse, pas \u00e0 pas, lui r\u00e9aliser ce qu&rsquo;elle souhaite, mais peut-\u00eatre pas n\u00e9cessaire au d\u00e9but de l&rsquo;\u00e9tude. On verra au fur et \u00e0 mesure.<\/p>\n<p>Graziella a aussi \u00e9voqu\u00e9, la machine \u00e9tant op\u00e9rationnelle, que des personnes int\u00e9ress\u00e9es puissent venir la voir et r\u00e9aliser leurs travaux. Comme il n&rsquo;est pas question pour nous de construire des machines pour un tel ou un tel, il serait int\u00e9ressant de la c\u00e9der au Fablab et qu&rsquo;elle y soit utilis\u00e9e au m\u00eame titre que les autres machines.<\/p>\n<p>NB hors r\u00e9union:<\/p>\n<p><em> R\u00e9gis propose d&rsquo;utiliser une \u00e9pave de CNC Xavier sans t\u00eate ni moteur Z.<\/em><br \/>\n<em>Il y a le cadre x y avec moteurs et l&rsquo;Arduino Uno et son interface moteurs et elle pourrait servir de base en adaptant une t\u00eate \u00e0 aiguilles, et le GCode serait peut \u00eatre plus simple \u00e0 modifier.<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Avant la fin mars nous r\u00e9unirons le CA ( formalit\u00e9 loi 1901 oblige ) pour formaliser cette action et nous mettre dans les clous avec notre Convention de partenariat avec Audelor. Graziella ayant d&rsquo;autres projets dans sa besace on ne va pas r\u00e9unir le CA au sujet de chaque projet, on traitera le tout dans un seul.<\/p>\n<p>.Nous nous organiserons mardi soir prochain afin de commencer dans les meilleurs d\u00e9lais<br \/>\nstyle>.cent {  display: block;  margin-left: auto;  margin-right: auto;}<\/style>\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@4.3.1\/dist\/css\/bootstrap.min.css\" integrity=\"sha384-ggOyR0iXCbMQv3Xipma34MD+dH\/1fQ784\/j6cY\/iJTQUOhcWr7x9JvoRxT2MZw1T\" crossorigin=\"anonymous\"><script type=\"text\/javascript\" id=\"MathJax-script\" async src=\"https:\/\/cdn.jsdelivr.net\/npm\/mathjax@3\/es5\/tex-mml-chtml.js\"> <\/script><body style='margin-left:5%;margin-right:5%;margin-top:1%'><br \/>\n<hr>\n<h3>Objectif<\/h3>\n<p>L&rsquo;objectif est d&rsquo;automatiser le feutrage de la laine, \u00e9tape fastidieuse \u00e0 la main.<\/p>\n<p>On part du principe que si, sur une surface en laine ( 80\\% ), on pose une petite quantit\u00e9 de laine pure, on pourra avec une aiguille sp\u00e9ciale enfoncer des brins de laine dans le support et ceux-ci y resteront \u00e0 la remont\u00e9e de l\u2019aiguille ( les brins de laine s\u2019accrochent entre eux avec une facilit\u00e9 incroyable ).<\/p>\n<p> Pour une petite surface on utilise un support avec 6 \u00e0 9 aiguilles et tenir dans la main le dit support avec un aller et retour vertical devient fastidieux avec des risques de blessures.<\/p>\n<p><b>C\u2019est cette action qu\u2019il faut automatiser. <\/b><\/p>\n<h3>Les versions<\/h3>\n<p>Une premiere version comporte un simple balayage du plateau.<\/p>\n<p>La seconde version devrait comporter un traitement d&rsquo;image avec une cam\u00e9ra pour adapter le balayage.<\/p>\n<h3>\u00c9tat des lieux<\/h3>\n<p>Actuellement, des essais ont \u00e9t\u00e9 r\u00e9alis\u00e9s avec la CNC qui \u00e9tait stock\u00e9 au FabLab.<\/p>\n<p>De nombreuses tentatives (parfois infructueuses) pour prendre en main le GCode ont donc \u00e9t\u00e9 r\u00e9alis\u00e9es.<\/p>\n<h3>Liste du mat\u00e9riel<\/h3>\n<ul>\n<li> Une ancienne CNC (mod\u00e8le de Xavier Hinault)\n<\/li>\n<li> Support d&rsquo;aiguilles\n<\/li>\n<\/ul>\n<h3>Communication avec la CNC<\/h3>\n<p>L&rsquo;ensemble des communications ont lieu avec une liaison s\u00e9rie (UART)<\/p>\n<p>La liaison <span title=\"Universal Asynchronous Receiver \/ Transmitter  : Transmetteur \/ Receveur Asynchorne Universel\" style='color:blue;'>UART<\/span> est une liaison s\u00e9rie avec deux broches :<\/p>\n<ul>\n<li> RX\n<\/li>\n<li> TX\n<\/li>\n<\/ul>\n<h4>Protocole<\/h4>\n<ul>\n<li> Un bit de start toujours \u00e0 0 pour synchroniser la communication\n<\/li>\n<li> Un champ de donn\u00e9es de 8 bits\n<\/li>\n<li> Un bit de parit\u00e9 (dans notre cas aucune parit\u00e9)\n<\/li>\n<li> Un bit de stop\n<\/li>\n<\/ul>\n<h4>Vitesse de communication<\/h4>\n<p>La liaison \u00e9tant asynchrone, il faut que les p\u00e9riph\u00e9riques communiquent \u00e0 la m\u00eame vitesse. Cette derni\u00e8re est normalis\u00e9e et repr\u00e9sente le nombre de bit par seconde (baud<span title=\"1 baud repr\u00e9sente 1 symbole par seconde.\" style='color:grey;'><sup>[note]<\/sup><\/span>)<\/p>\n<p>En l\u2019occurrence, la CNC communique \u00e0 115200 bauds.<\/p>\n<h2 >Rappels du G-Code<\/h2>\n<p>Le G-Code est un langage machine utilis\u00e9 par les machines num\u00e9riques.<\/p>\n<p>Chaque instruction G-Code se termine un retour \u00e0 la ligne (valeur 13 dans la table ASCII). Par souci de lisibilit\u00e9, il ne sera pas affich\u00e9.<\/p>\n<h3>Le r\u00e9f\u00e9rentiel<\/h3>\n<p>Soit on effectue les d\u00e9placements de mani\u00e8re relative (+xmm depuis la position actuelle) ou absolue (depuis l&rsquo;origine avec les capteurs fin de course)<\/p>\n<p>Pour d\u00e9finir le r\u00e9f\u00e9rentiel, on utilise soit la commande suivante pour le r\u00e9f\u00e9rentiel absolu:<\/p>\n<hr>\n<pre style='background-color:#F5F5F5;padding-left:1em;'><code>\r\nG90\r\n<\/code><\/pre>\n<hr>\n<p>et pour le r\u00e9f\u00e9rentiel relatif : <\/p>\n<hr>\n<pre style='background-color:#F5F5F5;padding-left:1em;'><code>\r\nG91\r\n\r\n<\/code><\/pre>\n<hr>\n<p>Par la suite, on va utiliser le mode relatif.<\/p>\n<h3>Les d\u00e9placements<\/h3>\n<p>Pour se d\u00e9placer on va utiliser la commande suivante : <\/p>\n<hr>\n<pre style='background-color:#F5F5F5;padding-left:1em;'><code>\r\nG01 X[mm] Y[mm] Z[mm]\r\n\r\n<\/code><\/pre>\n<hr>\n<p>Les arguments entre crochets correspondent aux d\u00e9placements voulus sur les axes concern\u00e9s.<\/p>\n<p>Ainsi, si on souhaite se d\u00e9placer de 20 mm vers le centre sur l&rsquo;axe X, on va utiliser la commande : <\/p>\n<hr>\n<pre style='background-color:#F5F5F5;padding-left:1em;'><code>\r\nG01 X20\r\n\r\n<\/code><\/pre>\n<hr>\n<p>Les axes non concern\u00e9s par le d\u00e9placement ne sont pas pr\u00e9sents dans la commande.<\/p>\n<h3>Le retour \u00e0 l&rsquo;origine<\/h3>\n<p>Le retour en position d&rsquo;origine se fait via la commande suivante : <\/p>\n<hr>\n<pre style='background-color:#F5F5F5;padding-left:1em;'><code>\r\nG28 [X] [Y] [Z]\r\n\r\n<\/code><\/pre>\n<hr>\n<p>Ainsi, pour effectuer un retour \u00e0 l&rsquo;origine sur l&rsquo;axe X on fait la commande <\/p>\n<hr>\n<pre style='background-color:#F5F5F5;padding-left:1em;'><code>\r\nG28 X\r\n\r\n<\/code><\/pre>\n<hr>\n<h2 >Algorithme de d\u00e9placement<\/h2>\n<p>L&rsquo;objectif est de ne pas faire de d\u00e9placement sur X ou Y lorsque le moteur Z est activ\u00e9 afin d&rsquo;\u00e9viter de casser les aiguilles.<\/p>\n<p>Au d\u00e9but du programme, le porte-aiguille est plac\u00e9 aux coordonn\u00e9es (0,0) avec le porte-aiguille en position de repos (position haute).<\/p>\n<p>Pendant toutes les dur\u00e9es des d\u00e9placements en X et Y, le porte-aiguille reste en position de repos.<\/p>\n<ul>\n<li> Le porte-aiguille se d\u00e9place en Y de la moit\u00e9 de la largeur de la t\u00eate contenant les aiguilles (disons 8mm)\n<\/li>\n<li> Le cycle Z correspond \u00e0 plusieurs aller-retour du porte-aiguille et \u00e0 leur retour en position de d\u00e9part (capteur de fin de course activ\u00e9)\n<\/li>\n<\/ul>\n<p>Ce cycle se reproduit pour balayer l&rsquo;ensemble du plateau.<\/p>\n<figure id=''>\n<div class='cent' style='text-align:center;'><a href='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/cycle.png'><img src='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/cycle.png' class='alignnone size-medium' style='max-width:50%;'><\/a><figcaption>Figure &#8211; Cycle de poin\u00e7onnage<\/figcaption><\/div>\n<\/figure>\n<h2 >Programmation Python<\/h2>\n<p>De nombreuses heures ont \u00e9t\u00e9 consacr\u00e9es pour envoyer des s\u00e9quences GCode avec la version 3.X de Python.<\/p>\n<p>La communication via liaison s\u00e9rie avec la CNC n&rsquo;a pas \u00e9t\u00e9 possible via Python3.X, <\/p>\n<p>pour la premi\u00e8re version de l&rsquo;interface, une des contraintes sera d&rsquo;utiliser la version 2.7 de Python.<\/p>\n<h3>L&rsquo;interface graphique<\/h3>\n<p>Le choix de l&rsquo;interface graphique s&rsquo;est port\u00e9 sur les biblioth\u00e8ques PyQt.<\/p>\n<p>La version 5 est la plus r\u00e9cente mais des soucis de compatibilit\u00e9 existent avec la version 2.7.<\/p>\n<p>La deuxi\u00e8me contrainte est donc d&rsquo;utiliser la version 4 de PyQt.<\/p>\n<h3>Installation des outils<\/h3>\n<hr>\n<pre style='background-color:#F5F5F5;padding-left:1em;'><code>\r\nsudo apt install python-pip\r\n\r\nsudo apt-get install python-qt4\r\n\r\nsudo apt-get install pyqt4-dev-tools \r\n\r\npip install serial\r\n\r\nsudo apt-get install qt4-designer\r\n\r\n<\/code><\/pre>\n<hr>\n<h3>Un premier programme<\/h3>\n<p>Ce premier programme, sans interface graphique (juste dans un terminal) permet de v\u00e9rifier le bon d\u00e9placement de la t\u00eate sur l&rsquo;ensemble du plateau.<\/p>\n<figure id=''>\n<div class='cent' style='text-align:center;'><a href='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/algo.png'><img src='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/algo.png' class='alignnone size-medium' style='max-width:40%;'><\/a><figcaption>Figure &#8211; D\u00e9placement de la t\u00eate<\/figcaption><\/div>\n<\/figure>\n<p>Pour lancer le programme, il faut saisir la commande suivante : <\/p>\n<hr>\n<pre style='background-color:#F5F5F5;padding-left:0em;'><code>\r\npython GCode.py\r\n\r\n<\/code><\/pre>\n<hr>\n<p>Le programme demande ensuite les dimensions du plateau (X et Y) et il va g\u00e9n\u00e9rer au fur et \u00e0 mesure le G-Code pour balayer le plateau.<\/p>\n<h4>Code source<\/h4>\n<hr>\n<pre style='background-color:#F5F5F5;padding-left:1em;'><code>\r\n#!\/usr\/bin\/python\r\n\r\n# -*- coding: utf-8 -*-\r\n\r\nfrom math import floor\r\n\r\nimport serial\r\n\r\nimport time\r\n\r\nser = serial.Serial( '\/dev\/ttyACM0', 115200,serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE, timeout=0.1)\r\n\r\nser.flushInput()  #Vide le buffer\r\n\r\nif(open):\r\n\r\n    print(\"Communication fonctionnelle !\")\r\n\r\nelse:\r\n\r\n    print(\"Mauvaise communication\")\r\n\r\ndecalagePas = 8 #moitie du porte outil en mm\r\n\r\nyWidth = input(\"Quelle est la longueur du plateau ? (mm) : \")\r\n\r\nxWidth = input(\"Quelle est la largeur du plateau ? (mm) : \")\r\n\r\nyIter = floor(int(yWidth)\/8)\r\n\r\nxIter = floor(int(xWidth)\/8)\r\n\r\nnbBlocX = xIter\/2\r\n\r\ndeplacementZ = 10 #mm\r\n\r\nvitesse=4 #max 6\r\n\r\nprint(\"Nombre d'arret sur X : \"+str(xIter))\r\n\r\nprint(\"Nombre d'arret sur Y : \"+str(yIter))\r\n\r\ndef sendCommand(command):\r\n\r\n    print(\"Commande : \"+str(command))\r\n\r\n    ser.write(command+'\\n')\r\n\r\n    result=\"\"\r\n\r\n    waitingOK = True\r\n\r\n    while (waitingOK==True): # tant que au moins un caract\u00e8re en r\u00e9ception\r\n\r\n        char=ser.read() # on lit le caract\u00e8re\r\n\r\n        if char=='\\n': # si saut de ligne, on sort du while\r\n\r\n            result=\"\"\r\n\r\n        else: #tant que c'est pas le saut de ligne, on l'ajoute \u00e0 la chaine \r\n\r\n            result=result+char\t\r\n\r\n            if(result==\"<ok>\"):\r\n\r\n                print(\"Commande valide\")\r\n\r\n                waitingOK = False\r\n\r\n#Init\r\n\r\nprint(\"Mode relatif\")\r\n\r\nsendCommand(\"G91\") #Mode relatif\r\n\r\n#Retour Home\r\n\r\nprint(\"Retour origine\")\r\n\r\nsendCommand(\"G28 X\")\r\n\r\nsendCommand(\"G28 Y\")\r\n\r\n#Generation du GCode\r\n\r\ngcode =\"\"\r\n\r\nfor xBloc in range(0, int(nbBlocX)):\r\n\r\n    #Code bloc\r\n\r\n    \r\n\r\n    for xStep in range(0,int(yIter)):\r\n\r\n        gcode += \"G01 Y\"+str(decalagePas)+\" F4\"+\"\\n\"\r\n\r\n        gcode += \"G04 P0.1\"+\"\\n\"\r\n\r\n    \r\n\r\n    gcode += \"G01 X\"+str(decalagePas)+\" F\"+str(vitesse)+\"\\n\"\r\n\r\n    \r\n\r\n    for xStep in range(0,int(yIter)):\r\n\r\n        gcode += \"G01 Y-\"+str(decalagePas)+\" F4\"+\"\\n\"\r\n\r\n        gcode += \"G04 P0.1\"+\"\\n\"\r\n\r\n    \r\n\r\n    gcode += \"G01 X\"+str(decalagePas)+\" F\"+str(vitesse)+\"\\n\"\r\n\r\n    \r\n\r\nprint(gcode)\r\n\r\nallCommands = gcode.split(\"\\n\")\r\n\r\nprint(\"Nombre d'instructions a executer :\" +str(len(allCommands)))\r\n\r\nfor line in allCommands:\r\n\r\n    sendCommand(line)\r\n\r\n        \r\n\r\n \r\n\r\n<\/code><\/pre>\n<hr>\n<h3>Une premi\u00e8re interface<\/h3>\n<p>Voici la premi\u00e8re version d&rsquo;une interface graphique r\u00e9alis\u00e9e avec PyQt4.<\/p>\n<p>Le code est disponible sur le Git du club \u00e0 <\/p>\n<p>l&rsquo;adresse <a class=\"alert-link\">\\url{https:\/\/github.com\/CREPP-PLOEMEUR\/Feutrage-de-laine<\/a>}<\/p>\n<h4>Utilisation de l&rsquo;interface<\/h4>\n<p>Tout d&rsquo;abord, veuillez t\u00e9l\u00e9charger le dossier complet puis se rendre dans le dossier <span class='badge badge-light'>GUI<\/span><br \/>\nEnsuite, faire click-droit et <b>Ouvrir un terminal ici<\/b><br \/>\nEnsuite, saisir la commande suivante pour lancer l&rsquo;interface : <\/p>\n<hr>\n<pre style='background-color:#F5F5F5;padding-left:0em;'><code>\r\npython GUIMain.py\r\n\r\n<\/code><\/pre>\n<hr>\n<p>L&rsquo;interface se lance. Elle se compose de 4 onglets : <\/p>\n<ul>\n<li> Pr\u00e9sentation\n<\/li>\n<li> Param\u00e8tres\n<\/li>\n<li> G\u00e9n\u00e9ration du GCode\n<\/li>\n<li> Lancement du cycle\n<\/li>\n<\/ul>\n<p>Veuillez vous rendre \u00e0 l&rsquo;onglet <b>Pr\u00e9sentation<\/b><\/p>\n<figure id=''>\n<div class='cent' style='text-align:center;'><a href='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/1.png'><img src='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/1.png' class='alignnone size-medium' style='max-width:25%;'><\/a><figcaption>Figure &#8211; Onglet Pr\u00e9sentation<\/figcaption><\/div>\n<\/figure>\n<p>Il d\u00e9taille le d\u00e9placement du porte aiguilles sur le sch\u00e9ma.<\/p>\n<p>Une barre de statut est disponible sur tous les onglets et indique l&rsquo;\u00e9tat courant du cycle. Au d\u00e9marrage de l&rsquo;application, il indique <b>Non connecte<\/b>.<br \/>\nil faut donc se connecter \u00e0 la machine.<\/p>\n<p>Pour cela, il faut s\u00e9lectionner le port s\u00e9rie disponible dans la liste (ttyACMX g\u00e9n\u00e9ralement) et cliquer sur <span class='badge badge-light'>Connect<\/span>.<br \/>\nEn cas de bonne connexion, la barre de statut indique <b>Connecte &#8211; Gcode non genere<\/b>.<\/p>\n<figure id=''>\n<div class='cent' style='text-align:center;'><a href='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/2.png'><img src='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/2.png' class='alignnone size-medium' style='max-width:25%;'><\/a><figcaption>Figure &#8211; Connexion effectu\u00e9<\/figcaption><\/div>\n<\/figure>\n<p>Il faut ensuite cliquer sur l&rsquo;onglet <b>Param\u00e8tres<\/b><\/p>\n<figure id=''>\n<div class='cent' style='text-align:center;'><a href='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/3.png'><img src='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/3.png' class='alignnone size-medium' style='max-width:25%;'><\/a><figcaption>Figure &#8211; Param\u00e8tres du cycle<\/figcaption><\/div>\n<\/figure>\n<p>Voici les diff\u00e9rents param\u00e8tres du cycle<\/p>\n<ul>\n<li> La longueur du plateau en mm [0-300mm comme valeur possible]\n<\/li>\n<li> La largeur du plateau en mm [0-300mm comme valeur possible]\n<\/li>\n<li> D\u00e9placement du porte-aiguilles : Cela correspond \u00e0 la distance parcourue (en mm) par le porte-aiguilles entre deux s\u00e9quences de poin\u00e7onnage\n<\/li>\n<li> D\u00e9placement de l&rsquo;axe Z : Cela correspond \u00e0 l&rsquo;image de la distance pour effectuer une rotation pour planter le porte-aiguilles et le faire remonter en position de repos. Il faudra jouer avec cette valeur pour que le porte-aiguilles fasse pr\u00e9cis\u00e9ment un aller-retour jusqu&rsquo;\u00e0 la position de repos.\n<\/li>\n<li> Nombre d&rsquo;actions de l&rsquo;outil-aiguilles : Cela correspond au nombre d&rsquo;aller-retour effectu\u00e9s par le porte aiguilles entre 2 d\u00e9placements (X ou Y) sur le plateau\n<\/li>\n<li> Vitesse sur l&rsquo;axe X et Y : La vitesse de d\u00e9placement sur l&rsquo;axe X et Y comprise entre 1 et 6\n<\/li>\n<li> Vitesse sur l&rsquo;axe Z : La vitesse de d\u00e9placement sur l&rsquo;axe Z comprise entre 1 et 10\n<\/li>\n<\/ul>\n<p>Une fois tous les param\u00e8tres renseign\u00e9s, nous allons g\u00e9n\u00e9rer le GCode. Pour cela, il faut se rendre dans l&rsquo;onglet <b>G\u00e9n\u00e9ration du GCode<\/b><\/p>\n<figure id=''>\n<div class='cent' style='text-align:center;'><a href='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/4.png'><img src='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/4.png' class='alignnone size-medium' style='max-width:25%;'><\/a><figcaption>Figure &#8211; G\u00e9n\u00e9ration du GCode<\/figcaption><\/div>\n<\/figure>\n<p>Lors de l&rsquo;ouverture de l&rsquo;onglet, le GCode n&rsquo;est pas g\u00e9n\u00e9r\u00e9, pour le faire il faut cliquer sur le bouton <span class='badge badge-light'>g\u00e9n\u00e9rer le GCode<\/span><br \/>\nA ce moment l\u00e0, le GCode g\u00e9n\u00e9r\u00e9 appara\u00eet sur l&rsquo;interface : <\/p>\n<figure id=''>\n<div class='cent' style='text-align:center;'><a href='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/5.png'><img src='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/5.png' class='alignnone size-medium' style='max-width:25%;'><\/a><figcaption>Figure &#8211; Le GCode g\u00e9n\u00e9r\u00e9<\/figcaption><\/div>\n<\/figure>\n<p>Il ne reste plus qu&rsquo;\u00e0 lancer le cycle en appuyant sur le bouton <span class='badge badge-light'>Lancer le cycle<\/span> dans l&rsquo;onglet <b>Lancement du cycle<\/b><\/p>\n<figure id=''>\n<div class='cent' style='text-align:center;'><a href='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/6.png'><img src='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/6.png' class='alignnone size-medium' style='max-width:25%;'><\/a><figcaption>Figure &#8211; Lancement du cycle<\/figcaption><\/div>\n<\/figure>\n<div class='alert alert-danger' >\n<h4>Attention<\/h4>\n<p>Une fois le cycle lanc\u00e9, il n&rsquo;est plus possible d&rsquo;utiliser l&rsquo;interface. En cas d&rsquo;arret d&rsquo;urgence, il faut couper l&rsquo;alimentation avec l&rsquo;interrupteur. Une future version de l&rsquo;interface r\u00e8glera ce probl\u00e8me.<\/p><\/div>\n<p>Quand le cycle est termin\u00e9, les instructions GCode envoy\u00e9s seront affich\u00e9es sur l&rsquo;\u00e9cran et la barre de status indique <b>Termine<\/b>.<\/p>\n<figure id=''>\n<div class='cent' style='text-align:center;'><a href='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/7.png'><img src='https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2022\/08\/7.png' class='alignnone size-medium' style='max-width:25%;'><\/a><figcaption>Figure &#8211; Un cycle termin\u00e9<\/figcaption><\/div>\n<\/figure>\n<h3>Pistes d&rsquo;am\u00e9liorations<\/h3>\n<p>La prochaine version, dans l&rsquo;optimal, devrait g\u00e9rer la communication s\u00e9rie sans fonction bloquante (ce qui est le cas sur cette version car manque de temps).<\/p>\n<p>Si jamais la communication s\u00e9rie est fonctionnelle avec Python3.X, toute la structure de l&rsquo;interface est disponible avec la version 5 de PyQt.Il serait pr\u00e9f\u00e9rable \u00e0 moyen terme de passer en version Python 3.X.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Projet: Automatiser le feutrage de la laine qui est actuellement enti\u00e8rement manuel. On part du principe que si, sur une surface en laine ( 80% ), on pose une petite quantit\u00e9 de laine pure, on pourra avec une aiguille sp\u00e9ciale enfoncer des brins de laine dans le support et ceux-ci y resteront \u00e0 la remont\u00e9e de l&rsquo;aiguille ( les brins [&#8230;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4565","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/4565"}],"collection":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/comments?post=4565"}],"version-history":[{"count":13,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/4565\/revisions"}],"predecessor-version":[{"id":4869,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/4565\/revisions\/4869"}],"wp:attachment":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/media?parent=4565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}