Distributed Art

A framework for building a distributed network of small interactive art pieces

Similar projects worth following
This project involves putting together a software and hardware framework to enable small interactive art pieces to be controlled in a distributed manner. The goal is that the framework will allow for relatively easy configuration and coding of new pieces, provide means of sending and receiving commands between the pieces, and to abstract away the underlying communication layers the pieces use to interact. As this framework essentially builds a masterless network of small embedded devices, it could also be used for home automation or other similar projects.

The initial framework allows for one of these devices to control addressable LEDs, high-power single LEDs, and any other simple device that can switched using DC power. For communication the devices will use RS485 for wired communication, XBee or RFM69 for wireless communications, and will allow for using a Raspberry PI as a bridge for connecting via IP.

The folks that have had to deal with me in a professional environment have probably discovered that most of my conceptual work happens on paper or a whiteboard, and never end up in easily presentable formats. My life is strewn with notebooks filled with diagrams, ideas, notes, and bored doodles. At work I fill up whiteboards and send myself photos of them. Unsurprisingly its the same with my personal projects, so here is a photo of a sheet of paper that I had on a clipboard while visiting my wife in Miami last week:

I’m sure its very clear from this photo what I’m up to with this project:

A couple years ago I started to get back into electronics, and that the first big project a friend and I decided to do after that involved learning to build remote controlled flame effects for burning man. That led to a bunch of other art projects, and now I’ve built a framework for building distributed networks of microcontrollers that can bridge various non-IP networks.

What I have working right now is star-pattern network of Atmel AVR (i.e. Arduino) based boards communicating over a wired protocol (using RS485), and a Python-based API for connecting to one of the nodes in that network over a serial connection. This includes a server side app that manages the connection to the boards and allows clients to connect over TCP, and client side apps that can send commands via TCP to the server, which forwards them to a serial device, which can then forward them to other devices it is connected to. I have a fairly complete command line client as well as the beginnings of web server that presents a UI for devices on the network.

(I’ll have the web UI up for public consumption fairly soon, I’m just waiting for a camera for the Raspberry PI thats currently connected to the stuff in my basement)

My minimal goal for this current phase of the challenge is to get a passable web-based UI that allows for control of a single network of these devices. But along side that I’m continuing work on somewhat more complicated boards which communicate over low power long range radio, which will be used as for the next phases of this project.

  • 1 × ST485BN Interface and IO ICs / RS-232, RS-422, RS-423 and RS-485
  • 1 × ATMega (328, 32u4, or 1284) Microcontroller
  • 1 × Addressable LEDs (SPI preferred - WS2801, ADA102, etc) Addressable LEDs
  • 1 × IRF510 Discrete Semiconductors / Power Transistors and MOSFETs
  • 1 × RFM69 Radio frequency module

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates