{"id":4712,"date":"2020-05-08T12:56:32","date_gmt":"2020-05-08T10:56:32","guid":{"rendered":"http:\/\/www.ardpylab.fr\/?page_id=4712"},"modified":"2020-05-20T15:33:48","modified_gmt":"2020-05-20T13:33:48","slug":"projet-6-activite-2","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=4712","title":{"rendered":"Projet 6 &#8211; Activit\u00e9 2"},"content":{"rendered":"\n<h2 style=\"text-align: center;\"><em>\u201d<strong>Indicateur de pression<\/strong><\/em><em>\u201d<br><br><\/em><\/h2>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"445\" height=\"424\" class=\"wp-image-5243 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-1.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-1.png 445w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-1-300x286.png 300w\" sizes=\"auto, (max-width: 445px) 100vw, 445px\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n\n\n\n<h4><span style=\"color: #3366ff;\"><strong><br>. <span style=\"text-decoration: underline;\">Objectif<br><br><\/span><\/strong><\/span><\/h4>\n<p>De fa\u00e7on \u00e0 s\u2019assurer que la pression mesur\u00e9e par notre capteur MPX4250AP ne soit pas sup\u00e9rieure ou inf\u00e9rieure \u00e0 la pression maximale (250 kPa) ou minimale (20 kPa) admissible, nous allons dans cette activit\u00e9 utiliser une DEL rouge qui sera allum\u00e9e quand la pression est sup\u00e9rieure ou inf\u00e9rieure \u00e0 des seuils \u00e0 d\u00e9finir afin de pr\u00e9venir de leurs d\u00e9passements.<\/p>\n<p>La pression mesur\u00e9e sera modifi\u00e9e avec une seringue d\u2019un volume utile de 60 mL fix\u00e9e au capteur par l\u2019interm\u00e9diaire d\u2019un tuyau.<\/p>\n<p>En d\u00e9pla\u00e7ant le piston, initialement plac\u00e9 sur la graduation 30 mL, on fera varier le volume de l\u2019air enferm\u00e9 dans le corps de la seringue et donc la pression appliqu\u00e9e sur le capteur.<\/p>\n<p>La pression est mesur\u00e9e apr\u00e8s un appui sur le bouton poussoir. Un nouvel appui sur le bouton poussoir arr\u00eate les mesures.<\/p>\n\n\n\n<p>&nbsp;<\/p>\n<h4><span style=\"color: #3366ff;\"><strong>. <span style=\"text-decoration: underline;\">Le programme<\/span><\/strong><\/span><\/h4>\n<p><br>Le code de l\u2019activit\u00e9 en Python ou en langage Arduino pourra \u00eatre modifi\u00e9 pour voir l\u2019influence des variables (seuils de pression)<br><br><\/p>\n<p><strong>. <u>Programme en Python (\u201d<a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet6\/projet6-activity2.zip\">Projet6\\Activity2\\PY\\Activity2.py<\/a>\u201d)<\/u><\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet6\/Activity2\/PY\/Activity2.py\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5244 size-full\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-2.png\" alt=\"\" width=\"817\" height=\"1717\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-2.png 817w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-2-143x300.png 143w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-2-487x1024.png 487w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-2-768x1614.png 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-2-731x1536.png 731w\" sizes=\"auto, (max-width: 817px) 100vw, 817px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<p><strong><u><br \/>D\u00e9roulement du programme<\/u><\/strong><strong>\u00a0:<\/strong><\/p>\n<p>&#8211; <u>Importation des librairies\u00a0et 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 Satandard\u201d<\/strong>,<\/p>\n<p style=\"padding-left: 40px;\">. Le module <strong>\u201dPyFirmataDef.py\u201d<\/strong> regroupant toutes les fonctions utiles \u00e0 l\u2019utilisation de <strong>\u201d<\/strong><strong>PyFirmata<\/strong><strong>\u201d<\/strong> (fonction de d\u00e9claration des entr\u00e9es et sorties, de lectures, d\u2019\u00e9critures\u2026),<\/p>\n<p style=\"padding-left: 40px;\">. La biblioth\u00e8que <strong>\u201d<\/strong><strong>time<\/strong><strong>\u201d<\/strong> pour la gestion des temps de pause.<br \/><br \/><\/p>\n<p>&#8211; <u>D\u00e9claration des constantes et variables<\/u>\u00a0:<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PinSensor = 0 <\/strong>(cst correspondant au n\u00b0 de la broche A0 sur laquelle le capteur de pression est connect\u00e9)<\/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>PinLed = 9<\/strong> (cst correspondant au n\u00b0 de la broche sur laquelle la DEL est connect\u00e9e)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PMax = 200<\/strong> (Pression maximale admissible en kPa)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PMin = 55<\/strong> (Pression minimale admissible en kPa)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>ValSensor = 0 <\/strong>(variable pour stocker la valeur de la broche du capteur de pression)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>tension = 0 <\/strong>(variable correspondant \u00e0 la valeur de la tension en V de la broche du capteur de pression)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>Pression = 0<\/strong> (variable correspondant \u00e0 la pression en kPa calcul\u00e9e \u00e0 partir de la valeur de la broche du capteur)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>OldPression = 0<\/strong> (variable correspondant \u00e0 la pression en kPa calcul\u00e9e pr\u00e9c\u00e9demment)<\/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>OldState = 0<\/strong> (variable pour stocker la valeur pr\u00e9c\u00e9dente de la variable <strong>state<\/strong>)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PortComArduino <\/strong>(port COM sur lequel l\u2019Arduino est connect\u00e9)\u00a0<br \/><br \/><\/p>\n<p>&#8211; <u>Connexion \u00e0 l&rsquo;Arduino<\/u>\u00a0:<\/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; D\u00e9claration de la broche du capteur de pression en entr\u00e9e analogique\u00a0:<\/p>\n<p style=\"padding-left: 120px;\"><strong>InputPinSensor = AnalogInput(board, PinSensor) <\/strong><\/p>\n<p style=\"padding-left: 80px;\">&#8211; D\u00e9claration de la broche du bouton poussoir en entr\u00e9e num\u00e9rique\u00a0:<\/p>\n<p style=\"padding-left: 120px;\"><strong>InputPinButton = DigitalInput(board, PinButton)<\/strong><\/p>\n<p style=\"padding-left: 80px;\">&#8211; Lancement de l\u2019it\u00e9rateur :<\/p>\n<p style=\"padding-left: 120px;\"><strong>ArduinoIterateur = Iterateur(board)<\/strong><\/p>\n<p style=\"padding-left: 80px;\">&#8211; Attente de 500 ms pour le lancement de l\u2019it\u00e9rateur\u00a0:<\/p>\n<p style=\"padding-left: 120px;\"><strong>time.sleep(0.5)<br \/><br \/><\/strong><\/p>\n<p>&#8211; <u>Boucle principale du programme (boucle \u201d<\/u><u>while True\u201d<\/u><u>)<\/u> :<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5249 size-full\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-3.png\" alt=\"\" width=\"1137\" height=\"1969\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-3.png 1137w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-3-173x300.png 173w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-3-591x1024.png 591w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-3-768x1330.png 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-2-3-887x1536.png 887w\" sizes=\"auto, (max-width: 1137px) 100vw, 1137px\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n\n\n\n<p><strong>. <u>Programme en langage Arduino (\u201d<a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet6\/projet6-activity2.zip\">Projet6\\Activity2\\INO\\Activity2.ino<\/a>\u201d)<\/u><\/strong><\/p>\n<p><br \/>Le code de l\u2019activit\u00e9 en langage Arduino a d\u00e9j\u00e0 \u00e9t\u00e9 \u00e9tudi\u00e9 dans la partie:<\/p>\n<p>\u201d<a href=\"https:\/\/www.ardpylab.fr\/?page_id=1197\/#prog\"><strong>Activit\u00e9s pour les lyc\u00e9es \/ Pression \/ Activit\u00e9 2<\/strong><\/a>\u201d<\/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=4706\"><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=4716\"><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>\u201dIndicateur de pression\u201d &nbsp; . Objectif De fa\u00e7on \u00e0 s\u2019assurer que la pression mesur\u00e9e par notre capteur MPX4250AP ne soit pas sup\u00e9rieure ou inf\u00e9rieure \u00e0 la pression maximale (250 kPa) ou minimale (20 kPa) admissible, nous allons dans cette activit\u00e9 utiliser une DEL rouge qui sera allum\u00e9e quand la pression est sup\u00e9rieure ou inf\u00e9rieure \u00e0 [&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-4712","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/4712","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=4712"}],"version-history":[{"count":8,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/4712\/revisions"}],"predecessor-version":[{"id":5302,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/4712\/revisions\/5302"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}