microc:micropython:tuto1gpio

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
microc:micropython:tuto1gpio [2025/02/17 16:00] – [3.3 PRG3 - Afficheur graphique] philmicroc:micropython:tuto1gpio [2025/06/19 19:29] (Version actuelle) – modification externe 127.0.0.1
Ligne 29: Ligne 29:
     * PRG5. **affbme280.py** - Afficheur graphique et capteur numérique : afficher la température, l'humidité et la pression ambiantes.      * PRG5. **affbme280.py** - Afficheur graphique et capteur numérique : afficher la température, l'humidité et la pression ambiantes. 
     * PRG6. **afftsl2591** - Afficheur graphique et capteur numérique : afficher la luminosité ambiante.     * PRG6. **afftsl2591** - Afficheur graphique et capteur numérique : afficher la luminosité ambiante.
 +    * PRG7. **webserver** - Transmettre des grandeurs physiques à un serveur Web
  
 \\ \\
Ligne 209: Ligne 210:
 </tabs> </tabs>
  
 +{{ :microc:micropython:buzzer.jpg?nolink&200|Buzzer passif}}
 === 3.2 PRG2 - Sortie numérique (PWM) === === 3.2 PRG2 - Sortie numérique (PWM) ===
-<callout type="primary" title="Objectif" icon="true">Jouer des notes de musique </callout>+<callout type="primary" title="Objectif" icon="true">Jouer des notes de musique</callout> 
 + 
 +== 3.2.1 Matériels == 
 +  * **Transducteur** : buzzer passif <html><a href="https://wiki.seeedstudio.com/Grove-Passive-Buzzer/" target="_blank">Grove</a></html> 
 + 
 +== 3.2.2 Généralités == 
 +<<La modulation de largeur d'impulsions (MLI ; en anglais : Pulse Width Modulation, soit PWM), est une technique couramment utilisée pour synthétiser des signaux pseudo analogiques à l'aide de circuits numériques (tout ou rien, 1 ou 0), ou plus généralement à états discrets>>. <html><a href="https://fr.wikipedia.org/wiki/Modulation_de_largeur_d%27impulsion#:~:text=La%20modulation%20de%20largeur%20d,plus%20g%C3%A9n%C3%A9ralement%20%C3%A0%20%C3%A9tats%20discrets." target="_blank">Wikipédia</a></html> 
 + 
 +== 3.2.3 Activités de programmation == 
 +<tabs> 
 +  * [[#tab-micropy_32|MicroPython]] 
 +  * [[#tab-circuitpy_32|CircuitPython]] 
 +<pane id="tab-micropy_32"> 
 +</pane> 
 +<pane id="tab-circuitpy_32"> 
 +</pane> 
 +</tabs> 
 + 
 +\\
  
 {{ :materiels:capteurs:potentiometre.png?nolink&80|Potentiomètre}} {{ :materiels:capteurs:potentiometre.png?nolink&80|Potentiomètre}}
-=== 3.PRG3 - Lecture d'une entrée analogique ===+=== 3.PRG3 - Lecture d'une entrée analogique ===
 <callout type="primary" title="Objectif" icon="true">Afficher la position angulaire (en °) d'un axe dans la console de l'IDE.</callout> <callout type="primary" title="Objectif" icon="true">Afficher la position angulaire (en °) d'un axe dans la console de l'IDE.</callout>
  
-== 3.2.1 Matériels ==+== 3.3.1 Matériels ==
     * **Capteur** : <html><a href="https://wiki.seeedstudio.com/Grove-Rotary_Angle_Sensor/" target="_blank">Rotary angle sensor Grove</a></html>     * **Capteur** : <html><a href="https://wiki.seeedstudio.com/Grove-Rotary_Angle_Sensor/" target="_blank">Rotary angle sensor Grove</a></html>
  
-== 3.2.2 Généralités ==+== 3.3.2 Généralités ==
     * <html><a href="https://zestedesavoir.com/tutoriels/686/arduino-premiers-pas-en-informatique-embarquee/745_les-grandeurs-analogiques/3430_les-entrees-analogiques-de-larduino/" target="_blank">Un signal analogique : petits rappels</a></html> sur le site Zeste de savoir.     * <html><a href="https://zestedesavoir.com/tutoriels/686/arduino-premiers-pas-en-informatique-embarquee/745_les-grandeurs-analogiques/3430_les-entrees-analogiques-de-larduino/" target="_blank">Un signal analogique : petits rappels</a></html> sur le site Zeste de savoir.
  
-== 3.2.3 Activités de programmation ==+== 3.3.3 Activités de programmation ==
 <tabs> <tabs>
   * [[#tab-micropy_4|MicroPython]]   * [[#tab-micropy_4|MicroPython]]
Ligne 329: Ligne 349:
  
 {{ :arduino:gravity-i2c-oled-128x64-display.jpg?nolink&150|Gravity OLED-2864 Display}} {{ :arduino:gravity-i2c-oled-128x64-display.jpg?nolink&150|Gravity OLED-2864 Display}}
-=== 3.PRG4 - Afficheur graphique ===+=== 3.PRG4 - Afficheur graphique ===
 <callout type="primary" title="Objectif" icon="true">Afficher la température délivrée par le **capteur interne** au microcontrôleur sur un afficheur graphique.</callout> <callout type="primary" title="Objectif" icon="true">Afficher la température délivrée par le **capteur interne** au microcontrôleur sur un afficheur graphique.</callout>
  
-== 3.3.1 Matériels ==+== 3.4.1 Matériels ==
     * **Afficheur graphique** : [[materiels:afficheurs:ard0_96|0,96" 128x64 OLED 2864 Display module - SSD1306 (I2C)]]     * **Afficheur graphique** : [[materiels:afficheurs:ard0_96|0,96" 128x64 OLED 2864 Display module - SSD1306 (I2C)]]
  
-== 3.3.2 Généralités ==+== 3.4.2 Généralités ==
 Sur un écran, les **pixels** constituent une **image numérique**. On y accède par l'intermédiaire de leurs **coordonnées** **horizontales** (**X**) et **verticales** (**Y**). Le système de coordonnées place l'origine (0,0) dans le coin supérieur gauche de l'écran, avec X positif croissant vers la droite et Y positif croissant vers le bas. L'axe Y est inversé par rapport au repère cartésien utilisé en mathématiques, mais c'est une pratique établie dans de nombreux systèmes graphiques informatiques. Si nécessaire, l'affichage peut être pivoté. Sur un écran, les **pixels** constituent une **image numérique**. On y accède par l'intermédiaire de leurs **coordonnées** **horizontales** (**X**) et **verticales** (**Y**). Le système de coordonnées place l'origine (0,0) dans le coin supérieur gauche de l'écran, avec X positif croissant vers la droite et Y positif croissant vers le bas. L'axe Y est inversé par rapport au repère cartésien utilisé en mathématiques, mais c'est une pratique établie dans de nombreux systèmes graphiques informatiques. Si nécessaire, l'affichage peut être pivoté.
 {{ :arduino:adagfx1.jpg?500&nolink |}} {{ :arduino:adagfx1.jpg?500&nolink |}}
Ligne 343: Ligne 363:
 Pour les affichages **monochromes** (unicolores), les "couleurs" sont toujours spécifiées comme étant simplement **1** (**afficher**) ou **0** (**effacer**). La sémantique **set/clear** est spécifique au type d'affichage : avec un affichage lumineux **OLED**, un pixel "set" est allumé, alors qu'avec un écran **LCD** réfléchissant, pour "set" le pixel est généralement sombre. Il peut y avoir des exceptions, mais généralement vous pouvez compter sur 0 (effacer) représentant l'état d'arrière-plan par défaut pour un affichage récemment initialisé. Pour les affichages **monochromes** (unicolores), les "couleurs" sont toujours spécifiées comme étant simplement **1** (**afficher**) ou **0** (**effacer**). La sémantique **set/clear** est spécifique au type d'affichage : avec un affichage lumineux **OLED**, un pixel "set" est allumé, alors qu'avec un écran **LCD** réfléchissant, pour "set" le pixel est généralement sombre. Il peut y avoir des exceptions, mais généralement vous pouvez compter sur 0 (effacer) représentant l'état d'arrière-plan par défaut pour un affichage récemment initialisé.
  
-== 3.3.3 Activités de programmation ==+== 3.4.3 Activités de programmation ==
 <tabs> <tabs>
   * [[#tab-micropy_5|MicroPython]]   * [[#tab-micropy_5|MicroPython]]
Ligne 444: Ligne 464:
  
  
-=== 3.4 Programme 4 - Capteur atmosphérique ===+=== 3.5 PRG 5 - Capteur atmosphérique ===
 {{ :python:micropython:ada2652.jpg?nolink|}} {{ :python:micropython:ada2652.jpg?nolink|}}
 <callout type="primary" title="Objectif" icon="true"> Afficher la température, l'humidité et la pression délivrées par un capteur à circuit **BME280** sur un afficheur graphique.</callout> <callout type="primary" title="Objectif" icon="true"> Afficher la température, l'humidité et la pression délivrées par un capteur à circuit **BME280** sur un afficheur graphique.</callout>
  
-== 3.4.1 Matériels ==+== 3.5.1 Matériels ==
     * **Afficheur graphique** : Wiki - [[materiels:afficheurs:ard0_96|0,96" 128x64 OLED 2864 Display module - SSD1306 (I2C)]]     * **Afficheur graphique** : Wiki - [[materiels:afficheurs:ard0_96|0,96" 128x64 OLED 2864 Display module - SSD1306 (I2C)]]
     * **Capteur atmosphérique** : Wiki - [[materiels:capteurs:environnement:environnement|Capteurs - Environnement]]     * **Capteur atmosphérique** : Wiki - [[materiels:capteurs:environnement:environnement|Capteurs - Environnement]]
  
-== 3.4.2 Généralités ==+== 3.5.2 Généralités ==
 Le capteur utilisé est basé sur un circuit BME280 et mesure la température, l'humidité et la pression atmosphérique. Il communique avec un microcontrôleur via un bus I2C ou SPI. Le capteur utilisé est basé sur un circuit BME280 et mesure la température, l'humidité et la pression atmosphérique. Il communique avec un microcontrôleur via un bus I2C ou SPI.
   * **Caractéristiques**   * **Caractéristiques**
Ligne 468: Ligne 488:
       * SPI: sur pastilles femelles au pas de 2,54 mm (connecteurs mâles à souder inclus)       * SPI: sur pastilles femelles au pas de 2,54 mm (connecteurs mâles à souder inclus)
              
-== 3.4.3 Activités de programmation ==+== 3.5.3 Activités de programmation ==
 <tabs> <tabs>
   * [[#tab-micropy_6|MicroPython]]   * [[#tab-micropy_6|MicroPython]]
Ligne 517: Ligne 537:
     * Exécutez le programme en cliquant sur {{:python:micropython:startcoderp2.jpg?nolink|}}.     * Exécutez le programme en cliquant sur {{:python:micropython:startcoderp2.jpg?nolink|}}.
  
-<callout type="question" title="MODIFICATION du PROGRAMME 4" color="red" icon="true">Modifiez le programme précédent pour qu'il affiche les 3 grandeurs physiques sur l'afficheur graphique. \\ __Exemple d'affichage attendu__ : \\ **BME280** \\ - **T = 23.94C** \\ - **H = 59.59%** \\ - **P = 992.54hPa**</callout>+<callout type="question" title="MODIFICATION du PROGRAMME 5" color="red" icon="true">Modifiez le programme précédent pour qu'il affiche les 3 grandeurs physiques sur l'afficheur graphique. \\ __Exemple d'affichage attendu__ : \\ **BME280** \\ - **T = 23.94C** \\ - **H = 59.59%** \\ - **P = 992.54hPa**</callout>
 </pane> </pane>
  
Ligne 575: Ligne 595:
 </pane> </pane>
 </tabs> </tabs>
-=== 3.5 Programme 5 - Capteur de luminosité ===+=== 3.6 PRG6 6 - Capteur de luminosité ===
 {{ :python:micropython:ar-capteur-de-lumiere-tsl2591-ada1980-22971.jpg?nolink&200|}} {{ :python:micropython:ar-capteur-de-lumiere-tsl2591-ada1980-22971.jpg?nolink&200|}}
 <callout type="primary" title="Objectif" icon="true">Afficher la luminosité ambiante sur un afficheur graphique.</callout> <callout type="primary" title="Objectif" icon="true">Afficher la luminosité ambiante sur un afficheur graphique.</callout>
  
-== 3.5.1 Matériels ==+== 3.6.1 Matériels ==
   * **Afficheur graphique** : Wiki - [[materiels:afficheurs:ard0_96|0,96" 128x64 OLED 2864 Display module - SSD1306 (I2C)]]   * **Afficheur graphique** : Wiki - [[materiels:afficheurs:ard0_96|0,96" 128x64 OLED 2864 Display module - SSD1306 (I2C)]]
   * **Capteur de luminosité** : Wiki - [[materiels:capteurs:eclairement:luminosite|Capteurs - Eclairement]]   * **Capteur de luminosité** : Wiki - [[materiels:capteurs:eclairement:luminosite|Capteurs - Eclairement]]
  
-== 3.5.2 Généralités ==+== 3.6.2 Généralités ==
 Le capteur utilisé est basé sur un circuit TSL2591 permettant de mesurer l'éclairement lumineux. Ce capteur communique avec un microcontrôleur via le bus I2C. Le capteur utilisé est basé sur un circuit TSL2591 permettant de mesurer l'éclairement lumineux. Ce capteur communique avec un microcontrôleur via le bus I2C.
  
Ligne 592: Ligne 612:
     * Plage de mesure: 188 µLux à 88000 Lux     * Plage de mesure: 188 µLux à 88000 Lux
  
-== 3.5.3 Activités de programmation ==+== 3.6.3 Activités de programmation ==
 <tabs> <tabs>
   * [[#tab-micropy_7|MicroPython]]   * [[#tab-micropy_7|MicroPython]]
Ligne 648: Ligne 668:
     * Exécutez le programme en cliquant sur {{:python:micropython:startcoderp2.jpg?nolink|}}.     * Exécutez le programme en cliquant sur {{:python:micropython:startcoderp2.jpg?nolink|}}.
  
-<callout type="question" title="MODIFICATION du PROGRAMME 5" color="red" icon="true">Modifiez le programme précédent pour qu'il affiche les 3 grandeurs physiques sur l'afficheur graphique. \\ __Exemple d'affichage attendu__ : \\ **TSL2561** \\ - **Ecl. = 207.4lx** \\ - **Ir = 0%** \\ - **Lum. vis. = 100%**</callout>+<callout type="question" title="MODIFICATION du PROGRAMME 6" color="red" icon="true">Modifiez le programme précédent pour qu'il affiche les 3 grandeurs physiques sur l'afficheur graphique. \\ __Exemple d'affichage attendu__ : \\ **TSL2561** \\ - **Ecl. = 207.4lx** \\ - **Ir = 0%** \\ - **Lum. vis. = 100%**</callout>
 </pane> </pane>
  
Ligne 661: Ligne 681:
 <code python affbme280.py> <code python affbme280.py>
 </code> </code>
- 
  
   * **Etape 2** - Enregistrer le programme   * **Etape 2** - Enregistrer le programme
Ligne 673: Ligne 692:
 </pane> </pane>
 </tabs> </tabs>
-=== 3.Serveur WEB ===+=== 3.Serveur WEB ===
   * <color #ed1c24>Ressource provisoire</color> : <html><a href="https://randomnerdtutorials.com/esp32-esp8266-micropython-web-server/" target="_blank">ESP32/ESP8266 MicroPython Web Server</a></html>   * <color #ed1c24>Ressource provisoire</color> : <html><a href="https://randomnerdtutorials.com/esp32-esp8266-micropython-web-server/" target="_blank">ESP32/ESP8266 MicroPython Web Server</a></html>
  
 <color #ed1c24>A faire</color> <color #ed1c24>A faire</color>
 +
 +\\
  
 === Pour aller plus loin === === Pour aller plus loin ===
  - **Tutoriels** sur <html><a href="https://randomnerdtutorials.com/projects-esp32-esp8266-micropython/" target="_blank">RANDOM NERD TUTORIALS</a></html>((Random Nerd Tutorials helps makers, hobbyists and engineers build electronics projects. We make projects with: ESP32, ESP8266, Arduino, Raspberry Pi, ...))   - **Tutoriels** sur <html><a href="https://randomnerdtutorials.com/projects-esp32-esp8266-micropython/" target="_blank">RANDOM NERD TUTORIALS</a></html>((Random Nerd Tutorials helps makers, hobbyists and engineers build electronics projects. We make projects with: ESP32, ESP8266, Arduino, Raspberry Pi, ...)) 
  
  • microc/micropython/tuto1gpio.1739804444.txt.gz
  • Dernière modification : 2025/06/19 19:25
  • (modification externe)