Espurna
ES
ComunicaciónIntermedioFeetechSTS3215SO-101half-duplexIDchecksum

Direccionamiento en el bus de servos

En 30 segundosSi seis servos comparten un cable, cada uno necesita un ID. Todos oyen todo y solo contesta el que coincide; dos servos con el mismo ID se pisan.

También disponible en: Català · English

La idea

En el brazo SO-101, los servos Feetech STS3215 comparten un bus serie half-duplex: una sola línea de datos y los servos se turnan para hablar. Cada servo tiene un ID guardado en su EEPROM, que se conserva sin alimentación.

El paquete

FF FF | ID | LEN | INST | parámetros | CHK

  • LEN = número de parámetros + 2.
  • CHK = NOT bit a bit de la suma ID + LEN + INST + parámetros (byte bajo).

Ejemplo: PING al servo 1 → FF FF 01 02 01 FB, porque ~(1 + 2 + 1) = 0xFB.

Reglas

  • Todos los servos oyen todos los paquetes; solo contesta el que tiene ese ID.
  • ID 254 = broadcast: lo ejecutan todos y ninguno responde.
  • IDs válidos de 0 a 253; en la práctica el límite lo ponen la alimentación y la velocidad del bus.
  • Un servo nuevo sale con ID 1. Dos servos con el mismo ID contestan a la vez y se pisan; por eso, al configurarlos, se conecta uno solo cada vez.

En la demo

Marca «dos servos con el ID 1» para ver la colisión, prueba el broadcast y un ID que nadie tiene (timeout).

Preguntas típicas

¿Por qué half-duplex? Ahorra cables: una sola línea para todos. A cambio, no pueden hablar a la vez.

Demo interactiva

Conceptos relacionados