Ligne 1 : |
Ligne 1 : |
− | {{traduction}}
| |
− |
| |
| == Introduction == | | == Introduction == |
| Utiliser un {{pl|1414|MOD-LCD1x9}} d'Olimex avec ESP8266 sous MicroPython | | Utiliser un {{pl|1414|MOD-LCD1x9}} d'Olimex avec ESP8266 sous MicroPython |
Ligne 60 : |
Ligne 58 : |
| Pour commencer, j'utilise un {{pl|1412|UEXT Splitter}} pour dupliquer le port UEXT. J'ai en effet besoin de raccorder à la fois le câble console pour communiquer avec l'ESP8266 en REPL et raccorder le module MOD-LCD1x9 | | Pour commencer, j'utilise un {{pl|1412|UEXT Splitter}} pour dupliquer le port UEXT. J'ai en effet besoin de raccorder à la fois le câble console pour communiquer avec l'ESP8266 en REPL et raccorder le module MOD-LCD1x9 |
| | | |
− | [[Fichier:MICROPYTHON-MOD-LCD1x9-20.png|512px]] | + | [[Fichier:MICROPYTHON-MOD-LCD1x9-20.jpg|512px]] |
| | | |
| == Flasher MicroPython == | | == Flasher MicroPython == |
Ligne 68 : |
Ligne 66 : |
| | | |
| == Bibliothèque modlcd19 == | | == Bibliothèque modlcd19 == |
| + | Avant d'utiliser le script d'exemple, il est nécessaire de transférer la '''bibliothèque modlcd19''' sur votre carte MicroPython. |
| + | |
| + | La [https://github.com/mchobby/esp8266-upy/tree/master/modlcd1x9 bibliothèque '''modlcd1x9''' et sa documentation] sont disponibles dans le [https://github.com/mchobby/esp8266-upy GitHub esp8266-uPy]. |
| + | |
| + | {{download-box|Télécharger la bibliothèque ESP8266-uPy|https://github.com/mchobby/esp8266-upy/archive/master.zip}} |
| + | |
| + | Puis: |
| + | * Copier le fichier {{fname|modlcd19.py}} sur la carte micropython. |
| + | |
| + | Vous pouvez également transférer le script de test {{fname|test.py}} et {{fname|testflt.py}} sur la carte MicroPython. |
| | | |
| == Code == | | == Code == |
Ligne 79 : |
Ligne 87 : |
| | | |
| En adaptant le code (et les raccordements du bus I2C), vous pourriez tout aussi facilement faire fonctionner des cartes ESP8266 comme {{pl|67|Feather ESP8266 Huzza}} ou {{cl|121|Wemos D1}} ou même {{pl|570|MicroPython Pyboard}}. | | En adaptant le code (et les raccordements du bus I2C), vous pourriez tout aussi facilement faire fonctionner des cartes ESP8266 comme {{pl|67|Feather ESP8266 Huzza}} ou {{cl|121|Wemos D1}} ou même {{pl|570|MicroPython Pyboard}}. |
| + | |
| + | === Les méthodes importantes === |
| + | Les méthodes {{fname|point()}} et {{fname|selection}} permettent respectivement d'activer le point et la barre de sélection (tout en bas) dans la matrice. |
| + | |
| + | La méthode {{fname|write()}} permet d'afficher du texte, éventuellement le faire défiler s'il est trop long. Cette méthode accepte également un entier ou un float (justifié à droite). Le meilleur restant pour la fin, il est également possible d'appliquer une chaîne de formatage, ce qui permet de limiter les décimales sur un float ou d'afficher des unités. |
| + | |
| + | Exemple d'utilisation de {{fname|write()}} pour des valeurs numériques |
| + | lcd.write( 12.4693, format='%.3f v' ) => afficher avec 3 décimales, justifié à droite => 12.469 v |
| + | lcd.write( 12.13 , format='%5d' ) => afficher un Float comme un entier, justifié à droite => " 12" |
| | | |
| === Exemple Simple === | | === Exemple Simple === |
| + | Cette exemple démontre l'usage de la bibliothèque. |
| + | |
| + | <syntaxhighlight lang="python"># Utilisation du MOD-LCD1x9 d'Olimex avec un ESP8266 sous MicroPython |
| + | # |
| + | # Shop: [UEXT LCD1x9 board (MOD-RGB)](http://shop.mchobby.be/product.php?id_product=1414) |
| + | # Wiki: https://wiki.mchobby.be/index.php?title=MICROPYTHON-MOD-LCD1x9 |
| + | |
| + | from machine import I2C, Pin |
| + | from time import sleep |
| + | from modlcd19 import MODLCD1x9 |
| + | |
| + | i2c = I2C( sda=Pin(2), scl=Pin(4) ) |
| + | lcd = MODLCD1x9( i2c ) # Activer tous les segments |
| + | |
| + | # Afficher avec 9 caractères Max |
| + | lcd.write( '123456789' ) |
| + | sleep( 2 ) |
| + | lcd.write( '<mchobby>' ) |
| + | sleep( 2 ) |
| + | |
| + | # Afficher une longue chaîne de caractère |
| + | lcd.write( 'Hey, this is a message from Belgium' ) |
| + | |
| + | # Activer un point |
| + | lcd.write( 'ABCDEFGHI') |
| + | for i in range( 9 ): |
| + | lcd.point( i+1, True, force_update=True ) |
| + | sleep( 1 ) |
| + | lcd.point( i+1, False, force_update=True ) |
| + | |
| + | sleep( 1 ) |
| + | |
| + | # Activer la barre sélection |
| + | for i in range( 9 ): |
| + | lcd.selection( i+1, True, force_update=True ) |
| + | sleep( 1 ) |
| + | lcd.selection( i+1, False, force_update=True ) |
| + | |
| + | |
| + | lcd.write( 'The end.') |
| + | print( "That's the end folks")</syntaxhighlight> |
| | | |
| === Exemple Float === | | === Exemple Float === |
| + | Cet exemple, provenant du fichier {{fname|testflt.py}}, affiche une valeur avec une précision à 3 décimales et l'unité Volts (ex: 12.357 v). |
| + | |
| + | <syntaxhighlight lang="python"># Test the Olimex MOD-LCD1x9 board. |
| + | # |
| + | # Display float value (justified on the right) |
| + | from machine import I2C, Pin |
| + | from time import sleep |
| + | from modlcd19 import MODLCD1x9 |
| + | |
| + | i2c = I2C( sda=Pin(2), scl=Pin(4) ) |
| + | lcd = MODLCD1x9( i2c ) # Active tous les segments |
| + | |
| + | # Afficher une valeur décimale |
| + | volt = 15.125 |
| + | while True: |
| + | # Incrémente la valeur pour démonstration |
| + | volt = volt + 0.033 |
| + | # Afficher un float avec 3 décimales. |
| + | # Affiche également une unité: "v" pour volts |
| + | # voir: https://docs.python.org/3/library/string.html#format-examples |
| + | lcd.write( volt, format='%.3f v' ) |
| + | |
| + | # Donner du temps au LCD pour se rafraîchir |
| + | sleep( 0.100 ) |
| + | |
| + | print( "That's the end folks")</syntaxhighlight> |
| | | |
| == Où acheter == | | == Où acheter == |