Me gustaría desarrollar una red maestro / esclavo que consista en:
1 maestro Arduino que lee sensores y genera perfiles de rampa de velocidad basados en las señales del sensor y luego envía esas rampas a los esclavos
3 (o más) esclavos Arduino que controlan la velocidad de los servomotores de 12V siguiendo las rampas enviadas por el maestro
¿Cuál es un buen protocolo de comunicación para lograr esto? Serie (SPI)? I2C? ¿Algo más? Si es serial, ¿es el nuevo Arduino Leonardo una buena opción? ¿Qué problemas debo considerar al seleccionar un protocolo?
Me estoy imaginando algo como:
Maestro:
void loop() {
update_ramps()
for(int i=0; i< num_slaves; i++) {
send_to_all(i, ramps[i]);
}
}
Esclavo 1:
const int id = 1;
int recived_id, recived_value;
void loop() {
read_data();
if(recived_id == id) {
do_motor_step(recived_value);
}
}
Y comunicación en serie en la que RX / TX del maestro se envía a todos los esclavos.
¿Parece esto una solución razonable?