Ich möchte ein Master / Slave-Netzwerk entwickeln, das besteht aus:
1 Arduino-Master, der Sensoren liest und Geschwindigkeitsrampenprofile basierend auf den Sensorsignalen generiert und diese Rampen dann an Slaves sendet
3 (oder mehr) Arduino-Slaves, die die Geschwindigkeit von 12-V-Servomotoren nach den vom Master gesendeten Rampen steuern
Was ist ein gutes Kommunikationsprotokoll, um dies zu erreichen? Seriell (SPI)? I2C? Etwas anderes? Wenn es seriell ist, ist der neue Arduino Leonardo eine gute Wahl? Welche Probleme sollte ich bei der Auswahl eines Protokolls berücksichtigen?
Ich stelle mir so etwas vor wie:
Meister:
void loop() {
update_ramps()
for(int i=0; i< num_slaves; i++) {
send_to_all(i, ramps[i]);
}
}
Sklave 1:
const int id = 1;
int recived_id, recived_value;
void loop() {
read_data();
if(recived_id == id) {
do_motor_step(recived_value);
}
}
Und serielle Kommunikation, bei der RX / TX vom Master an alle Slaves gesendet wird.
Scheint dies eine vernünftige Lösung zu sein?