{"id":3067,"date":"2021-11-05T10:29:19","date_gmt":"2021-11-05T09:29:19","guid":{"rendered":"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/"},"modified":"2022-01-05T22:41:55","modified_gmt":"2022-01-05T21:41:55","slug":"lecture-sur-un-port","status":"publish","type":"page","link":"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/","title":{"rendered":"Lecture sur un port"},"content":{"rendered":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Arduino et Python au lyc\u00e9e avec Pymata4 : partie 04\" width=\"900\" height=\"506\" src=\"https:\/\/www.youtube.com\/embed\/8_mNw7o0lrE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Deux possibilit\u00e9s :  le polling et le callback<\/h3>\n\n\n\n<p>La grande force de Pymata4 consiste \u00e0 g\u00e9rer intelligemment les lectures.<\/p>\n\n\n\n<p>Le <strong>polling<\/strong> (sondage) est la m\u00e9thode classique : dans la boucle infinie, on va lire \u00e0 intervalles r\u00e9guliers  les valeurs sur une patte donn\u00e9e.<\/p>\n\n\n\n<p>Le <strong>callback<\/strong> est souvent plus efficace. Une patte initialis\u00e9e en lecture va surveiller les valeurs. En cas de variation suffisante des mesures, une fonction (callback) sera ex\u00e9cut\u00e9e. La fonction aura comme param\u00e8tres la <strong>valeur lue<\/strong> et la <strong>date de modification<\/strong>.<\/p>\n\n\n\n<p>On retrouvera ces deux possibilit\u00e9s (que l&rsquo;on peut coupler), que soit une lecture logique ou analogique.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lecture logique (0 ou 1)<\/h3>\n\n\n\n<p>On utilise les m\u00e9thodes <strong>set_digital_input(pin,callback)<\/strong> et<strong> set_digital_read(pin)<\/strong>.<\/p>\n\n\n\n<p><em>Un exemple avec un callback uniquement<\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from pymata4 import pymata4\nimport sys\nimport time\n\ncarte = pymata4.Pymata4()\n\nprint(\"--------------- D\u00e9but --------------\")\n# Constantes\nSwitch = 2 # port du switch\n\n#------------------ fonction callback appel\u00e9e lors d'un changement du switch\ndef rapporter(data):\n    pin = data[1]\n    val= data[2]\n    temp = data[3]\n    #date = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime(temp))\n    date = time.strftime(\"%H:%M:%S\", time.localtime(temp))\n    if (val==1):\n        print(f\"Mise \u00e0 ON \u00e0 {date}\")\n    else :\n        print(f\"Mise \u00e0 OFF \u00e0 {date}\")\n\n\n#----------------  programme principal\ntry :\n    carte.set_pin_mode_digital_input(Switch,callback=rapporter)\n    time.sleep(1)\n    while True:\n        time.sleep(0.1)\n\nexcept KeyboardInterrupt : # si on tape Ctl+C\n    print(\"--------------- Fin --------------\")\n    carte.shutdown()\n    sys.exit(0)<\/pre>\n\n\n\n<p><em>Un exemple par sondage<\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from pymata4 import pymata4\nimport sys\nimport time\n\ncarte = pymata4.Pymata4()\n\nprint(\"--------------- D\u00e9but --------------\")\n# Constantes\nDelai=5    # d\u00e9lai entre deux lectures\nSwitch = 2 # port du switch\n\n\n#----------------  programme principal\ntry :\n    carte.set_pin_mode_digital_input(Switch)\n    time.sleep(1)\n    while True:\n        (val,temp) = carte.digital_read(Switch)\n        #date = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime(temp))\n        date = time.strftime(\"%H:%M:%S\", time.localtime(temp))\n        if (val==1):\n            print(f\"ON depuis {date}\")\n        else :\n            print(f\"OFF depuis {date}\")\n        time.sleep(Delai)\nexcept KeyboardInterrupt : # si on tape Ctl+C\n    print(\"--------------- Fin --------------\")\n    carte.shutdown()\n    sys.exit(0)\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Lecture analogique : entre 0 et 1023<\/h2>\n\n\n\n<p>La lecture se fera sur une patte analogique A_i (Analog input) avec Pymata4. <\/p>\n\n\n\n<p>On utilise ici les m\u00e9thode&nbsp;<strong>set_pin_mode_analog_input(pin)<\/strong> et <strong>analog_read(pin)<\/strong>.<\/p>\n\n\n\n<p>Pour le d\u00e9clenchement du callback, on utilisera le param\u00e8tre <strong>differential<\/strong> qui \u00e9cart l&rsquo;\u00e9cart minimum requis entre les mesures.<\/p>\n\n\n\n<p><em>Exemple avec callback<\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from pymata4 import pymata4\nimport sys\nimport time\n\ncarte = pymata4.Pymata4()\n\nprint(\"--------------- D\u00e9but --------------\")\n# Constantes\nDelai=5    # d\u00e9lai entre deux lectures\nLight = 1 # port du capteur analogique\nSensibilite = 50 #\u00e9cart entre deux valeurs mesur\u00e9es pour d\u00e9clencher le callback\n\n#------------------ fonction callback appel\u00e9e lors d'un changement de valeur\ndef rapporter(data):\n    pin = data[1]\n    val= data[2]\n    temp = data[3]\n    date = time.strftime(\"%H:%M:%S\", time.localtime(temp))\n    print(f\"Nouvelle val = {val} \u00e0 {date}\")\n\n#----------------  programme principal\ntry :\n    carte.set_pin_mode_analog_input(Light,callback=rapporter,differential=Sensibilite)\n    time.sleep(1)\n    while True:\n        time.sleep(0.1)\nexcept KeyboardInterrupt : # si on tape Ctl+C\n    print(\"--------------- Fin --------------\")\n    carte.shutdown()\n    sys.exit(0)<\/pre>\n\n\n\n<p><em>Exemple avec sondage<\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from pymata4 import pymata4\nimport sys\nimport time\n\ncarte = pymata4.Pymata4()\n\nprint(\"--------------- D\u00e9but --------------\")\n# Constantes\nDelai=5    # d\u00e9lai entre deux lectures\nLight = 1 # port du capteur analogique\n\n#----------------  programme principal\ntry :\n    carte.set_pin_mode_analog_input(Light)\n    time.sleep(1)\n    while True:\n        (val,temp) = carte.analog_read(Light)\n        date = time.strftime(\"%H:%M:%S\", time.localtime())\n        print(f\"val = {val} \u00e0 {date}\")\n        time.sleep(Delai)\nexcept KeyboardInterrupt : # si on tape Ctl+C\n    print(\"--------------- Fin --------------\")\n    carte.shutdown()\n    sys.exit(0)<\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/\">Retour \u00e0 la rubrique<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deux possibilit\u00e9s : le polling et le callback La grande force de Pymata4 consiste \u00e0 g\u00e9rer intelligemment les lectures. Le polling (sondage) est la m\u00e9thode classique : dans la boucle&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3046,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3067","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Lecture sur un port - Maths &amp; Num\u00e9rique<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Lecture sur un port - Maths &amp; Num\u00e9rique\" \/>\n<meta property=\"og:description\" content=\"Deux possibilit\u00e9s : le polling et le callback La grande force de Pymata4 consiste \u00e0 g\u00e9rer intelligemment les lectures. Le polling (sondage) est la m\u00e9thode classique : dans la boucle&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/\" \/>\n<meta property=\"og:site_name\" content=\"Maths &amp; Num\u00e9rique\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-05T21:41:55+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/\",\"url\":\"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/\",\"name\":\"Lecture sur un port - Maths &amp; Num\u00e9rique\",\"isPartOf\":{\"@id\":\"https:\/\/wordpress.callac.online\/#website\"},\"datePublished\":\"2021-11-05T09:29:19+00:00\",\"dateModified\":\"2022-01-05T21:41:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/wordpress.callac.online\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/wordpress.callac.online\/index.php\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Arduino en Python : le module Pymata4\",\"item\":\"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Lecture sur un port\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wordpress.callac.online\/#website\",\"url\":\"https:\/\/wordpress.callac.online\/\",\"name\":\"Maths & Num\u00e9rique\",\"description\":\"Des outils pour les enseignants de math\u00e9matiques et de num\u00e9rique\",\"publisher\":{\"@id\":\"https:\/\/wordpress.callac.online\/#\/schema\/person\/04061f1ca2c2c42039142a704be95940\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wordpress.callac.online\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/wordpress.callac.online\/#\/schema\/person\/04061f1ca2c2c42039142a704be95940\",\"name\":\"dlefur\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/wordpress.callac.online\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g\",\"caption\":\"dlefur\"},\"logo\":{\"@id\":\"https:\/\/wordpress.callac.online\/#\/schema\/person\/image\/\"},\"description\":\"Enseignant de math\u00e9matiques Lyc\u00e9e Pasteur S\u00e3o Paulo\",\"sameAs\":[\"http:\/\/wordpress.callac.online\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Lecture sur un port - Maths &amp; Num\u00e9rique","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/","og_locale":"fr_FR","og_type":"article","og_title":"Lecture sur un port - Maths &amp; Num\u00e9rique","og_description":"Deux possibilit\u00e9s : le polling et le callback La grande force de Pymata4 consiste \u00e0 g\u00e9rer intelligemment les lectures. Le polling (sondage) est la m\u00e9thode classique : dans la boucle&hellip;","og_url":"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/","og_site_name":"Maths &amp; Num\u00e9rique","article_modified_time":"2022-01-05T21:41:55+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/","url":"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/","name":"Lecture sur un port - Maths &amp; Num\u00e9rique","isPartOf":{"@id":"https:\/\/wordpress.callac.online\/#website"},"datePublished":"2021-11-05T09:29:19+00:00","dateModified":"2022-01-05T21:41:55+00:00","breadcrumb":{"@id":"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/lecture-sur-un-port\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/wordpress.callac.online\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/wordpress.callac.online\/index.php\/python\/"},{"@type":"ListItem","position":3,"name":"Arduino en Python : le module Pymata4","item":"https:\/\/wordpress.callac.online\/index.php\/python\/arduino-en-python-le-module-pymata4\/"},{"@type":"ListItem","position":4,"name":"Lecture sur un port"}]},{"@type":"WebSite","@id":"https:\/\/wordpress.callac.online\/#website","url":"https:\/\/wordpress.callac.online\/","name":"Maths & Num\u00e9rique","description":"Des outils pour les enseignants de math\u00e9matiques et de num\u00e9rique","publisher":{"@id":"https:\/\/wordpress.callac.online\/#\/schema\/person\/04061f1ca2c2c42039142a704be95940"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wordpress.callac.online\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/wordpress.callac.online\/#\/schema\/person\/04061f1ca2c2c42039142a704be95940","name":"dlefur","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/wordpress.callac.online\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4a9e17be136808c6597f28aa2b6c13126dab066fdc2198ff60090972c9b7fafc?s=96&d=mm&r=g","caption":"dlefur"},"logo":{"@id":"https:\/\/wordpress.callac.online\/#\/schema\/person\/image\/"},"description":"Enseignant de math\u00e9matiques Lyc\u00e9e Pasteur S\u00e3o Paulo","sameAs":["http:\/\/wordpress.callac.online"]}]}},"_links":{"self":[{"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages\/3067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/comments?post=3067"}],"version-history":[{"count":8,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages\/3067\/revisions"}],"predecessor-version":[{"id":3177,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages\/3067\/revisions\/3177"}],"up":[{"embeddable":true,"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/pages\/3046"}],"wp:attachment":[{"href":"https:\/\/wordpress.callac.online\/index.php\/wp-json\/wp\/v2\/media?parent=3067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}