Paso 4: Definir los mensajes SysEx protocolo
En el paso anterior, podríamos han asignado distintos comandos de SysEx para cada una de las operaciones que deba realizar para configurar y controlar el motor. Sin embargo, hemos optado por asignar un solo valor, STEPPER_DATA, para ayudar a conservar el número limitado de comandos disponibles de SysEx.
Por lo tanto, para realizar una de las tres operaciones especificadas por nuestros métodos de PyMata API definidos anteriormente, un octeto cualificador o subcomando, un comando STEPPER_DATA se agregará al mensaje STEPPER_DATA. El diagrama de arriba muestra los bytes de calificador que diferencian a los comandos STEPPER_DATA.
A continuación, repiten las firmas de método API como referencia, así como Mostrar la especificación de protocolo para cada subcomando, byte por byte.
Tenga en cuenta que los mensajes de protocolo de comando se originan de PyMata y se envían a FirmataPlus.
También tenga en cuenta que la API método stepper_request_library_version(), no implica el protocolo de una firmado. Simplemente devuelve un valor previamente almacenado que es conservado por PyMata.
STEPPER_CONFIGURE
Definición de método de la API:
DEF stepper_config (self, steps_per_revolution, stepper_pins)
// stepper motor configuration message definition for 2 conductor motor 0 START_SYSEX (0xF0) 1 STEPPER_DATA (0x72) 2 STEPPER_CONFIGURE (0x00) 3 steps per revolution LSB 4 steps per revolution MSB 5 motor control pin 1 6 motor control pin 2 7 END_SYSEX (0xF7)
// stepper motor configuration message definition for 4 conductor motor 0 START_SYSEX (0xF0) 1 STEPPER_DATA (0x72) 2 STEPPER_CONFIGURE (0x00) 3 steps per revolution LSB 4 steps per revolution MSB 5 motor control pin 1 6 motor control pin 2 7 motor control pin 3 8 motor control pin 4 9 END_SYSEX (0xF7)
STEPPER_STEP
Definición de método de la API:
DEF stepper_step (self, motor_speed, number_of_steps)
// stepper motor motion message 0 START_SYSEX (0xF0) 1 STEPPER_DATA (0x72) 2 STEPPER_STEP (0x01) 3 motor speed LSB motor speed has a maximum of 21 bits 4 motor speed bits 8-14 5 motor speed MSB 6 number of steps to move LSB 7 number of steps to move MSB 8 motor direction determined within stepper_step method 9 END_SYSEX (0xF7)
STEPPER_LIBRARY_VERSION
Definición de método de la API:
DEF stepper_request_library_version(self)
// stepper motor request library version 0 START_SYSEX (0xF0) 1 STEPPER_DATA (0x72) 2 STEPPER_LIBRARY_VERSION (0x02) 3 END_SYSEX (0xF7)
La respuesta a la solicitud de versión de biblioteca es el único informe mensaje de Arduino para el motor paso a paso. Por lo tanto podemos utilizar simplemente el mensaje STEPPER_DATA sin ningún calificador subcomando. Si hay tipos de informe adicional para el motor paso a paso, entonces necesitaríamos agregar calificadores adicionales para los informes.
Tenga en cuenta que el mensaje del informe es originado de FirmataPlus y enviado a PyMata
// stepper motor version reply 0 START_SYSEX (0xF0) 1 STEPPER_DATA (0x72) 2 version LSB 3 version MSB 4 END_SYSEX (0xF7)