python:micropython:materiel:ssd1306

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
Dernière révisionLes deux révisions suivantes
python:micropython:materiel:ssd1306 [2023/04/28 16:48] – [1. Présentation] philpython:micropython:materiel:ssd1306 [2023/06/04 11:30] – [1. Présentation] phil
Ligne 4: Ligne 4:
 {{ :micropython:logomicropython.png?nolink&100|}} {{ :micropython:logomicropython.png?nolink&100|}}
  
-[Mise à jour le : 8/7/2021+[Mise à jour le : 19/5/2023
  
   * **Ressources**   * **Ressources**
-    * <html><a href="https://docs.micropython.org/en/latest/esp32/tutorial/intro.html" target="_blank">Getting started with MicroPython on the ESP32</a></html>+    * <html><a href="https://docs.micropython.org/en/latest/esp32/tutorial/intro.html" target="_blank">Getting started with MicroPython on the ESP32, RP2, etc.</a></html>
     * <html><a href="https://micropython.org/" target="_blank">MicroPython.org</a></html>     * <html><a href="https://micropython.org/" target="_blank">MicroPython.org</a></html>
     * <html><a href="https://docs.micropython.org/en/latest/index.html#" target="_blank">MicroPython documentation</a></html>     * <html><a href="https://docs.micropython.org/en/latest/index.html#" target="_blank">MicroPython documentation</a></html>
Ligne 14: Ligne 14:
   * **Lectures connexes**   * **Lectures connexes**
       * **Installer MicroPython** - [[python:micropython:materiel:espressif|MicroPython - Les modules Espressif ESP32 et ESP8266]]       * **Installer MicroPython** - [[python:micropython:materiel:espressif|MicroPython - Les modules Espressif ESP32 et ESP8266]]
 +      * **Raspberry Pi Pico** - [[:python:micropython:raspypico2040|Les modules Raspberry Pi Pico et Pico W]]
       * **Programmez** ! Juillet/Août 2019        * **Programmez** ! Juillet/Août 2019 
       * **Elektor 489** Mai/Juin 2021       * **Elektor 489** Mai/Juin 2021
Ligne 24: Ligne 25:
 Les exemples de code de cette page ont été testés sur un afficheur <html><a href="https://www.gotronic.fr/art-module-oled-i2c-gravity-dfr0486-26805.htm" target="_blank">Gravity OLED-2864 (128x64) de DFROBOT</a></html> et un <html><a href="https://www.gotronic.fr/art-module-afficheur-oled-0-96-tf052-28511.htm" target="_blank">Module afficheur OLED 0,96'' TF052</a></html> connectés à un **ESP32** ou à un **Raspberry Pi Pico**. Ces afficheurs sont pilotés par un circuit SOLOMON SYSTECH <html><a href="https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf" target="_blank">SSD1306</a></html>. Sa mise en oeuvre nécessite une bibliothèque (téléchargeable à partir du lien ci-dessous). Les exemples de code de cette page ont été testés sur un afficheur <html><a href="https://www.gotronic.fr/art-module-oled-i2c-gravity-dfr0486-26805.htm" target="_blank">Gravity OLED-2864 (128x64) de DFROBOT</a></html> et un <html><a href="https://www.gotronic.fr/art-module-afficheur-oled-0-96-tf052-28511.htm" target="_blank">Module afficheur OLED 0,96'' TF052</a></html> connectés à un **ESP32** ou à un **Raspberry Pi Pico**. Ces afficheurs sont pilotés par un circuit SOLOMON SYSTECH <html><a href="https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf" target="_blank">SSD1306</a></html>. Sa mise en oeuvre nécessite une bibliothèque (téléchargeable à partir du lien ci-dessous).
  
-<callout type="warning" icon="true"><html><a href="https://github.com/stlehmann/micropython-ssd1306" target="_blank"><strong>Télécharger</strong></a></html> la bibliothèque SSD1306 pour MicroPython et la copier dans un fichier nommé ssd1306.py à installer dans la carte à µC.</callout>+<callout type="warning" icon="true"><html><a href="https://github.com/stlehmann/micropython-ssd1306" target="_blank"><strong>Télécharger</strong></a></html> la bibliothèque SSD1306 pour MicroPython et la copier dans un fichier nommé ssd1306.py à installer dans la carte à µC. Celle bibliothèque hérite de <html><a href="https://docs.micropython.org/en/latest/pyboard/library/framebuf.html" target="_blank">framebuf</a></html>. On dispose donc des méthodes ci-dessous pour dessiner des formes sur le buffer d'impression.</callout>
  
   * **Organisation de l'écran**{{ :python:micropython:materiel:350px-feather-micropython-oled-position.png?nolink |}}   * **Organisation de l'écran**{{ :python:micropython:materiel:350px-feather-micropython-oled-position.png?nolink |}}
Ligne 33: Ligne 34:
     * **c** : couleur (1=point allumé, 0=point éteint)  \\      * **c** : couleur (1=point allumé, 0=point éteint)  \\ 
  
-  * **Méthodes de la bibliothèque SSD1306**+  * **Méthodes de la bibliothèque SSD1306** (hérite de framebuf)
  
-^ Prototype                            ^ Description                                                                         +^ Prototype                                            ^ Description                                                                                                                                                                                                                                                                                                                                                                                                                 
-| **fill**( c )                        | Remplit l'écran en noir (c=1) ou en blanc (c=0)                                     +| **fill**( c )                                        | Remplit l'écran en **noir (c=1)** ou en **blanc (c=0)**                                                                                                                                                                                                                                                                                                                                                                     
-| **fill_rect**(x,y,w,h,c)             | Dessine un rectangle de largeur w et de hauteur h dans la couleur c au point (x,y)  +| **rect** ( x , y , w , h , c[, f]                  | Dessine un rectangle de largeur w et de hauteur h dans la couleur c au point (x,y). Le paramètre facultatif f peut être défini sur True pour remplir le rectangle. Sinon, seul un contour d'un pixel est dessiné.                                                                                                                                                                                                           
-| **hline**(x,y,w,c)                   | Dessine une ligne horizontale de longueur w dans la couleur c au point (x,y)        +| **hline**(x,y,w,c)                                   | Dessine une ligne horizontale de longueur w dans la couleur c au point (x,y)                                                                                                                                                                                                                                                                                                                                                | 
-| **line**(x1,y1,x2,y2,c)              | Dessine une ligne dans la couleur c entre les points (x1,y1) et (x2,y2)             +| **vline**(x,y,h,c)                                   | Dessine une ligne verticale de longueur h dans la couleur c au point (x,y)                                                                                                                                                                                                                                                                                                                                                  
-| **pixel**(x,y,c)                     | Affiche un pixel dans la couleur c au point (x,y)                                   +| **line**(x1,y1,x2,y2,c)                              | Dessine une ligne dans la couleur c entre les points (x1,y1) et (x2,y2)                                                                                                                                                                                                                                                                                                                                                     
-| **scroll**(depl.horiz, depl. vert.)  | Déplace le contenu de l'écran de n points                                           +| **pixels** ( x , y[, c]                            | Affiche un pixel dans la couleur c au point (x,y). Si c n'est pas donné, obtient la valeur de couleur du pixel spécifié. Si c est donné, définit le pixel spécifié sur la couleur donnée.                                                                                                                                                                                                                                   
-| **show**()                           | Transfert le contenu du buffer d'affichage sur l'écran                              +| **scroll**(depl.horiz, depl. vert.)                  | Déplace le contenu de l'écran de n points                                                                                                                                                                                                                                                                                                                                                                                   
-| **text**("text",x,y,c)               | Affiche le texte text dans la couleur c au point (x,y)                              +| **show**()                                           | Transfert le contenu du buffer d'affichage sur l'écran                                                                                                                                                                                                                                                                                                                                                                      
-| **vline**(x,y,h,c)                   Dessine une ligne verticale de longueur h dans la couleur c au point (x,y)          |+| **text**("text",x,y,c)                               | Affiche le texte "textdans la couleur c au point (x,y). En noir (c=1) ou en blanc (c=0). **La hauteur d'un caractère occupe 8px**.                                                                                                                                                                                                                                                                                            
 +| **poly** ( x , y , coordonnées , c[, f]            Étant donné une liste de coordonnées, dessine un polygone fermé arbitraire (convexe ou concave) à l'emplacement x, y donné en utilisant la couleur donnée.\\ Les coordonnées doivent être spécifiées sous forme de tableau d'entiers, par exemple .array('h', [x0, y0, x1, y1, ... xn, yn])\\ Le paramètre facultatif f peut être défini sur True pour remplir le polygone. Sinon, seul un contour d'un pixel est dessiné. 
 +| **ellipse**( x , y , xr , an , c[, f , m] | Dessine une ellipse à l'emplacement donné. Les rayons xr et yr définissent la géométrie ; des valeurs égales entraînent le dessin d'un cercle. Le paramètre c définit la couleur.\\ Le paramètre optionnel f peut être défini sur True pour remplir l'ellipse sinon, seul un contour d'un pixel est dessiné.                                                                                                                |
  
  
Ligne 80: Ligne 83:
  
 # Configuration du bus i2c sur le Raspberry Pi Pico # Configuration du bus i2c sur le Raspberry Pi Pico
-i2c = I2C(0)+# Accès au connecteur I2C0 du shield Grove 
 +i2c = I2C(0,sda=Pin(8), scl=Pin(9),freq=400_000) 
 +# Accès au connecteur I2C1 du shield Grove 
 +#i2c = I2C(1,sda=Pin(6), scl=Pin(7),freq=400_000)
 ... ...
- 
 </code> </code>