{"id":3049,"date":"2021-03-01T16:46:00","date_gmt":"2021-03-01T16:46:00","guid":{"rendered":"http:\/\/localhost:8000?p=3049"},"modified":"2023-10-28T17:25:32","modified_gmt":"2023-10-28T17:25:32","slug":"la-comprehension-du-code","status":"publish","type":"post","link":"https:\/\/kaptech.be\/?p=3049","title":{"rendered":"La compr\u00e9hension du code"},"content":{"rendered":"\n<p>Fin du premier quadrimestre, notre \u00e9quipe s\u2019est pench\u00e9e s\u00e9rieusement sur la compr\u00e9hension du code disponible en Open source. Malheureusement, tr\u00e8s peu d\u2019explications sont fournies avec le code. Avant d\u2019apporter des modifications au code, il \u00e9tait donc essentiel d\u2019identifier l\u2019utilit\u00e9 des diff\u00e9rents param\u00e8tres, diff\u00e9rentes fonctions,\u2026<\/p>\n\n\n\n<p>Tout d\u2019abord, il est important de mentionner que le code disponible en Open Source a \u00e9t\u00e9 adapt\u00e9 \u00e0 un certain type de carte Arduino. Dans le cadre de ce projet, nous n\u2019utilisons pas la m\u00eame carte. Les fonctionnalit\u00e9s de ces deux cartes sont globalement identiques. Cependant, la num\u00e9rotation\/position des pins diff\u00e8re. La premi\u00e8re t\u00e2che consistait donc \u00e0 identifier les diff\u00e9rents entr\u00e9es\/sorties de notre carte Arduino pour ensuite adapter le code. Parmi les entr\u00e9es, nous avons les signaux provenant des capteurs et 3 boutons, et pour les sorties, le contr\u00f4le des moteurs.&nbsp;<\/p>\n\n\n\n<p>Afin de contr\u00f4ler le mouvement des doigts, le code, sur base du signal provenant du capteur, calcule l\u2019angle d\u2019ouverture des moteurs. Les premi\u00e8res lignes de code sont d\u00e9di\u00e9es \u00e0 la d\u00e9finition de variables globales qui limitent les angles d\u2019ouverture maximum (doigts en extension) et de fermeture minimum (doigts en flexion) de chaque moteur. Ces limites sont importantes afin d\u2019\u00e9viter d\u2019endommager les m\u00e9canismes.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Le fonctionnement g\u00e9n\u00e9ral du code s\u2019organise autour d\u2019une fonction \u201cVoid Loop\u201d. Lorsque la proth\u00e8se est sous alimentation, cette fonction va attendre que l\u2019utilisateur presse le bouton d\u00e9di\u00e9 \u00e0 la calibration. Une fois cette premi\u00e8re \u00e9tape termin\u00e9e, la fonction lance boucle \u00ab&nbsp;while&nbsp;\u00bb. Il s\u2019agit d\u2019une boucle qui va r\u00e9p\u00e9ter les m\u00eames op\u00e9rations tant qu\u2019une certaine condition est respect\u00e9e. Dans notre cas, il n\u2019y aucune condition \u00e0 respecter. Une fois que la proth\u00e8se est allum\u00e9e, elle doit rester fonctionnelle. Toutes les 10 ms, la fonction va v\u00e9rifier si le bouton \u201cCalibration\u201d est press\u00e9, si un autre bouton est press\u00e9 (par exemple, le bouton qui contr\u00f4le le mouvement du pouce) et lire le signal renvoy\u00e9 par le capteur pour adapter la position des doigts.&nbsp;<\/p>\n\n\n\n<p><strong>Quel est le r\u00f4le de la calibration ?<\/strong><\/p>\n\n\n\n<p>Le processus de calibration adapte la dynamique de la proth\u00e8se \u00e0 son utilisateur. L\u2019objectif est de conna\u00eetre la valeur du signal renvoy\u00e9 par le capteur lorsque l\u2019utilisateur est au repos et lorsqu\u2019il contracte son bras au maximum. Une fois que ces valeurs sont connues, la proth\u00e8se est parfaitement adapt\u00e9e \u00e0 l\u2019utilisateur. Si il contracte son muscle \u201c\u00e0 moiti\u00e9\u201d, les doigts se fermeront \u00e0 moiti\u00e9.&nbsp;<\/p>\n\n\n\n<p><strong>Pourquoi r\u00e9p\u00e9ter la calibration?<\/strong><\/p>\n\n\n\n<p>Si, pendant l\u2019utilisation, la position du capteur bouge, l\u2019utilisateur peut relancer une calibration sans devoir \u00e9teindre et rallumer la proth\u00e8se.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fin du premier quadrimestre, notre \u00e9quipe s\u2019est pench\u00e9e s\u00e9rieusement sur la compr\u00e9hension du code disponible en Open source. Malheureusement, tr\u00e8s peu d\u2019explications sont fournies avec le code. Avant d\u2019apporter des modifications au code, il \u00e9tait donc essentiel d\u2019identifier l\u2019utilit\u00e9 des diff\u00e9rents param\u00e8tres, diff\u00e9rentes fonctions,\u2026 Tout d\u2019abord, il est important de mentionner que le code disponible&hellip;&nbsp;<a href=\"https:\/\/kaptech.be\/?p=3049\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">La compr\u00e9hension du code<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3049","post","type-post","status-publish","format-standard","hentry","category-manually-transferred"],"_links":{"self":[{"href":"https:\/\/kaptech.be\/index.php?rest_route=\/wp\/v2\/posts\/3049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kaptech.be\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kaptech.be\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kaptech.be\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kaptech.be\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3049"}],"version-history":[{"count":1,"href":"https:\/\/kaptech.be\/index.php?rest_route=\/wp\/v2\/posts\/3049\/revisions"}],"predecessor-version":[{"id":3050,"href":"https:\/\/kaptech.be\/index.php?rest_route=\/wp\/v2\/posts\/3049\/revisions\/3050"}],"wp:attachment":[{"href":"https:\/\/kaptech.be\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kaptech.be\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kaptech.be\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}