C’est cette période de l’année où les inventeurs fous commencent à créer des projets électroniques sur le thème d’Halloween. Je n’ai jamais réussi à m’organiser pour faire un projet saisonnier mais cette année j’ai décidé de me lancer.
Alors cette année, j’ai décidé de prendre ce que j’ai appris sur le Pi-Lite et de créer un projet d’Halloween simple que je peux coller dans la fenêtre à côté de nos citrouilles sculptées plus traditionnelles.
Cet article fait suite à mes précédents articles Pi-Lite :
TPour recréer ce projet, vous aurez besoin de :
- Raspberry Pi
- Pi-Lite
- Carte SD (j’ai utilisé la dernière image Raspbian)
- Source de courant
- Mon script Python
Script Python
Le script suivant affichera un objet animé puis fera défiler « Happy Halloween ! à travers l’écran. Il se répète jusqu’à ce que CTRL-C soit enfoncé.
#!/usr/bin/env python import sys import serial import time # Define lists which contain frames of animations face = ['000000000000000000010011000011000100011000110000010110000110110000110110000010110011000110011000100010011000000000000000000000', '000000000000000000010000011011000110011000110000010110000110110000110110000010110011000110011000110010000011000000000000000000'] bat = ['010000000011000000001100000000110000110110000011111011001111100001111100011111011110110000000110000001100000011000000010000000', '000000100000001100000011000000110000110110001011111010001111100001111100011111010110110001000110000000011000000001100000000100'] ghost = ['000000000000000000000011111001100001010000010100100010100000001100100001100000010010000010001100001000011111000000000000000000', '000000000000000000000011111001100010010000010100000001100100001100000010100100010010000001001100001000011111000000000000000000'] spider = ['001001000010010010100100101010101000001011110000111001000111000000111000000111001001011110010101000100100101010010010001001000', '010010010100100101101001000100101010011011101000111000000111000000111000000111000011011101100101010101001000100100101010010010'] # Combine into dictionary object objects = {'face':face,'bat':bat,'ghost':ghost,'spider':spider} # Define text message to scroll message = "Happy Halloween !r" # Configure Pi serial port s = serial.Serial() s.baudrate = 9600 s.timeout = 0 s.port = "/dev/ttyAMA0" def showObject(name,count,delay): # Function to display frames from a specified object # name - object to display # count - number of times to display object # delay - ms to wait between frames object = objects[name]for x in range(count): for frame in range(len(object)): command = "$$$F" + object[frame]+ "r" s.write(command) time.sleep(delay) # Clear display s.write("$$$ALL,OFFr") try: # Open serial port s.open() except serial.SerialException, e: sys.stderr.write("could not open port %r: %sn" % (port, e)) sys.exit(1) # Turn off all LEDs s.write("$$$ALL,OFFr") time.sleep(0.5) try: while True: # Get list of object names from dictionary mykeys = objects.keys() # Loop through each object for x in range(len(mykeys)): showObject(mykeys[x],5,0.5) time.sleep(1) s.write(message) # Wait for scrolling message time.sleep(8) except KeyboardInterrupt: print("Quit")
Voici une vidéo du script en action :
Téléchargements de scripts
Plutôt que de copier-coller le script ci-dessus, vous pouvez également le télécharger directement sur votre Pi en utilisant :
wget https://bitbucket.org/MattHawkinsUK/rpispy-pi-lite/raw/master/pi_lite_happy_halloween.py
Ou si vous utilisez Git sur votre Pi, récupérez tous mes exemples de scripts Pi-Lite en clonant mon référentiel Pi-Lite sur BitBucket :
git clone https://bitbucket.org/MattHawkinsUK/rpispy-pi-lite.git
Modifications
Il existe de nombreuses façons de modifier et d’améliorer ce script. Vous pouvez modifier le message de défilement, mais assurez-vous d’ajuster le délai « time.sleep » pour qu’il corresponde. Il y a plus de détails sur la façon dont j’estime ce temps dans mon message texte défilant hello world. À titre d’estimation approximative, il s’agit de 0,5 seconde par caractère dans votre message.
Vous pouvez également ajouter d’autres objets en définissant de nouvelles listes et en les ajoutant au dictionnaire. Pour générer la chaîne de 126 caractères pour chaque image, vous pouvez utiliser mon générateur de sprite matriciel à LED 14 × 9 (s’ouvre dans une nouvelle fenêtre/un nouvel onglet).
Joyeux Halloween!