Maak een kerstboompje met knipperende lampjes op de Sense HAT
De Raspberry Pi Sense Hat is de eerste officiële HAT van de Raspberry Pi Foundation. Hij is onder meer te koop bij Kiwi-electronics voor €36,95. Als je (nog) geen Sense Hat hebt, kun je ook eerst wat experimenteren met de Sense Hat Emulator. Dat kan bij Programmeren in het menu van Raspbian, het besturingssysteem van de Pi.
Het kerstboomscript
De code (in totaal 41 regels) hieronder hoef je alleen maar in een txt-bestand te zetten. Geeft het de extensie .py, bijvoorbeeld xmastree.py. Zorg wel dat de regels na while True een paar spaties inspringen.
Script:
# Sense HAT Xmas-Tree with blinking lights # Dec. 2016, jmu from sense_hat import SenseHat import time sense = SenseHat() sense.set_rotation(90) sense.clear () # clears the matrix, just in case sense.low_light = True g = [154,205,50] # green r = [255, 0, 0] # red w = [255, 255, 255] # white z = [0, 0, 0] # zero light xmas_tree = [ z, z, z, z, w, z, z, z, z, z, z, z, g, z, z, z, z, z, z, g, r, g, z, z, z, z, g, w, g, w, g, z, z, z, z, r, g, r, z, z, z, z, w, g, w, g, w, z, z, g, r, g, g, g, r, g, z, z, z, z, g, z, z, z, ] sense.set_pixels(xmas_tree) # make 3 leds blink in endless loop while True: sense.set_pixel(4, 0, [255, 0, 0]) # make white pixel1 red time.sleep (0.2) sense.set_pixel(4, 0, [255, 255, 255]) # return pixel1 to original color time.sleep (0.2) sense.set_pixel(2, 3, [255, 255, 255]) # make green pixel2 white time.sleep (0.2) sense.set_pixel(2, 3, [154,205,50]) # return pixel2 to original color time.sleep (0.2) sense.set_pixel(6, 6, [255, 255, 255]) # make red pixel3 white time.sleep (0.2) sense.set_pixel(6, 6, [255, 0, 0]) # return pixel3 to original color time.sleep (0.2)
Start het script
Kopieer het bestandje naar een usb-stick en van daar naar je home-directory van je Raspberry Pi met Sense HAT: /Home/Pi/ . Om het Python-script te draaien, open je een terminal en typ je het volgende commando in.
python3 xmastree.py
Druk op Ctrl+C om Python te stoppen of sluit de terminal. De kerstboom blijft dan op de ledmatrix staan, maar de leds knipperen niet meer. Om de ledmatrix helemaal uit te zetten, kun je de Raspberry Pi herstarten of het onderstaande Python-scriptje draaien. Sla dat op in een txt-bestand dat je bijvoorbeeld senseclear.py noemt:
from sense_hat import SenseHat sense = SenseHat() sense.clear ()
Experimenteer eens met de vorm en de kleuren van de boom. We hebben in de code (regel 7) de afbeelding op de Sense HAT met 90 graden gedraaid :
sense.set_rotation(90)
omdat onze behuizing dan beter kon staan. Als dat in jouw geval anders is kun je het aanpassen of de regel weglaten. Een andere bijzonderheid is regel 9:
sense.low_light = True
Daarmee wordt het licht van de leds gedimd, zodat ze in het donker niet zo fel zijn. Die regel kun je naar behoefte ook weglaten of True in False veranderen.
Dat was het. Succes en alvast hele fijne feestdagen gewenst.
any idea why the code is giving the following error
ValueError: Pixel at index 12 is invalid. Pixels must contain 3 elements: Red, Green and Blue on line 26 in main.py
Hi Sean, I have no idea, I ‘ll have to look into that.
The code runs fine on my Pi Zero+SenseHAT and on the SenseHAT Emulator; no errors here. Are you sure, you copied the code correctly?
Did you copy the code to a Windows text-editor like Notepad++? Then you have to make sure you saved the code with Unix (LF) line endings.