-
Notifications
You must be signed in to change notification settings - Fork 11
Electric Liver Bird
The Liver Bird on the wall in the main room is subscribed to a few MQTT topics, which set various parts of it to different colours. (Inside it there's a Raspberry Pi and an Arduino - the Pi deals with the MQTT interface and sends commands over serial to the Arduino, which talks to the RGB LEDs)
Topic | Payload | Description |
---|---|---|
liverbird/paper |
colour |
set the newspaper to the colour given in colour
|
liverbird/percent |
percentage ,from colour ,to colour ,top from colour ,top to colour
|
fill percentage of the Liver Bird fading from from colour to to colour and filling in the upper section with a fade from top from colour to top to colour
|
liverbird/head |
colour |
set the head to the colour given in colour
|
liverbird/beak |
colour |
set the beak to the colour given in colour
|
liverbird/eye |
colour |
set the eye to the colour given in colour
|
liverbird/row |
n ,colour
|
set row n to the colour given in colour . There are 20 rows |
liverbird/column |
n ,colour
|
set body column n to the colour given in colour . There are 10 columns |
liverbird/led |
n ,colour
|
set individual LED n to the colour given in colour . 0 is bottom left and 149 is in newspaper |
liverbird/party |
n/a | PARTY! (flash the lights lots). To stop the party send a liverbird/fadeout message |
liverbird/fadeout |
n/a | Fade body and leg LEDs to black |
liverbird/body |
1st col colour ,2nd col colour ,...,10th col colour
|
set the colour of all the body columns at once |
liverbird/defaults |
n/a | reset the legs and beak (at present) to their default colours |
Colours can be definied in a number of ways:
- Decimal (normal) numbers will be converted to hexadecimal and used as
#RRGGBB
-
#hex
numbers will be treated like CSS colours, two digits each of red, green, blue")); -
%h|s|v
is treated as three numbers for a colour in the HSV colourspace. H is the hue (0-255!), S is the saturation (0-255), and L is the value (0-255)
Coding of the Liverbird could be done from within the Node-RED framework. But this example is a Python script for educational purposes. You can build a forwarding flow from an external mqtt-broker to the mqtt.local broker so it can be controlled externally.
# pip install paho-mqtt
import paho.mqtt.client as mqtt
client = mqtt.Client("", True, None, mqtt.MQTTv31)
client.connect("mqtt.local", 1883)
client.is_connected()
import time
def mpub(topic, payload, delay=0.02):
client.publish(topic, payload)
time.sleep(delay)
col = "#c02050"
mpub("liverbird/beak", "#802020")
mpub("liverbird/paper", "#FF0000")
mpub("liverbird/head", "#000070")
mpub("liverbird/row", "0,%s"%("#a0a0a0"), 0.4)
for i in range(20):
if i < 19:
mpub("liverbird/row", "%d,%s"%(i+1, "#a0a0a0"))
col = "#002050" if (i%2) else "#10e010"
mpub("liverbird/row", "%d,%s"%(i, col))
mpub("liverbird/paper", "#FFFFFF")
col = "%50|250|250"
mpub("liverbird/eye", "#0000FF")
mpub("liverbird/head", "#FF0000")
mpub("liverbird/beak", "%50|250|250")
There is a proposal to hold a Liverbird dressing competition with two categories: static and 5 second animation.
Quick Links: Website • Groups • Rooms • Equipment • Issue Tracker • Discussion Group • Image Credits
☝️ Filter all pages above!
(Full search available on the top of page)
WiFi: DoES Liverpool, password: decafbad00
- Wiki Home
- Making
- Get involved
- In The Space
- Bank and PayPal Details
or