un bit de parada, cada byte tiene 10 veces más bits para transmitir, luego la velocidad más rápida
posible en bytes por segundo es la velocidad dividida por diez. La máxima velocidad de transmisión
de Maestro es de 250.000 bits por segundo, luego la máxima transferencia de datos empezara
inmediatamente después del bit de parada del byte precedente y será de 25.000 bytes por segundo.
Cada vez que conectes dispositivos, no olvides conectar la líneas de masa juntas, y asegurarte de
que cada dispositivo se alimentada adecuadamente. Los dispositivos sin alimentación con puerto
serie TTL pueden generar en parte, cargas eléctricas en la línea, lo que significa que hay que tener
precaución al desconectarlos o resetearlos.
5.c. Protocolos de comandos
Para el control de Maestro se usan comandos serie.
Si Maestro esta en
"UART, detect baud rate"
el byte
a la línea RX y después los comandos y datos necesarios.
0xAA
El protocolo de comandos para Maestro es similar a la de otros productos Pololu. La comunicación
se logra mediante el envío de paquetes de comandos que constan de un byte de comando seguido de
los bytes de datos que se requieren. Los bytes de comando tienen siempre los bits más significativos
altos (
128–255, 0x80–0xFF
Esto significa que cada byte de datos sólo puede llevar siete bits de información. La única
excepción a esto son los comandos Mini SSC, donde los bytes de datos pueden tener cualquier valor
comprendido entre 0 y 254.
El Maestro responde a tres protocolos:
Compact
Es el más simple y compacto de los dos protocolos y es el que deberías usar si tu dispositivo es el
único conectado a la línea serie. El paquete con este protocolo es simple:
Comando byte (con MSB alto), los bytes de datos necesarios
Por ejemplo, para ajustar el destino del servo de 0 a 1500 µs, deberás enviar la secuencia de bytes:
en hex:
en decimal: 132, 0, 112, 46
El byte
corresponde al comando
0x84
servo y los dos últimos bytes de datos contienen el destino en cuartos de microsegundos.
Pololu
Este protocolo es compatible con los usados por otros dispositivos controladores de servos y
motores. Como tal, puedes encadenar un Maestro a nuestros controladores serie (incluidos los
Maestros adicionales) en una sola línea y con este Protocolo enviar comandos específicamente al
Maestro deseado sin confundir a los otros dispositivos de la línea. Para utilizar el protocolo Pololu,
debes transmitir
0xAA
número de dispositivo. El byte
El número de dispositivo predeterminado para Maestro es 12, pero se trata de un parámetro
configurable que se puede cambiar. Cualquier maestro en la línea cuyo número de dispositivo
coincida con el especificado acepta el comando que sigue, todos los demás dispositivos Pololu lo
ignoraran. Los bytes restantes en el paquete de comandos son los mismos que los
en un paquete de protocolo compact y que se enviarán, con una diferencia clave: el byte de
protocolo de comando compact es ahora un byte de datos para el comando 0xAA y por lo tanto
debe tener su bit más significativo aclarado. Por lo tanto, el paquete de comandos es:
0xAA, byte numdisp, byte comando
Por ejemplo, lo mismo que antes para Maestro con nº de dispositivo 12, enviarás la secuencia:
en hex:
en decimal: 170, 12, 4, 0, 112, 46
Fíjate el
es el Comando
0x04
Mini SSC
Maestro también responde al protocolo usado por el controlador Mini SSC. Este protocolo te
permite el control de hasta 254 servos diferentes con el encadenado de controladoras. Solo necesita
tres bytes para ajustar el destino del servo, por lo que es un buen protocolo si necesitas enviar
) mientras los menos significativos desactivados (
0x84, 0x00, 0x70, 0x2E
Set Target
(
dec) como primer byte (comando) seguido de un byte de datos con el
170
siempre será el primer byte a utilizar con protocolo Pololu.
0xAA
con MSB desactivado, bytes precisos de datos.
0xAA, 0x0C, 0x04, 0x00, 0x70, 0x2E
con el bit más significativo a cero.
0x84
, primero debes enviar el indicador de baudios con
, el primer byte de datos
19
).
0–127, 0x00–0x7F
es el número de
0x00