{"id":3389,"date":"2020-04-24T17:10:41","date_gmt":"2020-04-24T15:10:41","guid":{"rendered":"http:\/\/www.ardpylab.fr\/?page_id=3389"},"modified":"2020-05-10T17:55:45","modified_gmt":"2020-05-10T15:55:45","slug":"projet-2-activite-4","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=3389","title":{"rendered":"Projet 2 &#8211; Activit\u00e9 4"},"content":{"rendered":"\n<h2 style=\"text-align: center;\"><em><strong>\u201dDEL RVB &#8211; Synth\u00e8se additive des couleurs<\/strong><\/em><em><strong>\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-3403 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-circuit-6.jpg\" alt=\"\" width=\"553\" height=\"315\"><\/figure>\n<\/div>\n\n\n\n<p>\u00a0<\/p>\n<h4><strong><span style=\"color: #3366ff;\">.\u00a0<span style=\"text-decoration: underline;\">Objectif<br \/><br \/><\/span><\/span><\/strong><\/h4>\n<p>Cette activit\u00e9 est une application directe des activit\u00e9s pr\u00e9c\u00e9dentes. Nous allons utiliser 3 potentiom\u00e8tres respectivement connect\u00e9s aux entr\u00e9es analogiques A2, A1 et A0 de l&rsquo;Arduino pour r\u00e9gler les luminosit\u00e9s des DELs Rouge, Verte et Bleue d&rsquo;une DEL RVB \u00e0 cathode commune.<\/p>\n<p>En effet, une DEL RVB \u00e0 cathode commune dispose de 4 broches, 1 cathode et 3 anodes. Chaque anode correspond \u00e0 une couleur (Rouge, Vert et Bleu).<\/p>\n<p>En modulant les signaux sur les anodes, il est possible d&rsquo;obtenir de multiples couleurs avec la DEL RVB. C&rsquo;est le principe de la synth\u00e8se additive des couleurs des pixels des \u00e9crans d&rsquo;ordinateur ou de t\u00e9l\u00e9vision (<a href=\"https:\/\/www.ardpylab.fr\/downloads\/docs\/syntheservb.pdf\" data-wplink-url-error=\"true\">rappels sur la synth\u00e8se additive des couleurs<\/a>).<\/p>\n<p><br \/>Le code de l\u2019activit\u00e9\u00a0permet :<\/p>\n<p style=\"padding-left: 40px;\">&#8211; Dans un premier temps, d\u2019allumer la DEL RVB en appuyant sur le bouton poussoir,<\/p>\n<p style=\"padding-left: 40px;\">&#8211; de faire varier la luminosit\u00e9 des DELs en fonction de la tension des entr\u00e9es A2, A1 et A0,<\/p>\n<p style=\"padding-left: 40px;\">&#8211; d\u2019\u00e9teindre la DEL RVB en appuyant de nouveau sur le bouton poussoir.<\/p>\n<p>\u00a0<\/p>\n<h4><strong><span style=\"color: #3366ff;\">.\u00a0<span style=\"text-decoration: underline;\">Le programme<br \/><br \/><\/span><\/span><\/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\/projet2\/projet2-activity4.zip\" data-wplink-url-error=\"true\">Projet2\/Activity4\/PY\/Activity4.py\u201d<\/a>)<\/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\/projet2\/Activity4\/PY\/Activity4.py\" data-wplink-url-error=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3392\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-2-557x1024.png\" alt=\"\" width=\"800\" height=\"1470\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-2-557x1024.png 557w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-2-163x300.png 163w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-2-768x1411.png 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-2-836x1536.png 836w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-2.png 898w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/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>PinLEDR = 11<\/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>PinLEDV = 9<\/strong> (constante correspondant au n\u00b0 de la broche sur laquelle la DEL verte est connect\u00e9e)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PinLEDB = 10<\/strong> (constante correspondant au n\u00b0 de la broche sur laquelle la DEL bleue est connect\u00e9e)<\/p>\n<p style=\"padding-left: 40px;\"><strong>. PinPOTR = 2 <\/strong>(constante correspondant au n\u00b0 de la broche sur laquelle le potentiom\u00e8tre de le DEL rouge est connect\u00e9)<\/p>\n<p style=\"padding-left: 40px;\"><strong>. PinPOTV = 1 <\/strong>(constante correspondant au n\u00b0 de la broche sur laquelle le potentiom\u00e8tre de le DEL verte est connect\u00e9)<\/p>\n<p style=\"padding-left: 40px;\"><strong>. PinPOTB = 0 <\/strong>(constante correspondant au n\u00b0 de la broche sur laquelle le potentiom\u00e8tre de le DEL bleue 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>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>BrightnessR = 0 <\/strong>(variable correspondant \u00e0 la luminosit\u00e9 de la DEL rouge)<\/p>\n<p style=\"padding-left: 40px;\"><strong>. BrightnessB = 0 <\/strong>(variable correspondant \u00e0 la luminosit\u00e9 de la DEL bleue)<\/p>\n<p style=\"padding-left: 40px;\"><strong>. BrightnessV = 0 <\/strong>(variable correspondant \u00e0 la luminosit\u00e9 de la DEL verte)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>PortComArduino <\/strong>(port COM sur lequel l\u2019Arduino est connect\u00e9)<br><br><\/p>\n\n\n\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; D\u00e9claration des broches des potentiom\u00e8tres en entr\u00e9es analogiques&nbsp;:<\/p>\n<p style=\"padding-left: 120px;\"><strong>PinAnalogInputR = AnalogInput(board, PinPOTR) <\/strong><strong>PinAnalogInputV = AnalogInput(board, PinPOTV)<br><\/strong><strong>PinAnalogInputB = AnalogInput(board, PinPOTB)<\/strong><\/p>\n<p style=\"padding-left: 80px;\">&#8211; D\u00e9claration des broches de la DEL RVB en sorties analogiques&nbsp;:<\/p>\n<p style=\"padding-left: 120px;\"><strong>PinAnalogOutputR = AnalogOutput(board, PinLEDR)<br><\/strong><strong>PinAnalogOutputV = AnalogOutput(board, PinLEDV)<br><\/strong><strong>PinAnalogOutputB = AnalogOutput(board, PinLEDB)<\/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=\"867\" height=\"1024\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity3-1-867x1024.png\" alt=\"\" class=\"wp-image-3378\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity3-1-867x1024.png 867w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity3-1-254x300.png 254w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity3-1-768x907.png 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity3-1-1300x1536.png 1300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity3-1-1734x2048.png 1734w\" sizes=\"auto, (max-width: 867px) 100vw, 867px\" \/><\/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\/projet2\/projet2-activity4.zip\" data-wplink-url-error=\"true\">Projet2\/Activity4\/INO\/Activity4.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\/projet2\/Activity4\/INO\/Activity4\/Activity4.ino\" data-wplink-url-error=\"true\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"1024\" class=\"wp-image-3396 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-3-677x1024.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-3-677x1024.png 677w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-3-198x300.png 198w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-3.png 754w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/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\/projet2-activity4-4-609x1024.png\" alt=\"\" class=\"wp-image-3397\" width=\"879\" height=\"1478\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-4-609x1024.png 609w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-4-178x300.png 178w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-4-768x1292.png 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-4-913x1536.png 913w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-4-1217x2048.png 1217w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/projet2-activity4-4.png 2038w\" sizes=\"auto, (max-width: 879px) 100vw, 879px\" \/><\/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=3373\"><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=3436\"><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>\u201dDEL RVB &#8211; Synth\u00e8se additive des couleurs\u201d &nbsp; \u00a0 .\u00a0Objectif Cette activit\u00e9 est une application directe des activit\u00e9s pr\u00e9c\u00e9dentes. Nous allons utiliser 3 potentiom\u00e8tres respectivement connect\u00e9s aux entr\u00e9es analogiques A2, A1 et A0 de l&rsquo;Arduino pour r\u00e9gler les luminosit\u00e9s des DELs Rouge, Verte et Bleue d&rsquo;une DEL RVB \u00e0 cathode commune. En effet, une DEL [&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-3389","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/3389","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=3389"}],"version-history":[{"count":0,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/3389\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}