I am trying to use 25 accelerometers with an arduino uno board in order to receive the 25 individual streams of x y and z values into a arduino/processing sketch for visulizations. Could someone give me some feedback on a simple way of connecting this up so that it will feed through one arduino board.
Need a little more information.
What kind of accelerometers?
What kind of sample rate you looking for?
What kind of accuracy do you need?
Assuming some small voltage analog outputs at a very slow rate with only moderate accuracy you could use something like sparkfun's analog switch multiplexer.
But I have to ask, why do you need
25 (wait, 3 dimensions times 25) 75 accelerometers into one board?[/edit]
The accelerometers are the adafruit ADXL335 accelerometers (http://www.adafruit.com/index.php?main_page=product_info&cPath=35&products_id=163)
The sample rate needs to fairly rapid, so that I can predict the coordinates of the accelerometer's position in space (i.e. so that i can map them as point in space, in realtime). I will most likely put in a button on the board to normalize the entire set of accelerometer's in the beginning so that they have a determined starting position.
The accuracy can be fairly low, but then I would like to eventually build up the accuracy to something more accurate (sorry for the 'lack' of accuracy in this description, I'm new to the accelerometer sensor so i am still trying to figure out how the accuracy is calculated and its specific impact to my application).
Just to clarify, I am going to use 25 physical accelerometers and then each one has outputs for the x y and z directions, so there would be 75 values totals.
I am using these 25 accelerometers to create a 5 x 5 grid of points (the accelerometers) which I will feed their output coordinates into a arduino/processing sketch to determine all 25 points in space and then create simple NURBS curves from the points and loft the NURBS curves into NURBS surfaces to generate a realtime visualization of a NURBS surface.
thank you for the help
i hope this helps to clarify
'fairly rapid' ?
I'd estimate about 60Hz across all 75 channels, that's 9000 bytes per second, so a minimum bit rate of 115200, and that is transmitting just the binary values.
Knowing that serial write and analog read are blocking functions, I think there's a bit more work to make all interrupt-dependent.
With luck will work all with blocking functions :)
Ok, the first question, that I don't know the answer, is how to multiplex 75 analog signals.
About your project (more important):
How will you hold your 25 2axis-acelerometers in the space? Couldn't be better select it in a Processing window, position the acelerometer, press a button to confirm position, and use only 1 acelerometer? like a 3D mouse (or Wii pad)
If they are independent and distant from each other, you will see that analog values will drift all over the range, and i2c is simply not made for long connections and wires, so seems a silly idea to just connect 25 accelerometers in one board, as they will read all the same values, you only have 3 axis in real world you know…
And for separate sensors, well you will need a lot of atmegas to read each sensor and use a robust protocol like rs-232 or a wireless one like zigbee ou bluetooh.
so seems a silly idea to just connect 25 accelerometers in one board,
Yes I must agree with this, there is too much data here for a small processor like this to cope with. I think you should possibly rethink your solution.