{"id":4706,"date":"2020-05-08T12:47:53","date_gmt":"2020-05-08T10:47:53","guid":{"rendered":"http:\/\/www.ardpylab.fr\/?page_id=4706"},"modified":"2020-05-20T15:35:15","modified_gmt":"2020-05-20T13:35:15","slug":"projet-6-activite-1","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=4706","title":{"rendered":"Projet 6 &#8211; Activit\u00e9 1"},"content":{"rendered":"\n<h2 style=\"text-align: center;\"><em>\u201d<\/em><strong><em>Mesure d\u2019une pression absolue avec un capteur MPX4250AP<\/em><\/strong><em>\u201d<br><br><\/em><\/h2>\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>Dans cette activit\u00e9, nous allons simplement mettre en \u0153uvre l\u2019utilisation d\u2019un capteur de pression dont la sortie est reli\u00e9e \u00e0 l\u2019entr\u00e9e A0 de l\u2019Arduino , pour afficher dans la console Python ou le moniteur s\u00e9rie du logiciel&nbsp;<em>\u201d<\/em>Arduino <span style=\"font-size: inherit;\">IDE<em>\u201d<\/em> , la tension mesur\u00e9e et la pression correspondante apr\u00e8s un appui sur le bouton poussoir. Un nouvel appui sur le bouton poussoir arr\u00eate les mesures.<\/span><\/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.<br><br><\/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-4707 \" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projetpython6-3.png\" alt=\"\" width=\"596\" height=\"448\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projetpython6-3.png 577w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/projetpython6-3-300x225.png 300w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/figure>\n<\/div>\n\n\n\n<p>&nbsp;<\/p>\n<h4><span style=\"color: #3366ff;\"><strong>. <span style=\"text-decoration: underline;\">Le programme<br><br><\/span><\/strong><\/span><\/h4>\n<p>Voici le code de l\u2019activit\u00e9 en Python et en Langage Arduino :<br><br><strong>. <u>Programme en Python (\u201d<a href=\"https:\/\/www.ardpylab.fr\/downloads\/projetspython\/projet6\/projet6-activity1.zip\">Projet6\\Activity1\\PY\\Activity1.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\/Activity1\/PY\/Activity1.py\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5226 size-full\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-1.png\" alt=\"\" width=\"798\" height=\"1513\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-1.png 798w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-1-158x300.png 158w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-1-540x1024.png 540w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-1-768x1456.png 768w\" sizes=\"auto, (max-width: 798px) 100vw, 798px\" \/><\/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>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)<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p>&#8211; <u>Boucle principale du programme (boucle \u201d<\/u><u>while True\u201d<\/u><u>)<\/u> :<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-5233 size-full aligncenter\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-3.png\" alt=\"\" width=\"1188\" height=\"1776\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-3.png 1188w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-3-201x300.png 201w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-3-685x1024.png 685w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-3-768x1148.png 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-3-1027x1536.png 1027w\" sizes=\"auto, (max-width: 1188px) 100vw, 1188px\" \/><\/figure>\n<\/div>\n\n\n\n<p><strong><u><br>R\u00e9sultats dans la fen\u00eatre Python Shell<\/u><\/strong>&nbsp;:<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5229\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/05\/ProjetPython-6-1-2.png\" alt=\"\" width=\"600\" height=\"346\"><\/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-activity1.zip\">Projet6\\Activity1\\INO\\Activity1.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=1176\/#prog\"><strong>Activit\u00e9s pour les lyc\u00e9es \/ Pression \/ Activit\u00e9 1<\/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=4686\"><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=4712\"><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>\u201dMesure d\u2019une pression absolue avec un capteur MPX4250AP\u201d . Objectif Dans cette activit\u00e9, nous allons simplement mettre en \u0153uvre l\u2019utilisation d\u2019un capteur de pression dont la sortie est reli\u00e9e \u00e0 l\u2019entr\u00e9e A0 de l\u2019Arduino , pour afficher dans la console Python ou le moniteur s\u00e9rie du logiciel&nbsp;\u201dArduino IDE\u201d , la tension mesur\u00e9e et la pression [&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-4706","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/4706","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=4706"}],"version-history":[{"count":11,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/4706\/revisions"}],"predecessor-version":[{"id":5304,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/4706\/revisions\/5304"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}