CheerBorg
If you have installed the old LedBorg driver version see here for instructions on updating.
We think the CheerLights project is a great idea and that we needed to update our example to work with the new LedBorg software.
For those who do not know, CheerLights allows any light or LED connected to the system to display synchronised colours.
Current CheerLights colour:
The current colour may be set by tweeting to @cheerlights or using the #cheerlights hash tag with one of the following colours in the tweet:
Red |
Green |
Blue |
Cyan |
White |
WarmWhite |
Purple |
Magenta |
Yellow |
Orange |
Pink |
OldLace |
You can download the code directly to your Raspberry Pi using:
cd ~/ledborg
wget -O CheerBorg.py http://piborg.org/downloads/CheerBorg.py.txt
Or save the text file from the link on your Raspberry Pi as CheerBorg.py
Make the script executable using
chmod +x CheerBorg.py
and run using
sudo ./CheerBorg.py
#!/usr/bin/env python # Import the library functions we need import time import urllib import wiringpi2 as wiringpi wiringpi.wiringPiSetup() # Setup software PWMs on the GPIO pins PIN_RED = 0 PIN_GREEN = 2 PIN_BLUE = 3 LED_MAX = 100 wiringpi.softPwmCreate(PIN_RED, 0, LED_MAX) wiringpi.softPwmCreate(PIN_GREEN, 0, LED_MAX) wiringpi.softPwmCreate(PIN_BLUE, 0, LED_MAX) wiringpi.softPwmWrite(PIN_RED, 0) wiringpi.softPwmWrite(PIN_GREEN, 0) wiringpi.softPwmWrite(PIN_BLUE, 0) # A function to set the LedBorg colours def SetLedBorg(red, green, blue): wiringpi.softPwmWrite(PIN_RED, int(red * LED_MAX)) wiringpi.softPwmWrite(PIN_GREEN, int(green * LED_MAX)) wiringpi.softPwmWrite(PIN_BLUE, int(blue * LED_MAX)) # A function to turn the LedBorg off def LedBorgOff(): SetLedBorg(0, 0, 0) # Setup parameters cheerlightsUrl = 'http://api.thingspeak.com/channels/1417/field/1/last.txt' # Name Red Green Blue colourMap = {'red': (1.0, 0.0, 0.0), 'green': (0.0, 0.5, 0.0), 'blue': (0.0, 0.0, 1.0), 'cyan': (0.0, 1.0, 1.0), 'white': (1.0, 1.0, 1.0), 'warmwhite': (1.0, 1.0, 0.9), 'purple': (0.5, 0.0, 0.5), 'magenta': (1.0, 0.0, 1.0), 'yellow': (1.0, 1.0, 0.0), 'orange': (1.0, 0.65, 0.0), 'pink': (1.0, 0.75, 0.8), 'oldlace': (1.0, 1.0, 0.9)} # Loop indefinitely while True: try: # Attempt the following: cheerlights = urllib.urlopen(cheerlightsUrl) # Open cheerlights file via URL colourName = cheerlights.read() # Read the last cheerlights colour cheerlights.close() # Close cheerlights file if colourMap.has_key(colourName): # If we recognise this colour name then ... red, green, blue = colourMap[colourName] # Get the LedBorg colour to use from the name else: # Otherwise ... print 'Unexpected colour "' + colourName + '"' # Display the name we did not recognise red, green, blue = (0.0, 0.0, 0.0) # Use the colour of black / off SetLedBorg(red, green, blue) # Set LedBorg to the new colour except: # If we have an error pass # Ignore it (do nothing) finally: # Regardless of errors: time.sleep(1) # Wait for 1 second