An art work celebrating Conway's Game Of Life.
RGBLIFE is my interactive artwork using a single string of 100 RGB LEDs, 6 infra red sensors and an Arduino Uno microcontroller.
It has three modes of operations:
Here is a copy of the instructions which might be attached to this display if it were ever hung in a public space.
I have worked on several specialised LED arrays over the last decade and last year I was very lucky to work on a project to build a super bright 10 x 10 x 10 LED cube. As part of the prototyping process we purchased 5 x 20 LED strings from Little Bird Electronics which use the WS2801 RGB LED controller. Having learned how to interface an Arduino to these, I thought to capitalise on the knowledge and to use these left over LEDs for an artistic or interative project.
While attending a maker meet at the Canberra based Make Hack Void maker group, I was futher insprired to attempt a 2 week project. Six months latter I have something finished.
I originally intended to hack some logitech mice which use the avigo sensor to allow people to interact with the LEDs. I got this working to a point but the frame rate was very slow, focus depth very poor and there would needed to have been a strong lift source to silloette the people.
Then I read Robert Sawyer's WWW SciFi trilogy which mentioned Conway's Game of Life created by John Horton Conway in 1970. I had seen mention of this years before but had not really appreciated it's possible implications in computer and life sciences.
This art work, RGBLIFE, is a tribute to Conway's vision and might inspire someone to have a further insight into the origins of life. I also think it is rather pretty.
A plastic lattice is used to hold the 100 RGB LED modules in a roughtly 50mm grid around a pine frame 115cm x 115cm. A second pine frame is held off the first frame by 4 x 100mm aluminium angles. The second frame was routed to hold the rubber strip normally used to tighten the fly wire in window and door screens. Onto this I stretched some white polyester cloth (PolyPol) which was my only personal outlay on this project ($4).
Everything is powered from a 5V doubly insualted switch mode supply. To supply the Arduino, the only apparent safe way to do this and still allow USB connection for programming was to cut a USB cable, disconnect the PC supply and feed in the external supply to the USB socket. The Arduino UNO is only intended to be supplied by either the 7.5 to 30V socket or the PC USB input. Supplying 5V directly to the Arduino 5V pins runs the risk of damaging the PC's USB supply. I seem to have some sort of startup lockup - probably the infrared sensors are triggering before the Arduino has booted - but everthing comes right after a few seconds so I'm not worrying about this glitch.
As you will see if you examine the code, the infrared sensors feed directly to the arduino's six analogue inputs.
The 100 LEDs were in serial for data and clock lines, but the 5V is supplied to each end of each string. Oddly, the strings were supplied with two different styles of connector.
Only two outputs are required to program the RGB strings and for this I am using the WS2801 library which I got from the LittleBird page but which I believe was originally written by Adafruit. I used this library in attempt to get some better speed from the SPI bus, but for the 10 x 10 x 10 cube we used an EtherMega and 20 outputs in order to multiplex the clock and data lines - so the use of the library is not essential for success but makes the critical timing so much easier. The reason for the difference between the two projects is that, with RGBLIFE, I was trying to minimise the wiring by chaining the entire 100 LED controllers where as, with the 10 x 10 x 10 cube, I needed to load 10 chains in parrallel. This avoided a lot of wiring but we still needed the help of Derek Flannery, an ex-Telecom employee, to build the massive loom required.
While we got the RGB strings from LittleBird, who are always very helpful, they were not able to source the 1000 WS2801 chips for the 10 x 10 x 10 cube and kindly redirected us to SparkFun in the states who also sell the RGB strip here, so there are a number of sources still. I believe the WS2801 has now been superseded by superior chip but remains very popular.
The Sharp infra-red distance sensors were left over from some project before my time but still seem to be popular in the robotics field and are still available at a number of locations including littlebird electronics. As a trigger for selecting automata seeds they are not ideal but they are nearly unbreakable. The code averages the readings as the distance measurement seems to be very noisy.
Here is the link to the arduino uno code:rgbLife5.ino using the Arduino 1.05 version of IDE and with the 8th March 2014 version of the WS2801 library located in the C:\Program Files (x86)\Arduino\libraries folder. You will note that the code mentions the Ether10 version of the arduino but I switched to the simpler Uno while trying to come up with a safe 5v injection method.
When the whole thing gets too manky (from dust, mould and spider webs) to bare I'll pull it apart and replace it with an OLED wall panel which will be rediculously cheap by then. I even have the start of a visual studio project ready for it: GameOfLife but with this you left click to fill cells and right click to start the game.