So a while back I was talking about building a Game of Life display – blinking flashing lights is what it’s all about. For those who aren’t familiar, Conway’s Game of Life is sort of a zero-player game. It’s a mathematical progression that simulates a sort of simple life evolution.
Using the kits from Adafruit, I started back in December with a small array, 12 x 8 cells (96 LEDs). Over the next few months I added to it and grew it till now it’s 20 x 16 cells (320 LEDs!) This is a good size, I think. I mean, you can always go bigger. You can never have too many LEDs. But still, one ought to draw a line at some point.
Next step was making it pretty. So I have it framed with a wood frame and protected with a sheet of dark green acrylic. Sort of like a framed piece of artwork on the wall. Including the frame it’s about 21″ wide and 17″ high.
Now that it looked good, I wanted an elegant, electronic, complicated way of turning it on and off. You know, better than flipping a switch like some sort of cave-man.
Another thing I wanted to incorporate was that incase I forgot to turn it off, it had to be able to switch off automatically. Well from that point I thought, why stop there? If it knows enough to switch off, then it ought to know when to turn itself on, too.
Now I could have implemented this with a simple timer I guess, like one of those vacation lamp timers. But where’s the fun in that? And anyways, I have different schedules on weekends and weekdays. It should be able to adjust to all that.
Hmm.. what else have I built recently that keeps track of time and adjusts to a weekday/weekend schedule? Yeah, my thermostat!
So, no point reinventing the wheel. By which I mean, I didn’t want to simply re-use some code, throw together an Arduino and a Chronodot and leave it at that. Too easy. Rather than re-use code and re-create a build, why not get the existing build to control the Game of Life display? Ok, they’re on opposite sides of the room, so nowhere near each other…
Enter the XBees. I’d experimented with them earlier, so I still had them onhand. Easy-peasy. I added an XBee to the thermostat, and then modified the code so that at certain times of the day and night, depending on the day of the week, it would send a wireless signal to turn the Game of Life on or off.
I also put some code into the network side of the thermostat, to allow control of the Game of Life through the network interface. Additionally, there’s a fifth button on the thermostat that didn’t have a function yet, so I made it a manual override, incase I wanted to control the Game of Life directly. From the other side of the room.
On the Game of Life display, I added an Arduino Pro Mini as the controller, and an XBee for the communications. It’s a whole lot of power just to turn some LEDs on and off. Over-engineered. Silly. Excessive. But every time I press button # 5 on the thermostat and the GoL turns on, I can’t help but do my Mad-Scientist / Evil Genius laugh. This morning when the Game of Life turned itself on automatically, I just smiled in quiet satisfaction.
If I ever get bored of looking at the control circuitry, I’ll move it inside the display so it’s hidden.