I'm planning to create a digital "pin-art" board - something similar to the photo below. Though not planning a life-size one. Planned specifications:
1. 64x64 matrix - 2' x 2' dimensions
2. Transparent acrylic "pins" with black acrylic board - .3 mm pins with a spacing of 10 mm center to center
3. RGB LEDs behind the display
4. Wireless connectivity so that new images can be sent to the board
The sheer number of pins - 4,096 of them, creates an extremely challenging problem. Initial thoughts include:
1. Using a 16 x 16 LED matrix so that 4x4 pins are lit using one LED
2. Using 64 stepper motors to drive each pin in a row - these steppers would move down the rows fixing each row at a time.
3. Creating a small program using processing to convert images into 64x64 grayscale image - where the brightness would provide the depth of the pins - brighter the pixel - higher the pin. This would communicate with the display via bluetooth to send the image.
The problems I see with this approach are:
1. Cannot create animations - once an image has been created - it needs to be reset manually - I was thinking of sticking washers behind each pin and using some kind of electromagnet to reset the display - but have no idea if that would work.
2. Controlling 64 motors and ensuring their position is correct every time
3. How to deal with power failures mid-way
4. Budget - I'm planning to spend ~10k INR ($175)
I'm sure there would be many other issues once I start.
Comments? Thoughts? Suggestions?
I am very interested in what you came up with, or come up with. (Would you please email me at email@example.com if you did/do come up with something?)
One approach (similar to yours without requiring a motor) would consist of:
- Put an led at the edge of each pin
- Place a digital camera where it can see all of the leds
- Measure the brightness of each led, either with an array of photodetectors or with a digital camera
- I am guessing the brightness will decrease with distance so I would try to apply the inverse square law to determine the distance, keeping in mind that pins on the outside of the matrix would be further away even when fully extended. The accuracy of this approach would be enhanced by putting the array of photodetectors as close as possible to the leds at the end of the pins so that there would a large enough effect for even small changes in distance.
A second approach would consist of:
- Building pins using a resistive material
- Applying a power source between one end of the pin and the surface of the board
- Use a multiplexer to select the row
- Use a second multiplexer to select the column
- Measure the current and convert it to a digital signal
All the best . . .
Sounds like you need a position encoder. Barcodes, quadrature encoders... these are random thoughts. Each pin can be read easily. Think about an optical mouse. Move the pin with a simple motor until you reach the desired position. Linear resistors. Google these terms if you are unfamiliar with them. Stepper motors need no encoders. You count the number of steps and you're there!