We have a generally low light level (by design) auditorium style room. We would like to fit each armrest with LEDs, sensors, etc. This would be so that participants could participate in Jeopardy style games where they have to race to "buzz in" and answer. Also, it could be used so that, when a participant has a question, they could press a sensor and then their seat would light up and the facilitator would call on them. Of course there are more possibilities but those are just some examples.
We (my supervisor and I) are currently looking into the best approach to doing this. One idea is to use the Johnny-Five library with the Etherport-Client library running on a central Raspberry Pi, which would control Arduinos running Firmata software.
I like this method as it would consist of a TCP network that all Arduinos and the Raspberry Pi would be in. Common networking hardware and protocols could be used (switches, etc).
My supervisor has concerns regarding this method.
First, he is concerned about the cost of ~40 Arduinos that all require ethernet hardware.
Second, he is concerned by the amount of data that will have to be flowing into the Raspberry Pi. I don't have the experience to know if this is a valid concern. Of course on most networks you have on the order of 10^6 bits of data travelling per second. On the other hand though, let's say we want the "buttons" to be IR sensors. We won't want there to be a large delay at all in a Jeopardy style game, so we'd be sending the analog readings back to the Johnny-Five software very frequently. And again, this would be ~40 Arduinos all sending it simultaneously.
So, my supervisor thinks a better solution might be to use an I2C network. He likes that this will be cheaper (we won't have to equip each Arduino with ethernet hardware). Additionally, as he thinks the ethernet network will not be able to handle all of the data flowing through, he is hoping we will be able to flash each Arduino with C++ software that will only send back a relatively small amount of data through the I2C network when, for example, the Arduino knows that the IR sensor has been pressed. One thing to note is that he says the Arduinos will be built in the the chairs such that they will not be physically accessible to flash. He is hoping there would be a way to flash them over the I2C network. Of course, this strategy brings up the concern of having to flash 40 Arduinos for every change, whereas a Johnny-Five solution would simply be changing out the TypeScript on the Raspberry Pi.
As with most projects, I discover a far superior solution long after I've finished the bulk of the project. I thought I'd pitch this problem to the forums here and see if anybody had any good considerations or solutions. I truly am open to hearing any solution. Eg, we went straight to the solution consisting of one Arduino per chair, but perhaps this is not the best option. Another consideration is that whatever the solution is, we want it to be easily expandable/upgradeable.
Thanks in advance, all.