Editing Holiday lights

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
We put up some holiday lights in the Mission Street windows. (We call them Holiday Lights both as a gesture of ecumenical goodwill and to annoy the "War on Christmas" wingnuts.)
We put up some holiday lights in the Mission Street windows. (We call them Holiday Lights both as an ecumenical gesture of goodwill as well as to annoy the "War on Christmas" wingnuts.)


Naturally, you can control them on the web using the bare-bones interface at URL: http://lights.noisebridge.net/
Naturally, you can control them on the web using the bare-bones interface at URL: http://lights.netisland.net:8080/


This is served by a pure Python webserver running on a Fit-PC Ubuntu micro-PC. Lights are switched with a 8-channel serial-controlled relay board.  
This is served by a pure Python webserver running on a Fit-PC Ubuntu micro-PC. Lights are switched with a 8-channel serial-controlled relay board.  
Each of the four windows has two strings of LEDs, white and colored. Facing Mission St, the  white LEDs on the leftmost window are on channel 0, the colored ones on channel 1. The next window over has white on channel 2 and so forth.
Each of the four windows has two strings of LEDs, white and colored. Facing Mission St, the  white LEDs on the leftmost window are on channel 0, the colored ones on channel 1. The next window over has white on channel 2 and so forth.


You can find the code in [http://github.com/jbm9/batshitlights github]
 
Code is on


Basic info:
Basic info:
Line 20: Line 21:
  /home/lights/sequence
  /home/lights/sequence


The text file read by filelooop.py that defines the light
The file read by filelooop.py that defines the light
sequence currently active.  The first line of this file
sequence currently active.  The first line of this file
defines how long (in milliseconds) we wait before
defines how long (in milliseconds) we should sleep before
advancing to the next state.  The rest of the file is a
advancing to the next state.  The rest of the file is a
list of states to iterate through.  For example:
list of states to iterate through.  For example:
Line 42: Line 43:
the rest are off.  In the third state, the third light is
the rest are off.  In the third state, the third light is
on, and the rest are off.  etc.
on, and the rest are off.  etc.
(There's code in place in filelooop.py to also support
state lines in the syntax of "<state> <delay>", to sleep
for an amount of time different than the "global delay",
but I haven't actually tested this behavior yet.)


  /home/lights/*.seq
  /home/lights/*.seq
Line 65: Line 71:
back to / (the directory listing) after a few seconds,
back to / (the directory listing) after a few seconds,
or something.
or something.
=Direct Line=
There's a really fun "direct line" into the control of the lights:
: http://lights.noisebridge.net/run_one?delay=1000&seq=0102040810204080
: http://lights.noisebridge.net/run_one?delay=500&seq=B56F9BE6
: etc
Hint: hex works
A message...
: http://lights.noisebridge.net/run_one?delay=500&seq=22882288220802802088a2a82a8aa2a82a0a0200000080a0a82a8aa2a82a8aa2a82a0a0280a0a82a8aa2a82a0a028020882288a2a82a8aa2a82a8a228822080200000080a0a82a8a228822882288a2a82a0a02000000802088a2a82a0a02802088a2a82a8a2288220802802088a2a82a8a22882208020000008020882288a2a82a0a02802088a2a82a8a220802000000802088a2a82a8a228822080280208822080280a0a82a8aa2a82a8a2208028020882288228822080280a0a82a0a02000000802088a2a82a0a02802088a2a82a8a2208028020080200000080a0a82a8a2288228822080280200802802088a2a82a8a228822080280a0a82a8aa2a82a8aa2a82a0a0280a0a82a8a22080280a0a82a8aa2a82a8a22080200000080a0a82a0a0280a0a82a8aa2a82a8aa2a82a0a020000008020882288a2a82a0a02802088228822080280a0a82a8a2288a2a82a8a2288a2a82a8aa2a82a0a0200000080a0a82a8a228822882288a2a82a0a020000008020882288a2a82a0a02000000802088a2a82a0a02802088a2a82a8a2208028020080200000080a0a82a8aa2a82a8aa2a82a0a0280a0a82a8a22080200000080a0a82a0a028020882288228822080280200802000000802088a2a82a8aa2a82a0a02802088a2a82a0a0280a0a82a8a2288a2a82a8aa2a82a0a0200000080a0a82a0a0280a0a82a8aa2a82a8aa2a82a0a0200000080a0a82a8a228822080280200802802088228822080280a0a82a0a02802088a2a82a8a2208028020882288a2a82a0a0280a0a82a8a2288a2a82a8a22080280a0a82a0a0280208822080280a0a82a8aa2a82a8aa2a82a0a0280a0a82a8a22080200000080a0a82a8a228822882288a2a82a0a020000008020882288a2a82a0a0200000080208822882288220802802088a2a82a0a0280208822882288a2a82a0a028020080200000080a0a82a8a22080200000080a0a82a8a2288a2a82a8a22080280208822882288220802802088a2a82a0a0280a0a82a8a22080280a0a82a8a2288a2a82a8a2208028020080200000080a0a82a0a0280a0a82a8aa2a82a8aa2a82a0a0200000080208822882208028020882288a2a82a0a02802088a2a82a8a22080280208822882288a2a82a0a0280208822080280208822882288a2a82a0a028020080200000080a0a82a8aa2a82a0a02802088a2a82a0a0280a0a82a8a2288a2a82a0a02802008020000008020882288a2a82a0a02802088a2a82a8a22080200000080a0a82a0a0280208822080280a0a82a8aa2a82a0a028020080200000080a0a82a8a228822882288a2a82a0a0200000080208822882288220802802088a2a82a0a0200000080208822882288220802802088a2a82a0a0200000080208822882288220802802088a2a82a0a0200000080208822882288220802802088a2a82a0a02000000802088a2a82a8a2288a2a82a8a220802000000000000000000000000802088
Please note that all contributions to Noisebridge are considered to be released under the Creative Commons Attribution-NonCommercial-ShareAlike (see Noisebridge:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)