Modifications

Sauter à la navigation Sauter à la recherche
5 688 octets ajoutés ,  18 novembre 2018 à 12:08
aucun résumé de modification
Ligne 1 : Ligne 1 : −
{{traduction}}
+
== Introduction ==
 +
Utiliser un {{pl|1414|MOD-LCD1x9}} d'Olimex avec ESP8266 sous MicroPython
   −
== Introduction ==
+
[[Fichier:MICROPYTHON-MOD-LCD1x9.jpg|480px]]
 +
 
 +
MOD-LCD1x9 est un afficheur LCD Alphanumérique 9 positions d'Olimex utilisant le '''bus I2C''' du port UEXT.
 +
 
 +
[[Fichier:MICROPYTHON-MOD-LCD1x9-01.jpg|360px]]
 +
 
 +
Cette carte expose:
 +
* Utilise le '''bus I2C'''
 +
* Propose un point décimal pour chaque caractère
 +
* Propose une barre de sélection (UnderBar) en dessous de chaque caractère (pratique pour indiquer la sélection d'une option).
 +
* Un connecteur UEXT pour faciliter le raccordement
 +
 
 +
La bibliothèque MicroPython {{fname|modlcd19.py}} permet de manipuler les points et les barre de sélections de l'afficheur, ce que ne permet pas la bibliothèque Arduino originale :-)
    
== Matériel utilisé ==
 
== Matériel utilisé ==
 +
Pour réaliser ce test, nous avons utilisé:
 +
 +
{{parts-begin}}
 +
 +
{{parts-item
 +
  |name=ESP8266-EVB
 +
  |descr=ESP8266 Evaluation Board d'Olimex
 +
  |img=ESP8266-EVB.png
 +
  |link=http://shop.mchobby.be/product.php?id_product=668
 +
  |qty=1
 +
}}
 +
 +
{{parts-item
 +
  |name=MOD-LCD1x9
 +
  |descr=Carte MOD-LCD1x9 d'Olimex. Afficheur LCD 9 caractères alphanumériques sur bus I2C.
 +
  |img=MOD-LCD1x9.png
 +
  |link=http://shop.mchobby.be/product.php?id_product=1413
 +
  |qty=1
 +
}}
 +
 +
{{parts-item
 +
  |name=UEXT-SPLITTER
 +
  |descr=Multiplicateur de port UEXT. Permettra de brancher la carte + Interface USB-Serie
 +
  |img=UEXT-SPLITTER.png
 +
  |link=http://shop.mchobby.be/product.php?id_product=1412
 +
  |qty=1
 +
}}
 +
 +
{{parts-item
 +
  |name=USB-SERIE-TTL
 +
  |descr=Un cable console pour pouvoir communiquer avec l'ESP8266
 +
  |img=USB-SERIE-TTL.png
 +
  |link=http://shop.mchobby.be/product.php?id_product=144
 +
  |qty=1
 +
}}
 +
 +
{{parts-end}}
    
== Raccordements ==
 
== Raccordements ==
 +
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.jpg|512px]]
 +
 +
== Flasher MicroPython ==
 +
Pour flasher MicroPython sur l'ESP8266-DEV (module ESP8266) qui équipe la carte d'évaluation d'Olimex (ESP8266-EVB), nous vous proposons les lectures suivantes:
 +
 +
{{ESP8266-MICROPYTHON-SUBTUTO}}
    
== 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 18 : Ligne 86 :  
[[Fichier:ESP8266-DEV-12.jpg|480px]]
 
[[Fichier:ESP8266-DEV-12.jpg|480px]]
   −
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}}.
+
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 ==
 
* Le {{pl|668|ESP8266-EVB}} utilisé dans ce tutoriel pour faciliter le raccordement. Pourrait fonctionner avec un {{pl|846|Feather ESP8266}} avec le raccordement adéquat.  
 
* Le {{pl|668|ESP8266-EVB}} utilisé dans ce tutoriel pour faciliter le raccordement. Pourrait fonctionner avec un {{pl|846|Feather ESP8266}} avec le raccordement adéquat.  
 
* Le {{pl|667|ESP8266-DEV}} module équipant la carte ESP8266-EVB.
 
* Le {{pl|667|ESP8266-DEV}} module équipant la carte ESP8266-EVB.
* Le {{pl||module xxxxxxxxxxxxx}}
+
* Le {{pl|1414|module MOD-LCD1x9}} afficheur à cristaux liquide, bus I2C.
 
* Le {{pl|1412|module UEXT Splitter}}
 
* Le {{pl|1412|module UEXT Splitter}}
 
* La {{cl|67|La gamme IoT/ESP8266}} disponible chez MC Hobby
 
* La {{cl|67|La gamme IoT/ESP8266}} disponible chez MC Hobby
29 917

modifications

Menu de navigation