Light painting with LED strips - a Node.js implementation of the LightScythe
JavaScript HTML
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docimages
img
static
.gitignore
README.md
package.json
server.js

README.md

LightScytheJS: Light Paininting with LED Stripes

LightScytheJS is a control software for a LED stripe light painting tool written entirely in javascript/node.js.

The basic idea for this tool was developed by The Mechatronics Guy and brought to life with the LightScythe project which in turn took inspiration from Immaterials: light painting WiFi.

example1: ceshire cat photograph by Martin Voigt

More 30C3 images on flickriver, by Universalist on tumblr an on Martin Voigt's Photo Blog.

So the LightScyteJS is more an evolution of an existing concept than a new idea. It was intended to be an excercise to get accostumed to node.js using the Cubieboard platform and improved the original in some aspects:

  • Pure node.js makes the code easy to understand and to maintain for people not used to microcontroller platforms.
  • A web interface utilizing express and jQueryMobile provides convenient and fine tuned control of the device in the field.
  • Images to be displayed need no special preparation and are pre-processed on the device using gm and GraphicsMagick.

example2: some text photograph by Martin Voigt

Hardware

LightScytheJS Hardware

The hardware consists of

  • a cubieboard (raspberry Pi should work as well)
  • a WS2801 LED strip
  • an USB wifi dongle
  • a 2S LiPo and 5V BEC for power supply

endorse

Enable nodejs to use port 80

We use setcap:

    sudo apt-get install libcap2-bin
    sudo setcap 'cap_net_bind_service=+ep' `which node`

GPIO ports in user mode

If the node process runs as non-root (recommended), the GPIO pins have to be exported prior to starting the process: sudo su -c 'echo 1 > /sys/class/gpio/export;echo 2 > /sys/class/gpio/export'