Difference between revisions of "LEDLightDistrict"

From Technologia Incognita
Jump to: navigation, search
m (Overview)
Line 52: Line 52:
 
[[Image:Ledwall_ATX.jpg|480px]]
 
[[Image:Ledwall_ATX.jpg|480px]]
  
 +
 +
 +
== Software ==
 +
 +
== Software Implementations ==
 +
 +
[https://github.com/techinc/lewd The current python based implementation called
 +
lewd] runs
 +
on the machine connected to the LED-Wall over a serial port.
 +
 +
The older [https://github.com/techinc/LedWallServer javascript node.js version]
 +
can communicate with the python implementation to push frames to the LED-Wall
 +
using TCP sockets.
 +
 +
Python documentation (temporary location) http://old.villavu.com/merlijn/lewd
 +
 +
=== Lewd ===
 +
 +
The Python (lewd) implementation features several backends. LedScreen,
 +
RemoteLedScreen and VirtualLedScreen used for local, remote and virtual
 +
access respectively.
 +
 +
See the file "ledwall.py" for an example on how to use all these different
 +
LedWall frontends. At the space, you should typically use RemoteLedScreen to
 +
interface with the (already running) server to the LEDWall.
 +
 +
To just play around with the code locally, look into the VirtualLedScreen code;
 +
you will need to install pygame to actually use the local UI.
 +
 +
==== Python documentation (temporary location) ====
 +
 +
http://old.villavu.com/merlijn/lewd
 +
 +
 +
== Photos & Videos ==
 +
<gallery heights=150px>
 +
File:Ledwall1.0-leds-spooned.jpg
 +
File:Ledwall2.0-mount.jpg
 +
File:ledwall.jpg
 +
File:ledwall_dark.jpg
 +
File:ledwall_arduino_pinout.jpg
 +
</gallery>
 +
 +
 +
== OLD ==
  
 
=== Alternative configuration using Arduino (Obsolete) ===
 
=== Alternative configuration using Arduino (Obsolete) ===
Line 105: Line 150:
  
 
[[Image:ledwall_arduino_pinout.jpg|480px]]
 
[[Image:ledwall_arduino_pinout.jpg|480px]]
 
== Software ==
 
 
== Software Implementations ==
 
 
[https://github.com/techinc/lewd The current python based implementation called
 
lewd] runs
 
on the machine connected to the LED-Wall over a serial port.
 
 
The older [https://github.com/techinc/LedWallServer javascript node.js version]
 
can communicate with the python implementation to push frames to the LED-Wall
 
using TCP sockets.
 
 
Python documentation (temporary location) http://old.villavu.com/merlijn/lewd
 
 
=== Lewd ===
 
 
The Python (lewd) implementation features several backends. LedScreen,
 
RemoteLedScreen and VirtualLedScreen used for local, remote and virtual
 
access respectively.
 
 
See the file "ledwall.py" for an example on how to use all these different
 
LedWall frontends. At the space, you should typically use RemoteLedScreen to
 
interface with the (already running) server to the LEDWall.
 
 
To just play around with the code locally, look into the VirtualLedScreen code;
 
you will need to install pygame to actually use the local UI.
 
 
==== Python documentation (temporary location) ====
 
 
http://old.villavu.com/merlijn/lewd
 
 
 
== Photos & Videos ==
 
<gallery heights=150px>
 
File:Ledwall1.0-leds-spooned.jpg
 
File:Ledwall2.0-mount.jpg
 
File:ledwall.jpg
 
File:ledwall_dark.jpg
 
File:ledwall_arduino_pinout.jpg
 
</gallery>
 
 
 
== OLD ==
 
 
Project to LED'ify the outside facing glass 'block' wall. each glass box will be a pixel
 
 
The [[Pledges/LEDLightDistrict|pledge]] has been funded and the wall has been built
 
 
 
TODO:
 
 
* Finish documentation
 
* Host documentation somewhere
 
* Add nice pictures of the (new) LED wall in action.
 
* Set up the software in such a way that it is trivial for anyone to at least "start" the ledwall in normal operation.
 
 
=== Usage ===
 
 
Plug both power supplies at either side of the wall
 
 
The arduino is by the power supply on the left hand side. The computer powering the server is under the retro gaming table.
 
 
Running the software is pretty trivial; but requires access to the machine
 
connected to the ledwall. Alternatively, you can attach your machine to the
 
ledwall yourself and run the software locally.
 
 
On whatever machine that is connected to the LED wall over USB (serial); run the
 
file net/net.py and then, in another terminal, run the file ledwall.py with the
 
-net flag. Alternatively, you can just run the ledwall.py file with no flags,
 
but do not run the net.py file concurrently in this case.
 

Revision as of 06:12, 10 February 2013

Projects
Ledwall dark.jpg
Participants Guido, Wizzup
Skills soldering, coding
Status Active
Niche Electronics
Purpose World domination

Project to LED'ify the outside facing glass 'block' wall. each glass box will be a pixel the space

Turning it on/off

  • On: Plug in its power supply
  • Off: Pull out its power supply

Doesn't work!

Hardware

Design

Overview

 Raspberry Pi ===(SPI)===> ledwall
       ^                       ^
       | (5V)                  | (12V)
       \----------PSU ---------/

Software

  • x


Arduino pin-out

The code uses the hardware SPI present on the the ATMega

  • Green wire on Pin 13 is Clock
  • Yellow wire on Pin 11 is Data
  • Black wire should be connected to the arduino's ground pin. does not have to be connected to the ground pin, not having a common ground works as well, and doesn't generate noise.
  • Red wire should NOT be connected to the arduino as it will break it!

Ledwall arduino pinout.jpg

PSU

Ledwall ATX.jpg


Software

Software Implementations

[https://github.com/techinc/lewd The current python based implementation called lewd] runs on the machine connected to the LED-Wall over a serial port.

The older javascript node.js version can communicate with the python implementation to push frames to the LED-Wall using TCP sockets.

Python documentation (temporary location) http://old.villavu.com/merlijn/lewd

Lewd

The Python (lewd) implementation features several backends. LedScreen, RemoteLedScreen and VirtualLedScreen used for local, remote and virtual access respectively.

See the file "ledwall.py" for an example on how to use all these different LedWall frontends. At the space, you should typically use RemoteLedScreen to interface with the (already running) server to the LEDWall.

To just play around with the code locally, look into the VirtualLedScreen code; you will need to install pygame to actually use the local UI.

Python documentation (temporary location)

http://old.villavu.com/merlijn/lewd


Photos & Videos


OLD

Alternative configuration using Arduino (Obsolete)

 computer ===(serial over usb)===> arduino ===(SPI)===> ledwall
                                                           ^
                                                           | (12V)
                                                          PSU

Arduino code

#include <SPI.h>

void setup()
{
    Serial.begin(1000000);
    SPI.begin();
    SPI.setBitOrder(MSBFIRST);
    SPI.setDataMode(SPI_MODE0);
    SPI.setClockDivider(SPI_CLOCK_DIV16);
}

void loop()
{
    uint8_t c;

    for(;;)
    {
        while (!Serial.available()) {}

         /* 254 signals end of frame in the communication
          * over the serial port
          */
         if ( (c = Serial.read()) == 254 )
            delay(1); /* the WS2801 chips will latch after not getting
                       * any data for .5ms, so we wait 1ms
                       */
        else
            SPI.transfer(c); /* not end of frame? push data */
    }
}

Arduino pin-out

The code uses the hardware SPI present on the the ATMega

  • Green wire on Pin 13 is Clock
  • Yellow wire on Pin 11 is Data
  • Black wire should be connected to the arduino's ground pin. does not have to be connected to the ground pin, not having a common ground works as well, and doesn't generate noise.
  • Red wire should NOT be connected to the arduino as it will break it!

Ledwall arduino pinout.jpg