{"id":2725,"date":"2020-04-19T18:14:10","date_gmt":"2020-04-19T16:14:10","guid":{"rendered":"http:\/\/www.ardpylab.fr\/?page_id=2725"},"modified":"2020-05-10T17:05:26","modified_gmt":"2020-05-10T15:05:26","slug":"protocole-de-communication-firmata","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=2725","title":{"rendered":"Protocole \u201dFIRMATA\u201d"},"content":{"rendered":"\n<h6><span style=\"color: #999999;\"><br \/>(<em>Cliquez pour afficher la version PDF)<\/em><\/span><\/h6>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/firmata.pdf\">Le protocole \u201dFIRMATA\u201d<\/a><a href=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/firmata.pdf\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<p><br>&nbsp; &nbsp; &nbsp;&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"507\" height=\"341\" class=\"wp-image-2732 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm1.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm1.png 507w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm1-300x202.png 300w\" sizes=\"auto, (max-width: 507px) 100vw, 507px\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n\n\n\n<p>\u00a0<\/p>\n<p>Nous avons vu qu\u2019avec la liaison s\u00e9rie, il \u00e9tait possible d\u2019interagir avec un Arduino \u00e0 l\u2019aide d\u2019un programme en Python. Cependant, en fonction des circuits \u00e9lectroniques, des capteurs utilis\u00e9s et des actions que l\u2019on souhaite r\u00e9aliser, il faut t\u00e9l\u00e9verser dans la m\u00e9moire de l\u2019Arduino, un programme adapt\u00e9 et bien souvent modifier le programme en Python associ\u00e9 pour la r\u00e9ception ou l\u2019envoi des donn\u00e9es.\u00a0<\/p>\n<p>Pour pallier \u00e0 ce probl\u00e8me, il existe un protocole de communication, appel\u00e9, \u201d<strong>Firmata\u201d<\/strong>, et bas\u00e9 sur deux programmes\u00a0:<\/p>\n<p style=\"padding-left: 40px;\">&#8211; un programme en Python \u201ddonneur d\u2019ordres\u201d, sur l\u2019ordinateur, pour pouvoir envoyer des ordres \u00e0 l\u2019Arduino ou recevoir des donn\u00e9es via le port USB.<\/p>\n<p style=\"padding-left: 40px;\">&#8211; un programme \u201dpilote\u201d, sur le microcontr\u00f4leur, qui comme son nom l\u2019indique, pilotera les mat\u00e9riels connect\u00e9s en r\u00e9ponse aux ordres re\u00e7us.<\/p>\n<p><br \/>Pour que le programme Python \u201ddonneur d\u2019ordres\u201d fonctionne, le chargement, dans la m\u00e9moire de l&rsquo;Arduino, du code \u201dpilote\u201d doit \u00eatre fait avant son lancement, \u00e0 l\u2019aide du logiciel \u201d<strong>IDE ARDUINO\u201d<\/strong>.<br \/>Mais une fois le t\u00e9l\u00e9versement du programme \u201dpilote\u201d effectu\u00e9, seul le programme en Python sera modifi\u00e9 en fonction des actions que l\u2019on souhaite r\u00e9aliser. <br \/>En effet, avec le protocole de communication <strong>\u201dFirmata\u201d<\/strong>, la lecture et l\u2019\u00e9criture sur les entr\u00e9es et sorties de l\u2019Arduino se font directement \u00e0 partir du programme en Python, ce qui facilite l\u2019exploitation des donn\u00e9es des capteurs. <br \/>Suivant les circuits \u00e9tudi\u00e9s ou les capteurs utilis\u00e9s, on utilisera deux protocoles de communication avec l\u2019Arduino diff\u00e9rents:<br \/><br \/><\/p>\n<ul>\n<li><strong>\u201d<a href=\"https:\/\/www.ardpylab.fr\/?page_id=2739\" data-wplink-url-error=\"true\">Firmata Standard<\/a>\u201d<br \/><br \/><\/strong><\/li>\n<li><strong>\u201d<a href=\"https:\/\/www.ardpylab.fr\/?page_id=2852\" data-wplink-url-error=\"true\">Firmata Express<\/a>\u201d<\/strong><\/li>\n<\/ul>\n<p>\u00a0<\/p>\n\n\n<div  class=\"grids-section grids-is-stretch\" style=\"--_gs-gap-desktop:0px 0px;--_gs-m-desktop:0 0 0 0;--_gs-p-desktop:0 0 0 0;--_gs-bg-desktop:transparent none;--_gs-bg-xp-desktop:0px;--_gs-zi-desktop:auto;--_gs-d-desktop:block;--_gs-mw-desktop:calc(100% - 0 - 0);--_gs-gap-tablet:0px 0px;--_gs-m-tablet:0 0 0 0;--_gs-p-tablet:0 0 0 0;--_gs-bg-tablet:transparent none;--_gs-bg-xp-tablet:0px;--_gs-zi-tablet:auto;--_gs-d-tablet:block;--_gs-mw-tablet:calc(100% - 0 - 0);--_gs-gap-mobile:0px 0px;--_gs-m-mobile:0 0 0 0;--_gs-p-mobile:0 0 0 0;--_gs-bg-mobile:transparent none;--_gs-bg-xp-mobile:0px;--_gs-zi-mobile:auto;--_gs-d-mobile:block;--_gs-mw-mobile:calc(100% - 0 - 0);--_gs-columns:2;--_gs-rows:1\"><div class=\"grids-s-w_i\">\n<div class=\"grids-area\" style=\"--_ga-column:1\/2;--_ga-row:1\/2;--_ga-m-desktop:0 0 0 0;--_ga-p-desktop:0 0 0 0;--_ga-bg-desktop:transparent none;--_ga-zi-desktop:auto;--_ga-d-desktop:flex;--_ga-mw-desktop:calc(100% - 0 - 0);--_ga-m-tablet:0 0 0 0;--_ga-p-tablet:0 0 0 0;--_ga-bg-tablet:transparent none;--_ga-zi-tablet:auto;--_ga-d-tablet:flex;--_ga-mw-tablet:calc(100% - 0 - 0);--_ga-m-mobile:0 0 0 0;--_ga-p-mobile:0 0 0 0;--_ga-bg-mobile:transparent none;--_ga-zi-mobile:auto;--_ga-d-mobile:flex;--_ga-mw-mobile:calc(100% - 0 - 0)\">\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=2683\"><img loading=\"lazy\" decoding=\"async\" width=\"50\" height=\"28\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/03\/moins.jpg\" alt=\"\" class=\"wp-image-107\"\/><\/a><\/figure><\/div>\n\n<\/div>\n\n<div class=\"grids-area\" style=\"--_ga-column:2\/3;--_ga-row:1\/2;--_ga-m-desktop:0 0 0 0;--_ga-p-desktop:0 0 0 0;--_ga-bg-desktop:transparent none;--_ga-zi-desktop:auto;--_ga-d-desktop:flex;--_ga-mw-desktop:calc(100% - 0 - 0);--_ga-m-tablet:0 0 0 0;--_ga-p-tablet:0 0 0 0;--_ga-bg-tablet:transparent none;--_ga-zi-tablet:auto;--_ga-d-tablet:flex;--_ga-mw-tablet:calc(100% - 0 - 0);--_ga-m-mobile:0 0 0 0;--_ga-p-mobile:0 0 0 0;--_ga-bg-mobile:transparent none;--_ga-zi-mobile:auto;--_ga-d-mobile:flex;--_ga-mw-mobile:calc(100% - 0 - 0)\">\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-large\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=2739\"><img loading=\"lazy\" decoding=\"async\" width=\"50\" height=\"28\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/03\/plus.jpg\" alt=\"\" class=\"wp-image-106\"\/><\/a><\/figure><\/div>\n\n<\/div>\n<\/div><\/div>\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>(Cliquez pour afficher la version PDF) &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; \u00a0 Nous avons vu qu\u2019avec la liaison s\u00e9rie, il \u00e9tait possible d\u2019interagir avec un Arduino \u00e0 l\u2019aide d\u2019un programme en Python. Cependant, en fonction des circuits \u00e9lectroniques, des capteurs utilis\u00e9s et des actions que l\u2019on souhaite r\u00e9aliser, il faut t\u00e9l\u00e9verser dans la m\u00e9moire de l\u2019Arduino, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2725","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/2725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2725"}],"version-history":[{"count":0,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/2725\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}