Más allá de StandardFirmata - agregar nuevos dispositivo soporte (3 / 10 paso)

Paso 3: Seleccionar y especificar el comando SysEx y Pin Mode

Una firmado fue diseñada para ser usuario extensible. El mecanismo que proporciona esta extensibilidad es la tem Sys Exexclusivo (SysEx) protocolo de mensajería.

El formato de un mensaje SysEx según lo definido por el protocolo de una firmado, se muestra en la ilustración anterior. Comienza con un byte de la START_SYSEX con un valor fijo de 0xF0 hexadecimal y es seguido por un único byte de comando de SysEx. El valor del byte de comando debe estar en la gama de hexadecimal 0 x 00-0x7F. El byte de comando es seguido por un número no especificado de bytes de datos de 7 bits y por último, el mensaje termina con un byte de la END_SYSEX, que tiene un valor fijo de 0xF7 hexadecimal.

Después de recibir un comando completo de SysEx de un cliente, el servidor envía el comando a la función de sysexCallback() de Sketch, donde es procesada.

 // Excerpt From FirmataPlus.ino /*================================================================= * SYSEX-BASED commands *================================================================*/ void sysexCallback(byte command, byte argc, byte *argv){ byte mode; byte slaveAddress; byte slaveRegister; byte data; unsigned int delayTime; byte pin ;// used for tone int frequency ; int duration ; switch (command) { case STEPPER_DATA: // Process the command .... 

Para apoyar un nuevo dispositivo, es necesario especificar un nuevo comando de SysEx, para ser utilizado por el cliente una firmado y el servidor. También puede que necesitemos especificar un nuevo modo de pin.

Agregar el nuevo comando de SysEx y modo Pin a FirmataPlus.h

Usando su editor de texto favorito, Abra FirmataPlus.h en el cuaderno de bocetos de Arduino. En mi sistema, este archivo se encuentra en:

 ~/Arduino/libraries/FirmataPlus 

Busque la sección de Usuario define los comandos del archivo. Valor hexadecimal 0x72 aún no se ha asignado, por lo que asignaremos este valor a nuestro comando nuevo. Para ser consecuente con una firmado convenciones de nomenclatura, el nombre del nuevo comando de SysEx será STEPPER_DATA.

Escriba el comando nuevo en el archivo como se muestra a continuación:

 /* user defined commands */ #define ENCODER_CONFIG 0x20 // create and enable encoder object #define ENCODER_DATA 0x21 // current encoder data #define TONE_DATA 0x5F // request a tone be played #define SONAR_CONFIG 0x60 // configure a sonar distance // sensor for operation #define SONAR_DATA 0x61 // Data returned from sonar // distance sensor /* New Command for stepper motor #define STEPPER_DATA 0x72 // stepper motor command */ 

También tenemos que añadir un nuevo modo de pin para el paso a paso y ajustar la cuenta de pin en este archivo. Hay 13 modos de pin como entrada y salida.

 // pin modes //#define INPUT 0x00 // defined in wiring.h //#define OUTPUT 0x01 // defined in wiring.h #define ANALOG 0x02 // analog pin in analogInput mode #define PWM 0x03 // digital pin in PWM output mode #define SERVO 0x04 // digital pin in Servo output mode #define SHIFT 0x05 // shiftIn/shiftOut mode #define I2C 0x06 // pin included in I2C setup #define ONEWIRE 0x07 // New Pin Mode #define STEPPER 0x08 // Any pin in Stepper mode // #define TONE 0x09 // Any pin in TONE mode #define ENCODER 0x0a #define SONAR 0x0b // Any pin in Ping mode #define IGNORE 0x7f #define TOTAL_PIN_MODES 13 

FirmataPlus.h edición está ahora completa. Guarde y cierre el archivo

Agregar el comando de SysEx para pymata_command_handler.py

Ahora vamos a agregar el SysEx nuevo comando (0x72) para PyMata.

Usando su editor favorito, Abra pymata_command_handler.py ubicado en el directorio de PyMata-master/PyMata o en el directorio donde descomprimió los archivos de PyMata .

Busque la sección de comandos una firmado sysex y agregar el nuevo comando.

 # Firmata sysex commands SERVO_CONFIG = 0x70 # set servo pin and max and min angles STRING_DATA = 0x71 # a string message with 14-bits per char ### New command STEPPER_DATA = 0x72 # Stepper motor command ### I2C_REQUEST = 0x76 # send an I2C read/write request I2C_REPLY = 0x77 # a reply to an I2C read request I2C_CONFIG = 0x78 # config I2C settings such as delay times REPORT_FIRMWARE = 0x79 # report name and version of the firmware SAMPLING_INTERVAL = 0x7A # modify the sampling interval 

Guarde y cierre este archivo.

Agregar el modo Pin a pymata.py

Por último, tenemos que añadir el modo pin pymata.py.

Usando su editor favorito, abra pymata.py y agregue el nuevo modo de pin.

 # pin modes INPUT = 0x00 # pin set as input OUTPUT = 0x01 # pin set as output ANALOG = 0x02 # analog pin in analogInput mode PWM = 0x03 # digital pin in PWM output mode SERVO = 0x04 # digital pin in Servo output mode I2C = 0x06 # pin included in I2C setup ONEWIRE = 0x07 # possible future feature ### New Pin Mode STEPPER = 0x08 # any pin in stepper mode ### TONE = 0x09 # Any pin in TONE mode ENCODER = 0x0a SONAR = 0x0b # Any pin in SONAR mode IGNORE = 0x7f 

PyMata no utiliza TOTAL_PIN_MODES, y allí no se agrega a este archivo. Guarde y cierre este archivo.

Nota: Actualmente sólo tipos de modo de entrada de pin realmente están siendo utilizados por el código de PyMata, pero estamos agregando ambos tipos de perno de modo pin de entrada y salida para que sea coherente con el código FirmataPlus.

Artículos Relacionados

Agregar nuevo suelo a la ventana del usb

Agregar nuevo suelo a la ventana del usb

abrir la memoria USBy copiar este código en un bloc de notas[{BE098140-A513-11D0-A3A4-00C04FD706EC}]IconArea_Image =img.jpgIconArea_Text = 0 × 000000Guarde el archivo como desktop.iniSustituir ** img.jpg ** con el nombre del archivo de imagenNota: co
¿LEGO NXT el control con wiimote

¿LEGO NXT el control con wiimote

siempre quiere construir su propio vehículo RC? Ahora usted puede. En control de su diseño y fácil de usar Legos, por ser Legos. Todo lo que necesitas es un Lego NXT, un ordenador con un software de control y Bluetooth dongleTengo 17 años.Paso 1: mat
Mi 1 º dispositivo de Iot con GeekNesia + Arduino Uno + Ethernet Shield y DHT21 via PubSub método

Mi 1 º dispositivo de Iot con GeekNesia + Arduino Uno + Ethernet Shield y DHT21 via PubSub método

Geeknesia es una plataforma de Internet de las cosas, como ThingSpeak pero es :) de Indonesia. GeekNesia todavía Beta espero que habrá algún otro rasgo bueno pronto. Usar Arduino uno y shield Ethernet para enviar datos de DHT21 (Humadity y temperatur
Cómo obtener juegos gratis en Samsung restaurar para VM

Cómo obtener juegos gratis en Samsung restaurar para VM

** este instructable es introducido en el desafío de "hackear", por favor voten por mí:) **Hace unos meses me compré mi primer teléfono, el samsung restore para móvil virgen. Después de unos días de descubrir el teléfono decidí que necesitaba al
Discurso controlado Quadropod

Discurso controlado Quadropod

Este es mi primer post en Instructables y estoy super emocionada de compartir mi conocimiento!Mi post de robot original está aquí: Spryo SpoonTail que es sólo mi robot que muestra algunos trucos pero con un control anclado.En este Instructable voy a
Configurar tu PSP como Monitor secundario

Configurar tu PSP como Monitor secundario

antes de empezar, este es mi primer instructivo, por lo que cualquier información sería genial, gracias.Este instructable le mostrará cómo configurar tu PSP para ser utilizado como un segundo Monitor en tu PC. Esto puede ser útil de muchas maneras, p
¿Cómo usar un Wiimote como Mouse de su computadora

¿Cómo usar un Wiimote como Mouse de su computadora

alguna vez se preguntó qué cosas interesantes se puede hacer con un Wiimote? Si es así, este es sin duda donde debe iniciar-como un ratón!Paso 1: Paso 1: materiales1. un Wiimote (por supuesto)2. WiiMotionPlus (realmente es construido en algunos nuevo
¿Cómo configurar Chromecast con el IPhone?

¿Cómo configurar Chromecast con el IPhone?

Este conjunto de instrucciones le guiará para configurar y utilizar su nuevo chromecast usando tu iPhone.Referencia - fotosGoogle - www.google.com/chromecastTodas las fotos son tomadas de la fuente de chromecast oficial de googlePaso 1: ¿Qué necesita
Elegante casa parte 1: registrador de temperatura de fácil nube habilitado.

Elegante casa parte 1: registrador de temperatura de fácil nube habilitado.

Siempre estuve tentado a tener una "casa inteligente". Gracias a Instructables y Intel que me envió el kit compuesto por Edison Intel con kit de arranque placa Arduino y Grove finalmente tengo la oportunidad de perseguir este sueño. Este es el p
Elegante hogar parte 2: relé de conducción a través de la nube.

Elegante hogar parte 2: relé de conducción a través de la nube.

Por favor familiarizarse y tratar de hacer mi primer instructivo donde te muestro cómo registrar la temperatura de su casa en nube de intel con Edison. Por favor siga los pasos 2-3 lo anterior instructable para configurar su edison y su tablero de in
Cómo agregar un circuito a tu coche

Cómo agregar un circuito a tu coche

Tal vez usted está también en una situación donde usted quiere alguna funcionalidad extra en su coche.Ya sea un extra de salida, una puerta central de bloqueo de sistema o una cafetera integrada.En este instructable quiero mostrarte cómo agregar corr
Como prototipo de un dispositivo lucha de postura para los pies separado

Como prototipo de un dispositivo lucha de postura para los pies separado

Ahora, justo cuando pensabas que tu lucha postura es buena, el entrenador le encendió por las noticias de última hora, su pésimo! Y, arriesgando su posición se arriesga a la Fundación para la luchas todas las jugadas. Experimentado los combatientes -
IoT DIY dispositivos de conexión a Internet con pfodApp

IoT DIY dispositivos de conexión a Internet con pfodApp

Cómo conectarse en casa y a usar la misma conexiónEste instructabe incluye cómo obtener su pfodDevice WiFi, IoT, conectado a Internet. También muestra cómo el pfodApp soluciona el problema de no poder conectarse al dispositivo local a través de Inter
Lucha contra postura Coaching dispositivo (pivote) - previene el pie de pivote Slacking por los ladridos

Lucha contra postura Coaching dispositivo (pivote) - previene el pie de pivote Slacking por los ladridos

Lucha contra principiantes a través de los veteranos puede ahora entrenar con un entrenador incansable que está con usted cada paso del camino, para mejorar la Fundación más básica y vital para ganar una pelea, la postura básica. Enfrentémoslo, sin a