CheerBorg

The is a driver free LedBorg script
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 
Subscribe to Comments for "CheerBorg"