Here are my ideas for housing of modules for the community project:
#1 (see cube.png which is an example of a servo module) Each module is housed inside a cube with four metal plates on each side for power and the i2c bus. problems would be:
hard to keep all plates in contact
plates could be easily bridged
#2 Same as #1 but instead of plates you could use 4 bolts that would supply both a mechanical connection between the cubes and an electrical connection.
I think It would be really cool if we could build the housing for the modules in such a way so that you wouldn't need a chassis. Does any of this make sense or am I going off in the completely wrong direction? Feel free to post your ideas in this thread.
attached is a general image of what the boxes will look like.Don't mean to be rude but if you think about it that won't really work since you could only plug male into female, it doesn't look very professional either.
[header]When the message passes through a node, the node sends back a confirmation byte to the sending node, following the same path as the original message.
source node ID
destination node ID
[body]*message data*
Having a lipo/charging circuit in each cube might be a little cluttered. Maybe just have a single "power cube" that supplies power to all other cubes.
Then i think that using a structure like a cube would severely limit the flexibility of the platform...i was worrying about this as is would limit the amount of space you have left if you have some clunky cubes laying on your robot and it may limit users interest.
Am I confusing something or data collision is a hole in water for every device???explain?
ok the data lines are pulled up. So to clock data out, the devices either let the line go and it will be pulled up to +ve (for a 1 bit), or they pull the line down to negative (for a 0 bit).hu?
Say master 1 wants to transmit byte 00101001 and master 2 wants to say 00100101
First both say 0 - they have no way of telling that there is another master on the line so they both carry on.
Again both transmit a 0 - again no way of detecting another master
Both transmit 1 - still no way
Both transmit 0 - "
Master 1 transmits 1 letting the line go free, master 2 wants to transmit a 0, so it pulls the line to ground. The line actually is in '0' state. Now master 1 can detect another master on the line. So it quits and waits its turn. Master 2 is oblivious to this and carries on happy.
The byte which is transmitted is 00100101.
The nice thing is, if both transmit the same bytes, they never realise and they don't need to realise. So its doubly quick compared to a time sharing system :D But thats a very extreme case...
EDIT2: Oh.. here is some more info - http://www.esacademy.com/faq/i2c/general/i2carbit.htm (http://www.esacademy.com/faq/i2c/general/i2carbit.htm) - it's called arbitration -just to be clear, your EDIT2 is correct.
I'm quite sure now that i was correct...
Either one master starts transmitting and the others be quiet, or multiple transmitters start transmitting at the same time and they have a 'race'.
Here are my ideas for housing of modules for the community project:
#1 (see cube.png which is an example of a servo module) Each module is housed inside a cube with four metal plates on each side for power and the i2c bus. problems would be:
hard to keep all plates in contact
plates could be easily bridged
#2 Same as #1 but instead of plates you could use 4 bolts that would supply both a mechanical connection between the cubes and an electrical connection.
I think It would be really cool if we could build the housing for the modules in such a way so that you wouldn't need a chassis. Does any of this make sense or am I going off in the completely wrong direction? Feel free to post your ideas in this thread.