So first a disclaimer: I'm comfortable enough using Arduinos for hardware stuff, but have very limited networking experience. I say this so that you hopefully understand the entry-level I need in terms of development.
Here's the scenario: I'm going to have 5-10 devices with a vibrating motor and a radio. I want the devices to be able to talk to each other, and be addressable. For example, if I had the devices lined up on a table, I could tell devices 4-5-6-7 to vibrate in sequence (hopefully ramping up and down) when they receive a signal (which will be published via a ROS topic). Ideally, I just turn on this devices and they sync up together (though I want to be able to control how they sync in order to create groupings or pairings of devices).
I also then want to have the ability to remove devices 6 and 7, then have devices 8 and 9 take their place (though this replacement will not be linear in the real world). The packets I'll be sending between devices will be small, only a few kilobytes, though I assume I need low latency, so that if I made devices 4-5-6-7 pulse in order, it could seem like one "wave" passing through the devices, rather than a 4-delay-5-delay-6-delay-7 scenario.
My constraints are:
- Easy to program (hopefully I can use the Arduino IDE) and upload to (so USB or FTDI)
- Easy to connect the devices together
- Low latency
- Self-healing network
- 4-10 IO pins (for vibrating motor and maybe a few switches)
I've done searches and found things related to wifi, XBees, Z-wave, Thread, etc etc, and its a bit over my head.
I know this is a tall ask. Any help and advice would be greatly appreciated, as this forum has always been a great source of help.
Thank you for your advice!