{"id":2852,"date":"2020-04-20T17:39:54","date_gmt":"2020-04-20T15:39:54","guid":{"rendered":"http:\/\/www.ardpylab.fr\/?page_id=2852"},"modified":"2020-05-10T17:11:05","modified_gmt":"2020-05-10T15:11:05","slug":"protocole-firmata-express","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=2852","title":{"rendered":"Protocole  \u201dFirmata Express\u201d"},"content":{"rendered":"\n<p>&nbsp;<\/p>\n<p>Le protocole de communication <strong>\u201dFirmata Express\u201d<\/strong> est une version am\u00e9lior\u00e9e de la biblioth\u00e8que <strong>\u201dFirmata Standard 2.5.8\u201d<\/strong> pour Arduino. <br>Il a \u00e9t\u00e9 con\u00e7u pour \u00eatre utilis\u00e9 conjointement avec le client Firmata <strong>\u201dpymata-express\u201d<\/strong> dans les programmes en Python. <br>Il prend en charge toutes les fonctionnalit\u00e9s de la biblioth\u00e8que <strong>\u201dFirmata Standard 2.5.8\u201d<\/strong> et ajoute en outre la prise en charge de :<\/p>\n<p style=\"padding-left: 40px;\">&#8211; La biblioth\u00e8que Arduino <strong>\u201dTone\u201d<\/strong><\/p>\n<p style=\"padding-left: 40px;\">&#8211; Capteurs de distance HC-SR04<\/p>\n<p style=\"padding-left: 40px;\">&#8211; Moteurs pas \u00e0 pas&nbsp;&nbsp;<\/p>\n<p>La liaison s\u00e9rie fonctionne \u00e0 un d\u00e9bit de 115200 bauds, soit deux fois la vitesse de <strong>\u201dFirmata Standard\u201d<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<h4><span style=\"color: #0000ff;\">. <strong><u>Installation de la biblioth\u00e8que \u201dFirmata Express\u201d dans l&rsquo;<\/u><\/strong><\/span><u><\/u><span style=\"color: #0000ff;\"><strong><u>IDE Arduino<\/u><\/strong>: &nbsp;<br><br><\/span><\/h4>\n<p>&#8211; Brancher l\u2019Arduino via un port USB,<\/p>\n<p>&#8211; Ouvrir le logiciel <strong>\u201d<\/strong><strong>IDE ARDUINO\u201d<\/strong>,&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<p>&#8211; S\u00e9lectionner <strong>\u201d<\/strong><strong>Croquis\/Inclure une biblioth\u00e8que\/G\u00e9rer les biblioth\u00e8ques\u201d<\/strong>,<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"701\" height=\"271\" class=\"wp-image-2853 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm10.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm10.png 701w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm10-300x116.png 300w\" sizes=\"auto, (max-width: 701px) 100vw, 701px\" \/><\/figure>\n<\/div>\n<p>&#8211; Entrer <strong>\u201d<\/strong><strong>FirmataExpress\u201d<\/strong>&nbsp;dans la zone de recherche&nbsp;:<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"445\" class=\"wp-image-2855 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm11.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm11.png 786w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm11-300x170.png 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm11-768x435.png 768w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n<\/div>\n\n\n\n<p>&#8211; et cliquer sur <strong>\u201d<\/strong><strong>installer\u201d<\/strong>.<br><br><\/p>\n<p><strong>Firmata Express<\/strong> n\u00e9cessite \u00e9galement que la librairie <strong>\u201dUltrasonic by Erick Sim\u00f5es\u201d<\/strong> soit install\u00e9e.<\/p>\n<p>De m\u00eame que pr\u00e9c\u00e9demment, en utilisant le logiciel Arduino IDE&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\">&#8211; S\u00e9lectionner <strong>\u201d<\/strong><strong>Croquis\/Inclure une biblioth\u00e8que\/G\u00e9rer les biblioth\u00e8ques\u201d<\/strong>,<\/p>\n<p style=\"padding-left: 40px;\">&#8211; Entrer <strong>\u201d<\/strong><strong>Ultrasonic\u201d<\/strong>&nbsp;dans la zone de recherche,&nbsp;<\/p>\n<p style=\"padding-left: 40px;\">&#8211; S\u00e9lectionner <strong>\u201d<\/strong><strong>Ultrasonic by Erick Sim\u00f5es\u201d<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"445\" class=\"wp-image-2856 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm12.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm12.png 787w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm12-300x170.png 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm12-768x434.png 768w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/figure>\n<\/div>\n\n\n\n<p>&#8211; et cliquer sur <strong>\u201d<\/strong><strong>installer\u201d<\/strong>.<\/p>\n<p>\u00a0<\/p>\n<p>Les librairies peuvent aussi \u00eatre install\u00e9es \u00e0 partir des fichiers <strong>\u201d<\/strong><strong>zip\u201d <\/strong>pr\u00e9sents dans le dossier <strong>\u201d<\/strong><a href=\"https:\/\/www.ardpylab.fr\/downloads\/firmata\/support.zip\" data-wplink-url-error=\"true\"><strong>Support\/Librairies Arduino<\/strong><\/a><strong>\u201d <\/strong>(\u00e0 t\u00e9l\u00e9charger)\u00a0:<\/p>\n<p>&#8211; Ouvrir le logiciel <strong>\u201d<\/strong><strong>IDE ARDUINO\u201d<\/strong>,\u00a0\u00a0\u00a0\u00a0<\/p>\n<p>&#8211; S\u00e9lectionner <strong>\u201d<\/strong><strong>Croquis\/Inclure une biblioth\u00e8que\/Ajouter la biblioth\u00e8que .ZIP\u201d<\/strong>,<\/p>\n<p>&#8211; S\u00e9lectionner le fichier .ZIP de la librairie \u00e0 installer.<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"611\" height=\"268\" class=\"wp-image-2859 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm13.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm13.png 611w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm13-300x132.png 300w\" sizes=\"auto, (max-width: 611px) 100vw, 611px\" \/><\/figure>\n<\/div>\n<p>\u00a0<\/p>\n\n\n\n<p>Ou tout simplement en copiant le contenu du dossier <strong>\u201d<a href=\"https:\/\/www.ardpylab.fr\/downloads\/firmata\/libraries.zip\" data-wplink-url-error=\"true\">libraries<\/a><\/strong><strong>\u201d<\/strong> (\u00e0 t\u00e9l\u00e9charger) dans le dossier des librairies du logiciel <strong>\u201dArduino IDE\u201d <\/strong>(sous windows, ce dossier se trouve dans le dossier \u201d<strong>Documents\/Arduino<\/strong>\u201d).<\/p>\n<p>\u00a0<\/p>\n\n\n\n<h4><span style=\"color: #0000ff;\"><strong>. <u>Chargement du code \u201dFirmata Express\u201d dans la m\u00e9moire de l\u2019Arduino<\/u> :<\/strong><\/span><\/h4>\n<p>&#8211; Brancher l\u2019Arduino via un port USB,<\/p>\n<p>&#8211; Afin de charger la librairie \u201dFirmata express\u201d sur l\u2019ARDUINO, il faut lancer le logiciel \u201dIDE ARDUINO\u201d, puis s\u00e9lectionner :<\/p>\n<p><strong>Fichier &gt; Exemples &gt; FirmataExpress &gt; FirmataExpress,<\/strong><\/p>\n<p>&#8211; puis cliquer sur \u201dt\u00e9l\u00e9verser\u201d.<br><br><\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2867 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm14.png\" alt=\"\" width=\"573\" height=\"429\"><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n\n\n\n<h4><span style=\"color: #0000ff;\"><strong>. <u>Installation de la biblioth\u00e8que \u201d<\/u><\/strong><strong><u>pymata-express\u201d<\/u><\/strong><strong><u>&nbsp;dans Python :<br><br><\/u><\/strong><\/span><\/h4>\n<p>La biblioth\u00e8que <strong>\u201d<\/strong><strong>pymata-express\u201d<\/strong>&nbsp;n\u2019est compatible qu\u2019avec la version 3.7 de Python au minimum.<\/p>\n<p>Pour faire fonctionner, un programme en Python qui contr\u00f4le l\u2019Arduino via le protocole de communication <strong>\u201d<\/strong><strong>Firmata Express\u201d<\/strong>, Python doit disposer de la biblioth\u00e8que <strong>\u201d<\/strong><strong>pymata-express\u201d<\/strong>. Celle-ci peut \u00eatre install\u00e9e via <strong>\u201d<\/strong><strong>pip\u201d<\/strong>, \u00e0 l\u2019aide de la ligne de commande&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\"><strong>pip install pymata-express==1.4<br><br><\/strong><\/p>\n<p><strong><span style=\"color: #ff0000;\"><span style=\"text-decoration: underline;\">Important<\/span> :<\/span><\/strong><\/p>\n<p><strong>La ligne de commande d\u2019installation de \u201dpymata-express\u201d pr\u00e9cise la version de la biblioth\u00e8que \u00e0 installer. <\/strong><\/p>\n<p><strong>Il est important d\u2019installer la version 1.4 de \u201dpymata-express\u201d pour assurer le bon fonctionnement des programmes avec les capteurs ultrasoniques.<br><br><br><\/strong><\/p>\n<p>Pour utiliser la biblioth\u00e8que <strong>\u201d<\/strong><strong>pymata-express\u201d <\/strong>dans un programme python, il faut importer le module <strong>\u201d<\/strong><strong>PymataExpress\u201d<\/strong>, \u00e0 l\u2019aide de l\u2019instruction&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\"><strong>from pymata_express.pymata_express import PymataExpress<br><br><\/strong><\/p>\n<p>La connexion avec le microcontr\u00f4leur, via le port s\u00e9rie, est r\u00e9alis\u00e9e avec ce module en pr\u00e9cisant le port COM sur lequel l\u2019Arduino est connect\u00e9&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\"><strong>board = PymataExpress(com_port = PortComArduino)<br><br><\/strong><\/p>\n<p>Une fois la connexion \u00e9tablie, il est possible d\u2019interroger ou de modifier les entr\u00e9es et sorties num\u00e9riques ou analogiques de l\u2019Arduino.&nbsp;<br><br><\/p>\n<p><strong>\u201dpymata-express\u201d<\/strong> utilise la biblioth\u00e8que <strong>\u201dasyncio Python 3.7\u201d<\/strong> pour la prise en charge de la programmation asynchrone (programme ex\u00e9cutant plusieurs codes simultan\u00e9ment de fa\u00e7on non bloquante) en tirant parti des t\u00e2ches <strong>\u201dasyncio\u201d<\/strong> (ou coroutines).<\/p>\n<p>Tous les actions demand\u00e9es \u00e0 l\u2019Arduino seront transmises par l\u2019interm\u00e9diaire de t\u00e2ches <strong>\u201dasyncio\u201d<\/strong> \u00e0 d\u00e9finir:<\/p>\n\n\n\n<p style=\"padding-left: 40px;\">. <a href=\"https:\/\/www.ardpylab.fr\/?page_id=2876\" data-wplink-url-error=\"true\">Gestion des sorties num\u00e9riques<\/a><br \/>. <a href=\"https:\/\/www.ardpylab.fr\/?page_id=2905\" data-wplink-url-error=\"true\">Gestion des entr\u00e9es num\u00e9riques<\/a><br \/>. <a href=\"https:\/\/www.ardpylab.fr\/?page_id=2922\" data-wplink-url-error=\"true\">Gestion des sorties analogiques<\/a><br \/>. <a href=\"https:\/\/www.ardpylab.fr\/?page_id=2942\" data-wplink-url-error=\"true\">Gestion des entr\u00e9es analogiques<\/a><br \/>. <a href=\"https:\/\/www.ardpylab.fr\/?page_id=2969\" data-wplink-url-error=\"true\">La prise en charge de la biblioth\u00e8que Arduino \u201d<strong>Tone<\/strong>\u201d<\/a><br \/>. <a href=\"https:\/\/www.ardpylab.fr\/?page_id=2987\" data-wplink-url-error=\"true\">La prise en charge des capteurs ultrasoniques<\/a><\/p>\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=2831\"><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=2876\"><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>&nbsp; Le protocole de communication \u201dFirmata Express\u201d est une version am\u00e9lior\u00e9e de la biblioth\u00e8que \u201dFirmata Standard 2.5.8\u201d pour Arduino. Il a \u00e9t\u00e9 con\u00e7u pour \u00eatre utilis\u00e9 conjointement avec le client Firmata \u201dpymata-express\u201d dans les programmes en Python. Il prend en charge toutes les fonctionnalit\u00e9s de la biblioth\u00e8que \u201dFirmata Standard 2.5.8\u201d et ajoute en outre la [&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-2852","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/2852","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=2852"}],"version-history":[{"count":0,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/2852\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}