Modifications

Sauter à la navigation Sauter à la recherche
3 748 octets ajoutés ,  18 novembre 2018 à 12:08
aucun résumé de modification
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 34 : Ligne 32 :  
   |name=MOD-LCD1x9
 
   |name=MOD-LCD1x9
 
   |descr=Carte MOD-LCD1x9 d'Olimex. Afficheur LCD 9 caractères alphanumériques sur bus I2C.
 
   |descr=Carte MOD-LCD1x9 d'Olimex. Afficheur LCD 9 caractères alphanumériques sur bus I2C.
   |img=MOD-MAG3110.png
+
   |img=MOD-LCD1x9.png
 
   |link=http://shop.mchobby.be/product.php?id_product=1413
 
   |link=http://shop.mchobby.be/product.php?id_product=1413
 
   |qty=1
 
   |qty=1
Ligne 58 : Ligne 56 :     
== 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 ==
 
== Flasher MicroPython ==
Ligne 65 : 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 76 : 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 ==
29 917

modifications

Menu de navigation