{"id":3219,"date":"2020-04-23T17:05:42","date_gmt":"2020-04-23T15:05:42","guid":{"rendered":"http:\/\/www.ardpylab.fr\/?page_id=3219"},"modified":"2020-05-10T17:39:18","modified_gmt":"2020-05-10T15:39:18","slug":"projet-1-activite-3","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=3219","title":{"rendered":"Projet 1 &#8211; Activit\u00e9 3"},"content":{"rendered":"\n<h2 style=\"text-align: center;\"><em><strong>\u201dAllumer ou \u00e9teindre une DEL <br><\/strong><\/em><em><strong>avec un bouton-poussoir\u201d<br><\/strong><\/em><\/h2>\n<p>&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-3297 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-circuit4.png\" alt=\"\" width=\"451\" height=\"351\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-circuit4.png 567w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-circuit4-300x233.png 300w\" sizes=\"auto, (max-width: 451px) 100vw, 451px\" \/><\/figure>\n<\/div>\n\n\n\n<h4>\u00a0<\/h4>\n<h4><strong><span style=\"color: #3366ff;\">. <span style=\"text-decoration: underline;\">Objectif<\/span><\/span><br \/><br \/><\/strong><\/h4>\n<p>Dans cette activit\u00e9, quand les DELs sont \u00e9teintes, si on appuie sur le bouton poussoir, une DEL pr\u00e9alablement choisie s\u2019allume, mais contrairement \u00e0 l&rsquo;activit\u00e9 pr\u00e9c\u00e9dente la DEL ne s&rsquo;\u00e9teint pas quand on rel\u00e2che le bouton poussoir.<\/p>\n<p>En effet, si une des DELs est allum\u00e9e, elle s\u2019\u00e9teint en appuyant \u00e0 nouveau sur le bouton poussoir. Cette fois, le principe de fonctionnement du bouton poussoir est comme celui d\u2019un interrupteur.<\/p>\n<p>Pour r\u00e9aliser cette activit\u00e9, on va demander \u00e0 l\u2019Arduino d\u2019interroger l&rsquo;\u00e9tat logique (<strong>niveau haut ou bas<\/strong>) de la broche du bouton poussoir qui a \u00e9t\u00e9 d\u00e9clar\u00e9 comme une entr\u00e9e num\u00e9rique. A l&rsquo;aide de variables permettant de stocker les valeurs (actuelle et pr\u00e9c\u00e9dente) de cet \u00e9tat, l&rsquo;Arduino pourra savoir quelle action effectuer (allumer ou \u00e9teindre la DEL) apr\u00e8s l\u2019appui sur le bouton poussoir.<\/p>\n<p>Le code pourra \u00eatre modifi\u00e9 pour voir l\u2019influence des variables (num\u00e9ro de la broche de la DEL).<\/p>\n<p>\u00a0<\/p>\n<h4><strong><span style=\"color: #3366ff;\">.\u00a0<span style=\"text-decoration: underline;\">Le programme<br \/><\/span><\/span><br \/><\/strong><\/h4>\n<h4><span style=\"color: #000000;\"><strong><a id=\"prog1\"><\/a>. Programme en Python (\u201d<a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet1\/projet1-activity3.zip\" data-wplink-url-error=\"true\">Projet1\/Activity3\/PY\/Activity3.py<\/a>\u201d)<\/strong><\/span><\/h4>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet1\/Activity3\/PY\/Activity3.py\" data-wplink-url-error=\"true\"><img loading=\"lazy\" decoding=\"async\" width=\"909\" height=\"1015\" class=\"wp-image-3222 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-1.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-1.png 909w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-1-269x300.png 269w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-1-768x858.png 768w\" sizes=\"auto, (max-width: 909px) 100vw, 909px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<p><strong><u>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 <strong>\u201dConnectToArduino.py\u201d, <\/strong>contenant les fonctions de connexion \u00e0 l\u2019Arduino via le protocole <strong>\u201dFirmata standard\u201d<\/strong>,<\/p>\n<p style=\"padding-left: 40px;\">. Le module <strong>\u201d<\/strong><strong>PyFirmataDef.Py\u201d<\/strong> regroupant toutes les fonctions utiles \u00e0 l\u2019utilisation de <strong>\u201d<\/strong><strong>PyFirmata\u201d<\/strong>&nbsp;(fonction de d\u00e9claration des entr\u00e9es et sorties, d\u2019it\u00e9rateur, d\u2019\u00e9critures\u2026)<\/p>\n<p style=\"padding-left: 40px;\">. La biblioth\u00e8que <strong>\u201dt<\/strong><strong>ime\u201d <\/strong>pour la gestion des temps de pause.<br><br><\/p>\n<p>&#8211; <u>D\u00e9claration des constantes et variables<\/u>&nbsp;:<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PinLED = 8<\/strong> (constante correspondant au n\u00b0 de la broche sur laquelle la DEL rouge est connect\u00e9e)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PinButton = 12 <\/strong>(cst correspondant au n\u00b0 de la broche sur laquelle le bouton poussoir est connect\u00e9)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>ValButton = 0<\/strong> (variable pour stocker la valeur de l\u2019\u00e9tat logique de la broche du bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>OldValButton = 0<\/strong> (variable pour stocker la valeur pr\u00e9c\u00e9dente de l\u2019\u00e9tat logique de la broche du bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>State = 0<\/strong> (variable correspondant \u00e0 l\u2019action \u00e0 effectuer)<\/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, tentative d\u2019ouverture du port COM s\u00e9lectionn\u00e9 et connexion \u00e0 l\u2019Arduino:<\/p>\n<p style=\"padding-left: 80px;\"><strong>PortComArduino = SelectPortCOM()<\/strong><\/p>\n<p style=\"padding-left: 80px;\"><strong>board = OpenPortCom(PortComArduino)<br><br><\/strong><\/p>\n<p style=\"padding-left: 40px;\">. Si la connexion \u00e0 l\u2019Arduino est r\u00e9ussie:<\/p>\n<p style=\"padding-left: 80px;\">&#8211; Lancement de l\u2019it\u00e9rateur&nbsp;:<\/p>\n<p style=\"padding-left: 120px;\"><strong>ArduinoIterateur = Iterateur(board)<\/strong>,<\/p>\n<p style=\"padding-left: 80px;\">&#8211; D\u00e9claration de la broche du bouton poussoir en entr\u00e9e digitale&nbsp;:<\/p>\n<p style=\"padding-left: 120px;\"><strong>InputPin = DigitalInput(board, PinButton)<\/strong>,<\/p>\n<p style=\"padding-left: 80px;\">&#8211; Attente de 500 ms pour le lancement de l\u2019it\u00e9rateur<br><br><\/p>\n<p>&#8211; <u>Boucle principale du programme (boucle \u201d<\/u><u>while True\u201d<\/u><u>)<\/u> :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1007\" height=\"1024\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-2-1007x1024.png\" alt=\"\" class=\"wp-image-3223\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-2-1007x1024.png 1007w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-2-295x300.png 295w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-2-768x781.png 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-2-1510x1536.png 1510w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-2-2014x2048.png 2014w\" sizes=\"auto, (max-width: 1007px) 100vw, 1007px\" \/><\/figure>\n\n\n\n<h4>\u00a0<\/h4>\n<h4><span style=\"color: #000000;\"><strong><a id=\"prog2\"><\/a>. Programme en langage Arduino (\u201d<a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet1\/projet1-activity3.zip\" data-wplink-url-error=\"true\">Projet1\/Activity3\/INO\/Activity3.ino<\/a>\u201d)<\/strong><\/span><\/h4>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet1\/Activity3\/INO\/Activity3\/Activity3.ino\" data-wplink-url-error=\"true\"><img loading=\"lazy\" decoding=\"async\" width=\"764\" height=\"760\" class=\"wp-image-3224 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-3.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-3.png 764w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-3-300x298.png 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-3-150x150.png 150w\" sizes=\"auto, (max-width: 764px) 100vw, 764px\" \/><\/a><\/figure>\n<\/div>\n<p><strong><u>D\u00e9roulement du programme<\/u><\/strong><strong>\u00a0:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-4-680x1024.png\" alt=\"\" class=\"wp-image-3225\" width=\"708\" height=\"1066\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-4-680x1024.png 680w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-4-199x300.png 199w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-4-768x1156.png 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-4-1020x1536.png 1020w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-4-1361x2048.png 1361w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet1-Activity3-4.png 1508w\" sizes=\"auto, (max-width: 708px) 100vw, 708px\" \/><\/figure>\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=3200\"><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=3243\"><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>\u201dAllumer ou \u00e9teindre une DEL avec un bouton-poussoir\u201d &nbsp; \u00a0 . Objectif Dans cette activit\u00e9, quand les DELs sont \u00e9teintes, si on appuie sur le bouton poussoir, une DEL pr\u00e9alablement choisie s\u2019allume, mais contrairement \u00e0 l&rsquo;activit\u00e9 pr\u00e9c\u00e9dente la DEL ne s&rsquo;\u00e9teint pas quand on rel\u00e2che le bouton poussoir. En effet, si une des DELs est [&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-3219","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/3219","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=3219"}],"version-history":[{"count":0,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/3219\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}