{"id":2987,"date":"2020-04-21T16:52:59","date_gmt":"2020-04-21T14:52:59","guid":{"rendered":"http:\/\/www.ardpylab.fr\/?page_id=2987"},"modified":"2020-05-10T17:12:01","modified_gmt":"2020-05-10T15:12:01","slug":"les-capteurs-ultrasoniques","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=2987","title":{"rendered":"Les capteurs ultrasoniques"},"content":{"rendered":"\n<h2 style=\"text-align: center;\"><em><strong>(prise en charge par le protocole <br \/>\u201dFirmata Express\u201d)<\/strong><\/em><\/h2>\n\n\n\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Les capteurs ultrasoniques sont compos\u00e9s d\u2019un \u00e9metteur d\u2019ultrasons, d\u2019un r\u00e9cepteur d\u2019ultrasons et d\u2019un circuit de commande. Ils sont g\u00e9n\u00e9ralement utilis\u00e9s pour mesurer une distance entre le capteur et un obstacle.<\/p>\n<p>Le capteur ultrasonique, le plus souvent utilis\u00e9 avec un Arduino, le <strong>HC\u2010SR04<\/strong>, dispose de 2 broches diff\u00e9rentes pour l\u2019\u00e9mission (broche <strong>\u201d<\/strong><strong>Trig\u201d<\/strong>) et la r\u00e9ception des ultrasons (broche <strong>\u201d<\/strong><strong>Echo\u201d<\/strong>).<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2994 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm24.png\" alt=\"\" width=\"272\" height=\"175\"><\/figure>\n<\/div>\n\n\n\n<p><br>Il existe \u00e9galement des capteurs ultrasoniques \u00e0 une seule broche (<strong>\u201d<\/strong><strong>SIG\u201d)<\/strong>, comme le Grove <strong>101020010<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2996 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm25-1024x557.png\" alt=\"\" width=\"294\" height=\"162\"><\/figure>\n<\/div>\n\n\n\n<p><br>Avec \u201d<strong>pymata-express 1.4\u201d<\/strong>, pour utiliser un capteur ultrasonique, il faut d\u00e9clarer les broches servant \u00e0 l\u2019\u00e9mission et \u00e0 la r\u00e9ception des ultrasons avec la commande&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\"><strong>loop.run_until_complete(board.set_pin_mode_sonar(trigger_pin, echo_pin, Get_Distance))<\/strong><\/p>\n<p>o\u00f9&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\">&#8211; <strong>\u201d<\/strong><strong>board\u201d<\/strong> est l\u2019objet cr\u00e9\u00e9 lors de l\u2019appel de la m\u00e9thode <strong>\u201d<\/strong><strong>PymataExpress\u201d<\/strong> du module <strong>\u201d<\/strong><strong>pymata-express\u201d<\/strong>,<\/p>\n<p style=\"padding-left: 40px;\">&#8211; <strong>\u201d<\/strong><strong>trigger<\/strong>_<strong>pin\u201d<\/strong>&nbsp;est le num\u00e9ro de la broche du microcontr\u00f4leur sur laquelle est connect\u00e9 l\u2019\u00e9metteur d\u2019ultrasons,<\/p>\n<p style=\"padding-left: 40px;\">&#8211; <strong>\u201d<\/strong><strong>echo<\/strong>_<strong>pin\u201d<\/strong>&nbsp;est le num\u00e9ro de la broche du microcontr\u00f4leur sur laquelle est connect\u00e9 le r\u00e9cepteur d\u2019ultrasons,<\/p>\n<p style=\"padding-left: 40px;\">&#8211; <strong>\u201d<\/strong><strong>loop\u201d<\/strong> est la boucle des t\u00e2ches <strong>\u201d<\/strong><strong>asyncio\u201d<\/strong>&nbsp;d\u00e9clar\u00e9e ainsi&nbsp;<strong>: <\/strong><\/p>\n<p style=\"padding-left: 80px;\"><strong>loop = asyncio.get_event_loop()<\/strong>,<\/p>\n<p style=\"padding-left: 40px;\">&#8211; <strong>\u201d<\/strong><strong>Get_Distance\u201d<\/strong> est une fonction <strong>\u201d<\/strong><strong>asyncio\u201d<\/strong>&nbsp;pour r\u00e9cup\u00e9rer la valeur de la distance en cm entre le capteur et un obstacle :<br><br><\/p>\n\n\n\n<figure class=\"wp-block-table\">\n<table style=\"width: 100%; height: 24px;\">\n<tbody>\n<tr style=\"height: 21px;\">\n<td style=\"height: 24px; padding-left: 40px; width: 100%;\" bgcolor=\"#FFFFCC\">\n<p><span style=\"color: #000000;\">async def Get_Distance(data):&nbsp;&nbsp;&nbsp; <\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"color: #000000;\">global Distance&nbsp;&nbsp;&nbsp; <\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"color: #000000;\">Distance = data[1]<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n\n\n\n<p><u><br>Remarques<\/u>&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\">. La variable <strong>\u201d<\/strong><strong>data\u201d<\/strong> est une liste de 2 \u00e9l\u00e9ments (nombres d\u00e9cimaux entiers) g\u00e9n\u00e9r\u00e9e lors de la d\u00e9claration des broches du capteur dont le premier \u00e9l\u00e9ment (<strong>data[0]<\/strong>) est la valeur de <strong>\u201d<\/strong><strong>trigger<\/strong>_<strong>pin\u201d<\/strong>&nbsp;et le deuxi\u00e8me \u00e9l\u00e9ment (<strong>data[1]<\/strong>) est la distance mesur\u00e9e en cm.<\/p>\n<p style=\"padding-left: 40px;\">. Dans le cas d\u2019un capteur ultrasonique \u00e0 une broche commune pour l\u2019\u00e9mission et la r\u00e9ception des ultrasons, il suffit de d\u00e9clarer la m\u00eame broche pour <strong>\u201d<\/strong><strong>trigger<\/strong>_<strong>pin\u201d<\/strong> et <strong>\u201d<\/strong><strong>echo<\/strong>_<strong>pin\u201d<\/strong>:<\/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<h6 style=\"padding-left: 40px;\">Un capteur ultrasonique \u00e0 2 broches diff\u00e9rentes pour l\u2019\u00e9mission et la r\u00e9ception des ultrasons est connect\u00e9 \u00e0 l\u2019Arduino comme ci-dessous&nbsp;:<\/h6>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2988 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm22.png\" alt=\"\" width=\"282\" height=\"276\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm22.png 419w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm22-300x294.png 300w\" sizes=\"auto, (max-width: 282px) 100vw, 282px\" \/><\/figure>\n<\/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<h6 style=\"padding-left: 40px;\">Un capteur ultrasonique \u00e0 1 broche commune pour l\u2019\u00e9mission et la r\u00e9ception des ultrasons est connect\u00e9 \u00e0 l\u2019Arduino comme ci-dessous&nbsp;:<\/h6>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2989 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm23.png\" alt=\"\" width=\"270\" height=\"281\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm23.png 400w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm23-289x300.png 289w\" sizes=\"auto, (max-width: 270px) 100vw, 270px\" \/><\/figure>\n<\/div>\n\n<\/div>\n<\/div><\/div>\n\n\n<p><br>On peut d\u00e9finir une fonction d\u00e9clarant plus facilement les broches d\u2019un capteur ultrasonique&nbsp;:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n<table style=\"width: 100%; height: 21px;\">\n<tbody>\n<tr style=\"height: 21px;\">\n<td style=\"height: 21px; padding-left: 40px;\" bgcolor=\"#FFFFCC\">\n<p><span style=\"color: #000000;\">def Set_Sonar_Pins(board, trigger_pin, echo_pin):<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"color: #000000;\">&nbsp;loop.run_until_complete(board.set_pin_mode_sonar(trigger_pin, echo_pin, Get_Distance))<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n\n\n\n<p>&nbsp;<\/p>\n<p>Ainsi, dans le cas d\u2019un capteur ultrasonique \u00e0 2 broches diff\u00e9rentes pour l\u2019\u00e9mission (broche 8) et la r\u00e9ception (broche 9) des ultrasons, l\u2019instruction de d\u00e9claration est&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\"><strong>Set_Sonar_Pins(board, 8, 9)<br><br><\/strong><\/p>\n<p>Pour obtenir la valeur de la distance en cm entre le capteur et l\u2019obstacle, on utilise la fonction <strong>\u201d<\/strong><strong>sonar_read\u201d<\/strong> qui fait appel \u00e0 la fonction <strong>\u201d<\/strong><strong>Get_Distance\u201d<\/strong>&nbsp;d\u00e9finie lors de la d\u00e9claration des broches du capteur&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\"><strong>loop.run_until_complete(board.sonar_read(trigger_pin))<\/strong><\/p>\n<p>o\u00f9&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\">&#8211; <strong>\u201d<\/strong><strong>board\u201d<\/strong> est l\u2019objet cr\u00e9\u00e9 lors de l\u2019appel de la m\u00e9thode <strong>\u201d<\/strong><strong>PymataExpress\u201d<\/strong> du module <strong>\u201d<\/strong><strong>pymata-express\u201d<\/strong>,<\/p>\n<p style=\"padding-left: 40px;\">&#8211; <strong>\u201d<\/strong><strong>trigger<\/strong>_<strong>pin\u201d<\/strong>&nbsp;est le num\u00e9ro de la broche du microcontr\u00f4leur sur laquelle est connect\u00e9 l\u2019\u00e9metteur ultrasons.&nbsp;<br><br><\/p>\n<p>Si on d\u00e9finit une fonction, comme ci-dessous&nbsp;:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n<table style=\"width: 100%; height: 21px;\">\n<tbody>\n<tr style=\"height: 21px;\">\n<td style=\"height: 21px; padding-left: 40px;\" bgcolor=\"#FFFFCC\">\n<p><span style=\"color: #000000;\">def Sonar_Read(board, trigger_pin):<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"color: #000000;\">loop.run_until_complete(board.sonar_read(trigger_pin))<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n\n\n\n<p><br>Pour obtenir la valeur de la distance en cm entre le capteur (connect\u00e9 aux broches 8 et 9) et l\u2019obstacle, on appelle la fonction&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\"><strong>Sonar_Read(board,8)<\/strong><\/p>\n<p>La variable globale <strong>\u201d<\/strong><strong>Distance\u201d<\/strong> est alors mise \u00e0 jour via la fonction <strong>\u201d<\/strong><strong>Get_Distance\u201d<\/strong>, celle-ci \u00e9tant appel\u00e9e lors de l\u2019appel de la fonction <strong>\u201d<\/strong><strong>Sonar_Read\u201d<\/strong>.<\/p>\n\n\n\n<p><u><br>Exemple<\/u>&nbsp;:<\/p>\n<p>Le programme d\u2019application (<strong>\u201d<a href=\"https:\/\/www.ardpylab.fr\/downloads\/firmata-express\/sonar.zip\" data-wplink-url-error=\"true\">Sonar.py<\/a>\u201d<\/strong>) suivant, mesure la distance entre un capteur ultrasonique \u00e0 2 broches (comme le <strong>HC\u2010SR04) <\/strong>et un obstacle, et l\u2019affiche dans la console Python&nbsp;:<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/firmata-express\/codes\/py\/Sonar.py\" data-wplink-url-error=\"true\"><img loading=\"lazy\" decoding=\"async\" width=\"845\" height=\"1024\" class=\"wp-image-3012 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm26-845x1024.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm26-845x1024.png 845w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm26-248x300.png 248w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm26-768x931.png 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm26.png 915w\" sizes=\"auto, (max-width: 845px) 100vw, 845px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<p><strong><u><br>D\u00e9roulement du programme<\/u><\/strong><strong>&nbsp;:<\/strong><\/p>\n<p>&#8211; <u>Importation des librairies&nbsp;et d\u00e9finition de fonctions<\/u> :<\/p>\n<p style=\"padding-left: 40px;\">. Le module \u201d<strong>ConnectToArduino.py<\/strong>\u201d, contenant les fonctions de connexion \u00e0 l\u2019arduino via le protocole \u201d<strong>Firmata Express<\/strong>\u201d,<\/p>\n<p style=\"padding-left: 40px;\">. La biblioth\u00e8que <strong>\u201d<\/strong><strong>asyncio\u201d <\/strong>n\u00e9cessaire au fonctionnement de <strong>\u201d<\/strong><strong>PymataExpress\u201d<\/strong>,<\/p>\n<p style=\"padding-left: 40px;\">. La biblioth\u00e8que <strong>\u201d<\/strong><strong>time\u201d<\/strong>&nbsp;pour la gestion des dur\u00e9es d\u2019\u00e9mission et de silence.<\/p>\n<p style=\"padding-left: 40px;\">. Fonction <strong>\u201d<\/strong><strong>Get_Distance\u201d <\/strong>pour r\u00e9cup\u00e9rer la valeur de la distance entre le capteur et l\u2019obstacle,<\/p>\n<p style=\"padding-left: 40px;\">. Fonction <strong>\u201d<\/strong><strong>Set_Sonar_Pins\u201d <\/strong>pour d\u00e9clarer les broches du capteur,<\/p>\n<p style=\"padding-left: 40px;\">. Fonction <strong>\u201d<\/strong><strong>Sonar_Read\u201d <\/strong>pour effectuer la mesure de la distance,<\/p>\n<p style=\"padding-left: 40px;\">. Fonction <strong>\u201d<\/strong><strong>Arduino_Exit\u201d <\/strong>pour fermer le port COM et se d\u00e9connecter de l\u2019Arduino.<br><br><\/p>\n<p>&#8211; <u>D\u00e9claration des constantes et variables<\/u>&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\">. <strong>TRIGGER_PIN = 8<\/strong> (constante correspondant au n\u00b0 de la broche sur laquelle l\u2019\u00e9metteur est connect\u00e9)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>ECHO_PIN = 9<\/strong> (constante correspondant au n\u00b0 de la broche sur laquelle le r\u00e9cepteur est connect\u00e9)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>Distance = 0 <\/strong>(variable correspondant \u00e0 la distance entre le capteur et l\u2019obstacle)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>OldDistance = 0 <\/strong>(variable correspondant \u00e0 la valeur pr\u00e9c\u00e9dente de la distance)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PortComArduino <\/strong>(port COM sur lequel l\u2019Arduino est connect\u00e9)&nbsp;<br><br><\/p>\n<p>&#8211; <u>Connexion \u00e0 l&rsquo;Arduino<\/u>&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\">. D\u00e9tection du port COM&nbsp;:<\/p>\n<p style=\"padding-left: 80px;\"><strong>PortComArduino = SelectPortCOM()<\/strong><\/p>\n<p style=\"padding-left: 40px;\">. Tentative d\u2019ouverture du port COM s\u00e9lectionn\u00e9&nbsp;et connexion \u00e0 l\u2019Arduino:<\/p>\n<p style=\"padding-left: 80px;\"><strong>board = OpenPortCom(PortComArduino)<\/strong><\/p>\n<p style=\"padding-left: 40px;\">. Si la connexion \u00e0 l\u2019Arduino est r\u00e9ussie:<\/p>\n<p style=\"padding-left: 40px;\">&#8211;&gt; D\u00e9finition d\u2019une boucle asyncio :&nbsp;<\/p>\n<p style=\"padding-left: 80px;\"><strong>loop = asyncio.get_event_loop()<\/strong><\/p>\n<p style=\"padding-left: 40px;\">&#8211;&gt; D\u00e9claration des broches du capteur ultrasonique :<\/p>\n<p style=\"padding-left: 40px;\">&nbsp;&nbsp;&nbsp; <strong>Set_Sonar_Pins(board, TRIGGER_PIN, ECHO_PIN)<br><br><\/strong><\/p>\n<p>&#8211; <u>Boucle principale du programme (boucle \u201d<\/u><u>while True\u201d<\/u><u>)<\/u> :<\/p>\n<p style=\"padding-left: 40px;\">. Mesure de la distance : &nbsp;<strong>Sonar_Read(board,TRIGGER_PIN)<\/strong><\/p>\n<p style=\"padding-left: 40px;\">&#8211;&gt; Affichage de la distance dans la console Python si la valeur mesur\u00e9e est diff\u00e9rente de la valeur pr\u00e9c\u00e9dente.<br><br><\/p>\n<p>&#8211; <u>Fin du programme en appuyant sur <\/u><u>Ctrl-C<\/u>&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\">&#8211;&gt; Le port s\u00e9rie est ferm\u00e9.<br><br><\/p>\n<p>&#8211; <u>R\u00e9sultats dans la fen\u00eatre Python Shell<\/u>&nbsp;:<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3015 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-firm27.png\" alt=\"\" width=\"571\" height=\"404\" \/><\/figure>\n<\/div>\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=2969\"><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=3031\"><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>(prise en charge par le protocole \u201dFirmata Express\u201d) &nbsp; &nbsp; Les capteurs ultrasoniques sont compos\u00e9s d\u2019un \u00e9metteur d\u2019ultrasons, d\u2019un r\u00e9cepteur d\u2019ultrasons et d\u2019un circuit de commande. Ils sont g\u00e9n\u00e9ralement utilis\u00e9s pour mesurer une distance entre le capteur et un obstacle. Le capteur ultrasonique, le plus souvent utilis\u00e9 avec un Arduino, le HC\u2010SR04, dispose de 2 [&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-2987","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/2987","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=2987"}],"version-history":[{"count":0,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/2987\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}