Modifications

Sauter à la navigation Sauter à la recherche
3 418 octets ajoutés ,  2 janvier 2017 à 11:53
Ligne 4 : Ligne 4 :       −
Sachez que cet afficheur est utilisable tout aussi facilement sur un Raspberry-Pi :-) }}
+
Sachez que cet afficheur est utilisable tout aussi facilement sur un Raspberry-Pi :-).
 +
 
 +
La compatibilité est assurée pour Pi B, Pi-B PLUS et '''Raspberry Pi-2'''. }}
    
[[Fichier:LCD-USB-TTL-Raspberry-00a.jpg|640px]]
 
[[Fichier:LCD-USB-TTL-Raspberry-00a.jpg|640px]]
Ligne 63 : Ligne 65 :     
  python -i
 
  python -i
+
 
 
Vous pouvez ensuite saisir les commandes suivantes pour en contrôler l'affichage.
 
Vous pouvez ensuite saisir les commandes suivantes pour en contrôler l'affichage.
   −
<nowiki>f = open( '/dev/ttyACM0', 'w' )
+
<syntaxhighlight lang="python">
 +
f = open( '/dev/ttyACM0', 'w' )
 
f.write('I LOVE MON\nRASPBERRY PI')
 
f.write('I LOVE MON\nRASPBERRY PI')
 
f.flush()
 
f.flush()
f.close()</nowiki>
+
f.close()
 +
</syntaxhighlight>
    
La fonction flush() force Python à vider la mémoire tampon vers le périphérique (ce qui provoque l'affichage complet).
 
La fonction flush() force Python à vider la mémoire tampon vers le périphérique (ce qui provoque l'affichage complet).
Ligne 86 : Ligne 90 :  
Ce tutoriel complet reprend également les commandes qui peuvent être envoyées à l'afficheur LCD (voyez le restant du tutoriel).
 
Ce tutoriel complet reprend également les commandes qui peuvent être envoyées à l'afficheur LCD (voyez le restant du tutoriel).
   −
== matrixtest.py ==
+
=== Classe LcdMatrix ===
AdaFruit propose un code de test en Python pour l'afficheur LCD + backpack sur GitHub. C'est pratique car vous pouvez créer votre propre code à partir de lui.
+
Afin de faciliter la prise de contrôle via USB, nous avons développé une classe pouvant être utilisée directement sur Raspberry-Pi et Linux (''pas encore testé sous Windows'').
 +
 
 +
L'afficheur LCD devient vraiment facile à prendre en main. Cela nous a permis de mettre en oeuvre un support pour les caractères accentués (cfr classe EuropeanLcdMatrix) :-)
 +
 
 +
Grâce à la classe LcdMatrix, vous pouvez envoyer des ordres directement à l'afficheur LCD en utilisant un code qui devient nettement plus lisible.
 +
 
 +
Voyez ci-dessous l'exemple [https://github.com/mchobby/lcdmtrx lcdmtrx-WriteTest.py] disponible sur GitHub. Cet exemple se concentre uniquement sur l'affichage, notre bibliothèque propose également des exemples plus avancé (voir la section [[LCD-USB-TTL-Classe-Python|Classes Python]]).
 +
 
 +
<syntaxhighlight lang="python">
 +
from lcdmtrx import LcdMatrix
 +
import sys
 +
import time
 +
 
 +
PORT_SERIE = '/dev/ttyACM0' #identification du port série sur lequel le LCD USB est connecté
 +
 
 +
LCD_COLS = 16 # Taille du LCD 16 caractères x 2 lignes
 +
LCD_ROWS = 2
 +
 
 +
def do_lcd_matrix_test():
 +
lcd = LcdMatrix( PORT_SERIE )
 +
 +
# Initialiser la taille du LCD (et sauver dans l'EEPROM)
 +
lcd.set_lcd_size( LCD_COLS, LCD_ROWS )
 +
lcd.clear_screen()
 +
 +
# Activer/désactiver le rétro-éclairage
 +
lcd.activate_lcd( True );
 +
 +
# Constrat par défaut
 +
lcd.contrast()
 +
 
 +
# Luminosité max + couleur RGB
 +
lcd.brightness( 255 )
 +
 +
# Couleur RBG
 +
lcd.color( 255, 17, 30 )
 +
   
 +
# Position d'origine
 +
lcd.clear_screen()
 +
 +
        # Auto Scroll
 +
lcd.clear_screen()
 +
lcd.autoscroll( True )
 +
if (LCD_ROWS == 4):
 +
lcd.write("Voici une longue longue ligne de texte  ")
 +
time.sleep(1)
 +
lcd.write("Ajoutons du texte.. ")
 +
time.sleep(1)
 +
lcd.write("Et encore plus....!")
 +
time.sleep(1)
 +
lcd.write(" Et ca scroll! :-)")
 +
if (LCD_ROWS == 2):
 +
lcd.write("Voici du texte..")
 +
time.sleep(1)
 +
lcd.write("Un peu plus....")
 +
time.sleep(1)
 +
lcd.write(" Et ca scroll:-)")
 +
time.sleep(1)
 +
 +
 +
# Tester avec le retour à la ligne
 +
# \r fait un retour à ligne et est insensible à la valeur de autoscroll.
 +
lcd.autoscroll( False )
 +
lcd.clear_screen()
 +
lcd.write( "Ligne 1\rLigne 2" )
 +
time.sleep(1)
 +
 
 +
# Si on ecrit une longue ligne de texte, seul les "x" derniers
 +
# caractères seront affichés sur la ligne du LCD... SANS SAT DE 
 +
# LIGNE. Les "y" premiers caractères sont simplement ignorés!
 +
lcd.autoscroll( True )
 +
if (LCD_ROWS == 4):
 +
lcd.write("Voici une longue longue ligne de texte  ")
 +
else:
 +
lcd.write("Voici une longue ligne...")
 +
time.sleep(1)
 +
 +
# Déplacement du curseur
 +
lcd.clear_screen()
 +
lcd.autoscroll( False )
 +
lcd.position( 1, 1 )
 +
lcd.write( 'a' )
 +
lcd.position( 1, LCD_COLS )
 +
lcd.write( 'b' )
 +
lcd.position( LCD_ROWS, 1 )
 +
lcd.write( 'c' )
 +
lcd.position( LCD_ROWS, LCD_COLS )
 +
lcd.write( 'd' )
 +
 +
lcd.writepos( 1, 7, ':-)' ) # Déplacement de curseur + affichage
 +
 
 +
if __name__ == '__main__':
 +
do_lcd_matrix_test()
 +
</syntaxhighlight>
 +
 
 +
=== Test de bas niveau - matrixtest.py ===
 +
AdaFruit propose un code de test rudimentaire basé sur l'ouverture d'un port série en Python afin d'afficheur LCD + backpack sur GitHub. C'est pratique car vous pouvez créer votre propre code à partir de lui.
      Ligne 98 : Ligne 198 :     
  python matrixtest.py /dev/ttyACM0
 
  python matrixtest.py /dev/ttyACM0
 +
 +
Note:
 +
Sur un Raspberry-Pi, l'utilisateur à librement accès au périphérique USB. Nous avons néanmoins remarqué que certaines installation Linux (dont "Linux Mint") nécessite l'usage d'un SUDO pour disposer du libre accès.
 +
 +
sudo python matrixtest.py /dev/ttyACM0
    
{{LCD-USB-TTL-TRAILER}}
 
{{LCD-USB-TTL-TRAILER}}
29 910

modifications

Menu de navigation