I want to make an interactive led wall(or more like a picture) that interacts with people walking by.
The idea is to make a led picture that acts just like a mirror, but reflects your body by turning leds on.
I have not yet decided how big it should be or how many leds I’m going to use.
I have just started with Arduino and need some help with how I should build it, and what type of sensors to use.
The project is in its very first stage.
Do you guys have any ideas how I should detect peoples body?
And how to controll all the leds?
See attachment for bad illustration.
A bit like Daniel Rozin's wooden mirror?
Yes, a little bit, but mine is going to be much more simple and I’m only going to light up leds.
The lighting up LEDs part is the simple part, you can do something like have a 16x32 array that represents the on/off state of the LEDs you are controlling.
16x32 = 512 bytes, a '328 chip only has 2048, so a processor with more memory would be good.
The hard part is doing the processing for the pattern recognition. You'd need to do something like take a 'snapshot' of a bright(ly lit) object in front of a dark object, then do the processing to determine light vs dark, and update your array for updating the display.
Depending on how mirror-like you want this, you really want a camera input. The Arduino really doesn't have enough oomph to do camera stuff. I'd look at something like a BeagleBone, or a Raspberry Pi once that ships, or perhaps a re-puposed cell phone (bonus: already comes with a camera!)
To detect people you can use a camera sensor. The major problem with arduino is slow ADC convertor. To get 30x30 pixel resolution sampling rate has to be at least 64 usec/30 = 2 usec/sample, 500 ksps. Options: attach external fast ADC or do a project with more powerfull boards, like:
Thanks for the replies.
After what I have understand, I need to use a camera sensor to detect the pattern of people bodies?
Is it hard to code the camera and leds, is there any shortcuts to controll many leds? I guess I need to use an IC for the leds?
I have a couple Arduino Uno cards, will they be too weak?
I wonder whether you could use an emitter behind the people, and put a sensor next to each LED that can detect the emitter, which can then sense whether there is a body in the way? It's a low tech approach but would need a lot of discrete sensors. The alternative would be to have the wall background be something that you could recognise (for example, a nice plain solid colour) and use a PC based application to view the wall via a web cam and work out which parts of the wall are visible and set the LEDs accordingly.
200x200 LED resolution is easy to sense. The question is how fast does it need to change? There is a big difference between 30fps and 0.1fps or every 10 seconds. We can do the latter on a Uno with a serial camera.
Because you mention "mirror," I think you need a high frame rate.
What I would do, would be to get a cheap "netbook" with a built-in webcam, and use that for sensing and down-scaling/processing.
Then, to drive the LED display, I could use one or more Arduinos, which in turn would drive the LED driver/multiplexer chips. The main limiting factor here is bandwidth from the computer to the Arduino. Even if you just use 3:3:2 RGB (one byte per pixel), you're going to get maybe 6 fps at 32x32 LEDs through a serial cable; if you need 96x96 pixeels, that's 9 separate Arduinos!
The idea is the same, only 8x8 matrix is too low resolution. It's about what arduino capable to process with frame rate 30 fps. Project could be considered as start-up, up-scaling resolution to 32 x 32 ( 16 times bigger image size ) would affect frame rate down to 30/16 = 2 fps. That is o'k, IMHO, for such installation.
I have talked with some people and I think I will use a cheap netbook with webcam, or kinect, and then use maxMSP to transfer the image to the leds. It depends on how much money I want to spend.