Exemple de Python ‘Hello World’ de la carte matricielle LED Pi-Lite

Exemple de Python 'Hello World' de la carte matricielle LED Pi-Lite

Si vous avez suivi l’article précédent sur la configuration de Pi-Lite, vous devriez avoir un Pi-Lite fonctionnel. Les exemples de scripts Python sont excellents, mais je voulais montrer un exemple simple démontrant les bases de l’envoi de texte défilant au Pi-Lite.

Le défilement du texte est quelque chose que le microcontrôleur embarqué gère pour vous, donc cela ne nécessite vraiment pas beaucoup d’efforts à faire en utilisant un court script Python.

Le script suivant fait défiler deux messages pour illustrer la technique.

#!/usr/bin/env python

import sys
import serial
import time

# Define message complete with
# carriage return at the end
message1 = "Hello World!r"
message2 = "Pi-Lite messages are easy!r"

# Configure Pi serial port
s = serial.Serial()
s.baudrate = 9600
s.timeout = 0
s.port = "/dev/serial0"

try:
    # Open serial port
    s.open()
except serial.SerialException, e:
    # There was an error
    sys.stderr.write("could not open port %r: %sn" % (port, e))
    sys.exit(1)

print "Serial port ready"

# Clear display
s.write("$$$ALL,OFFr")

# Send message 1 to the Pi-Lite
print message1
s.write(message1)

# Short delay to allow the
# 12 character message to finish
time.sleep(6)

# Send message 2 to the Pi-Lite
print message2
s.write(message2)

# Short delay to allow the
# 26 character message to finish
time.sleep(12)

print "Good bye"

Vous pouvez créer les messages de votre choix et ajouter d’autres messages si nécessaire. Les délais après chaque message lui donnent le temps de terminer le défilement avant que davantage de données ne soient envoyées au Pi-Lite. Si vous n’ajoutez pas le délai, vous risquez d’envoyer des données avant que l’appareil n’ait fini de traiter l’ensemble précédent.

J’utilise le calcul rapide suivant pour estimer le délai nécessaire :

delay = length x 5 x 0.08

Carte matricielle LED Pi-LiteLa longueur correspond au nombre de caractères du message. 5 est le nombre moyen de colonnes par caractère. 0,08 est la vitesse de défilement par défaut (80 ms). Le délai est alors le temps qu’il faut au nombre total de colonnes pour faire défiler l’affichage. Vous pouvez ensuite arrondir la valeur au nombre entier de secondes le plus proche. Ce n’est qu’une approximation et vous devrez peut-être ajuster le cas échéant.

Coller un message dans une boucle « while » permettrait au message de se répéter. Par exemple vous pouvez remplacer la ligne « Serial port ready » dans le script ci-dessus par ce code :

print "Serial port ready"

# Clear display
s.write("$$$ALL,OFFr")

while True:

  # Send message 1 to the Pi-Lite
  print message1
  s.write(message1)

  # Short delay to allow the
  # 12 character message to finish
  time.sleep(6)

  # Send message 2 to the Pi-Lite
  print message2
  s.write(message2)

  # Short delay to allow the
  # 26 character message to finish
  time.sleep(12)

Voici une courte vidéo du Pi-Lite en action en utilisant la boucle « while » ci-dessus :

YouTube video

Ce script est la base par laquelle vous pouvez commencer à envoyer toutes sortes d’informations à l’écran, par exemple l’heure, la température, les données provenant du Web.

Voici les scripts que vous pouvez télécharger directement plutôt que de copier-coller les exemples ci-dessus :

pi_lite_hello_world.py

pi_lite_hello_world_repeat.py