Die verder gaan dan StandardFirmata - ondersteuning voor nieuwe apparaten toe te voegen (3 / 10 stap)

Stap 3: Selectievakje en geven de SysEx opdracht en pens-modus


Firmata werd ontworpen om de gebruiker extensible. Het mechanisme waarmee deze uitbreidbaarheid is de System Exclusive (SysEx) messaging protocol.

De indeling van een bericht van de SysEx zoals gedefinieerd door het Firmata-Protocol, wordt weergegeven in de bovenstaande afbeelding. Het begint met een START_SYSEX bytes met een vaste waarde van hexadecimale 0xF0, en wordt gevolgd door een unieke SysEx opdracht byte. De waarde van de byte van de opdracht moet in het bereik van hexadecimale 0x00-0x7F. De byte van de opdracht wordt dan gevolgd door een onbepaald aantal gegevensbytes 7 bit en tot slot, het bericht wordt beëindigd met een END_SYSEX-byte, dat een vaste waarde van hexadecimale 0xF7 is.

Na ontvangst van een volledige SysEx opdracht vanaf een client, verzendt de server de opdracht om de schets van sysexCallback() functie, waar deze wordt verwerkt.

 // 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 .... 

Ter ondersteuning van een nieuw apparaat, moeten we een nieuwe SysEx opdracht opgeven, moet worden gebruikt door zowel de Firmata-client en de server. Wij ook wellicht een nieuwe pin-modus opgeven.

De nieuwe SysEx opdracht en pens-modus toe te voegen aan FirmataPlus.h

Met behulp van uw favoriete tekst-editor, open FirmataPlus.h in de Arduino schetsboek. Op mijn systeem bevindt dit bestand zich op:

 ~/Arduino/libraries/FirmataPlus 

Zoek de Gebruiker gedefinieerd opdrachten sectie van het bestand. Hexadecimale waarde 0x72 is nog niet toegewezen, zodat we deze waarde wordt toegewezen aan de opdracht van onze nieuwe. Om overeenstemming met de naamgevingsconventies van Firmata, zal de naam van de nieuwe SysEx opdracht worden STEPPER_DATA.

Voer de nieuwe opdracht in het bestand, zoals hieronder getoond:

 /* 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 */ 

We moeten ook het toevoegen van een nieuwe pin-modus voor de stepper en aanpassen van de telling van de pin in dit bestand. Er zijn 13 pin-modi, inclusief INPUT en OUTPUT.

 // 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 bewerken is nu voltooid. Sparen en sluit het dossier

De SysEx opdracht toe te voegen aan pymata_command_handler.py

Nu laten we het toevoegen van de nieuwe SysEx commando (0x72) PyMata.

Met behulp van uw favoriete editor, open pymata_command_handler.py , gelegen in de PyMata-meester/PyMata directory of in de map waar u de PyMata -bestanden hebt uitgepakt.

Ga naar de Firmata sysex opdrachten sectie en voeg de nieuwe opdracht.

 # 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 

Opslaan en sluiten van dit bestand.

De Pin-modus toe te voegen aan pymata.py

Ten slotte moeten we het toevoegen van de pens-modus naar pymata.py.

Open pymata.py met je favoriete editor en toevoegen van de nieuwe pin-modus.

 # 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 maakt geen gebruik van TOTAL_PIN_MODES, en er wordt niet toegevoegd aan dit bestand. Opslaan en sluiten van dit bestand.

Opmerking: Momenteel alleen invoer pin modus typen daadwerkelijk worden gebruikt door de PyMata code, maar we zijn het toevoegen van beide typen input- en output pin modus pin om ze consistent met de code FirmataPlus.

Gerelateerde Artikelen

Die verder gaan dan de HORIZON met LoRa RF1276

Die verder gaan dan de HORIZON met LoRa RF1276

Ik heb gevonden RF1276 Transceiver te leverende meest opmerkelijke prestaties in termen van signaalbereik en kwaliteit. Op mijn eerste vlucht was ik in staat tot 56km afstand op - 70dB signaalniveau met kleine kwart golflengte antennes.Stap 1: BOM (r
Help en ondersteuning voor Yahoo E-mail problemen vandaag Contact nummer

Help en ondersteuning voor Yahoo E-mail problemen vandaag Contact nummer

Yahoo E-mail is een's werelds meest prominente e-mail beheer met een groot aantal records van de klant in aanwezigheid. Nog wat kunnen overreden problemen geïdentificeerd met Yahoo E-Mail waren we in komt. Onze gecertificeerde specialisten probleem a
Het afstellen van de Ember afdrukinstellingen voor nieuwe harsen

Het afstellen van de Ember afdrukinstellingen voor nieuwe harsen

Heb je een nieuwe hars uw willen proberen met behulp van in de Ember printer, of is een bijzonder afdrukken waardoor u problemen? In beide gevallen is er een goede kans dat het veranderen van de standaard afdrukparameters u toelaten zal om betere res
Gebruikt rotoren prepping voor nieuwe Pads

Gebruikt rotoren prepping voor nieuwe Pads

nu als de titel van dit niet duidelijk genoeg ik weet niet hoeveel meer ik kan u helpen =)Deze techniek kan niet alleen worden gebruikt voor nieuwe pads, maar ook om te proberen andere problemen diagnosticeren die u zou kunnen hebben met uw huidige r
De externe auto die kan gaan enywhere

De externe auto die kan gaan enywhere

dit is een auto die kan gaan waar je maar aan het wilt water, land en veel meer plaatsen!!om deze auto de dingen die je zal nodig zijn:-1.a oude auto die het motor van de achterwielen en front draaien motor heeft2. ubehoefte 2 van 9 volt batterijen3.
Hoe te te herbouwen van een Dana-Spicer transmissie voor een Lil' Gasser 7 1/2 "meten van 1 1/2" schaal locomotief

Hoe te te herbouwen van een Dana-Spicer transmissie voor een Lil' Gasser 7 1/2 "meten van 1 1/2" schaal locomotief

dit ' Ible "brengt u door de stappen te demonteren, indien nodig te repareren, inpakken en monteer een kleine F-N-R transmissie voor een Cannonball schaal ride-on locomotief, aangedreven door een kleine benzinemotor. De kleine gele locomotief is dege
Ondersteuning voor laptop en Smartphone geïntegreerd

Ondersteuning voor laptop en Smartphone geïntegreerd

dit instructable is gewijd aan de opbouw van een laptop stand met een ingebouwde draaibare ondersteuning voor smartphone; Het lijkt bijna nutteloos, maar mijn ervaring vertelt me dat soms ik heb ze allebei om tegelijkertijd te gebruiken, en de mogeli
Tumblr: Aangepast minimalistische thema met ondersteuning voor Addthis, Adsense, en Disquss

Tumblr: Aangepast minimalistische thema met ondersteuning voor Addthis, Adsense, en Disquss

Opmerking: Species identificatie wedstrijd 2Herkent u dit beestje hier ? Gevonden 9 oktober in de Heritage Park in Blacksburg, Virginia. Exemplaar werd gevonden in een enkele, geïsoleerde patch op een korte heuvel, onder diepe borstel en ongeveer 10
PcDuino3 nano is een kleinere, goedkopere mini PC met Arduino ondersteuning voor

PcDuino3 nano is een kleinere, goedkopere mini PC met Arduino ondersteuning voor

De makers van de pcDuino-lijn van producten bieden meerdere kleine, low-power single-board computers met ARM-processors en ondersteuning voor Arduino Shields.Het nieuwste model is de kleinste (en goedkoopste) tot nu toe. De pcDuino3 nano is nu beschi
Automatische k'nex verborgen mes (voor nieuwe mensen zoals ik)

Automatische k'nex verborgen mes (voor nieuwe mensen zoals ik)

dit is een gewijzigde versie van een andere verborgen blad ik zag, gemaakt door Raz1r Knex Bull3t.Ik maakte het automatische door middel van elastiekjes, ik maakte een trigger vinger, en zet een kartonnen vambrace op, zodat u kunt van nemen en zet he
Statief ondersteuning voor een QuickCam (of andere webcam)

Statief ondersteuning voor een QuickCam (of andere webcam)

er zijn vele redenen wilt u misschien uw webcam op een statief gezet.  Ik moest dit doen omdat de stand voor mijn Logitech QuickCam Pro 4000 ontbrak, maar het is vaak leuk om te gebruiken met een statief voor betere foto's in het algemeen, vooral als
PVC ondersteuning voor fotografische camera

PVC ondersteuning voor fotografische camera

maken van een functionele PVC-ondersteuning voor uw camera. gebruik voor verschillende filmen en fotografiePS:Excuse de mogelijke spelling fouten ik kom uit een ander land en een andere taal te gebruiken als u de tekst niet begrijpt, de foto's kunnen
Help en ondersteuning voor Yahoo E-mail problemen deze dagen Contact Support nummer

Help en ondersteuning voor Yahoo E-mail problemen deze dagen Contact Support nummer

Er is geen gewijzigde tijd voor de kopers aanpak de yahoo lijn bereik van Yahoo vergemakkelijken. De kopers op ongeacht doel ze confronteren elk type van dergelijke problemen bekend met Yahoo, zij zal alleen het bereik van de hulplijn benadering zelf
Ondersteuning voor overhead Camera's

Ondersteuning voor overhead Camera's

Bekijk de video hierboven waar ik ben het opbouwen van mijn eigen ondersteuning voor overhead camera's te verminderen van het gewicht op mijn gimbal.