Utöver StandardFirmata - lägger till stöd för nya (3 / 10 steg)

Steg 3: Du väljer och anger SysEx kommando och Pin-läge



Firmata var avsedd att vara användare extensible. Den mekanism som ger denna utökning är den System Exclusive (SysEx) messaging protocol.

Formatet för en SysEx meddelande enligt Firmata protokoll, visas på bilden ovan. Det börjar med en START_SYSEX byte med ett fast värde för hexadecimala 0xF0, och följs av en unik SysEx kommandobyte. Värdet av kommandobyte måste vara i intervallet hexadecimala 0x00-0x7F. Kommandobyte följs sedan av ett ospecificerat antal 7 bitars data-byte och slutligen meddelandet avslutas med en END_SYSEX byte, som har ett fast värde för hexadecimala 0xF7.

Efter att ha fått ett komplett SysEx-kommando från en klient, skickar servern kommandot till den skiss sysexCallback() funktion, där de bearbetas.

Utdrag från FirmataPlus.ino

/*=================================================================
* SYSEX-baserade kommandon
*================================================================*/
void sysexCallback (byte kommando, byte argc, byte * argv) {
byte läge;
byte slaveAddress;
byte slaveRegister;
byte data.
unsigned int fördröjningstid;
byte pin ;// används för ton
int frekvens;
int varaktighet;

Växla (kommandot) {
fall STEPPER_DATA: / / behandla kommandot
....

För att stödja en ny enhet, måste vi ange en ny SysEx kommando, som ska användas av både Firmata klienten och servern. Vi kan också behöva ange en ny pin-läge.

Att lägga till det nya SysEx kommandot och Pin läge i FirmataPlus.h

Öppna med din favorit texteditor FirmataPlus.h i Arduino skissbok. På mitt system finns denna fil på:

~/Arduino/libraries/FirmataPlus

Leta upp avsnittet Användar definierade kommandon i filen. Hexadecimala värdet 0x72 har ännu inte tilldelats, så vi kommer att tilldela detta värde till våra nya kommandot. För att vara förenligt med Firmata namngivning konventioner, kommer namnet på det nya SysEx-kommandot att STEPPER_DATA.

Ange det nya kommandot i filen som visas nedan:

/ * användardefinierad kommandon * /

#define ENCODER_CONFIG 0x20 / / skapa och aktivera encoder objekt
#define ENCODER_DATA 0x21 / / aktuella encoder data
#define TONE_DATA 0x5F / / förfrågan en ton ska spelas
#define SONAR_CONFIG 0x60 / / configure sonar avstånd
sensor för drift
#define SONAR_DATA 0x61 / / Data returneras från ekolod
avståndet sensor

/ * Nytt kommando för stegmotor
#define STEPPER_DATA 0x72 / / stepper motor kommando
*/

Vi måste också lägga till en ny pin läge för nummerlistan och justera antalet stift i denna fil. Det finns 13 pin lägen, inklusive in- och utdata.

PIN lägen

#define INPUT 0x00 / / definieras i wiring.h
#define utdata 0x01 / / definieras i wiring.h
#define analoga 0x02 / / analog pin i analogInput läge
#define PWM 0x03 / / digital pin i PWM-utgång läge
#define SERVO 0x04 / / digital pin i Servo output mode
#define SKIFT 0x05 / / at/shiftOut läge
#define I2C 0x06 / / pin ingår i I2C setup
#define ONEWIRE 0x07

Ny Pin läge
#define STEPPER 0x08 / / någon pin-Stepper läge
//

#define ton 0x09 / / någon pin-klangfärg
#define ENCODER 0x0a
#define SONAR 0x0b / / någon pin-Ping läge
#define ignorera 0x7f

#define TOTAL_PIN_MODES 13

FirmataPlus.h redigering är klar. Spara och stäng filen

Att lägga till kommandot SysEx pymata_command_handler.py

Nu ska vi lägga till den nya SysEx kommando (0x72) för PyMata.

Öppna med din favorit editor pymata_command_handler.py finns i katalogen PyMata-master/PyMata eller i katalogen där du packade upp filerna PyMata .

Leta upp avsnittet Firmata sysex kommandon och lägga till det nya kommandot.

# Firmata sysex kommandon

SERVO_CONFIG = 0x70 # set servo pin och max och min vinklar
STRING_DATA = 0x71 # en sträng meddelande med 14-bitar per röding

### Nytt kommando
STEPPER_DATA = 0x72 # Stepper motor kommando
###

I2C_REQUEST = 0x76 # skicka en begäran om I2C Läs/skriv
I2C_REPLY = 0x77 # besvara en I2C läsa begäran
I2C_CONFIG = 0x78 # config I2C inställningar som fördröjningstider
REPORT_FIRMWARE = 0x79 # rapportens namn och version av firmware
SAMPLING_INTERVAL = 0x7A # ändra provtagning intervallet

Spara och stäng filen.

Att lägga till Pin läge i pymata.py

Slutligen måste vi lägga till pin läge till pymata.py.

Använd din favorit editor, öppna pymata.py och lägga till den nya pin-läget.

# pin lägen

INPUT = 0x00 # pin som indata
OUTPUT = 0x01 # pin ange
ANALOGA = 0x02 # analog pinne i analogInput läge
PWM = 0x03 # digital pin i Utläge för PWM
SERVO = 0x04 # digital pin i Utläge för Servo
I2C = 0x06 # pin ingår i I2C setup
ONEWIRE = 0x07 # möjliga framtida funktion

### Ny Pin läge
STEPPER = 0x08 # någon pin-stepper läge
###

TON = 0x09 # någon pin-klangfärg
ENCODER = 0X0A
SONAR = 0x0b # någon pin-SONAR-läge
IGNORERA = 0X7F

PyMata använder inte TOTAL_PIN_MODES, och det läggs inte till i filen. Spara och stäng filen.

Obs: För närvarande endast ingångsstift läge typer används faktiskt av PyMata koden, men vi lägger till bägge indata- och pin-läge pin för att vara förenligt med FirmataPlus kod.

Se Steg
Relaterade Ämnen

Hur du lägger till en USB-fingeravtrycksläsare internt till laptop

jag hade en Dell Mini-9 att jag installerat Mac OS X på och i processen såg andra användare att lägga till en inbyggd GPS-mottagare. Detta fick mig att tänka, kunde jag lägga till en fingeravtrycksläsare i den. Användarna av http://www.mydellmini.com...

Hur man lägger till "Öppna med anteckningar" högerklicka

jag personligen hatar att använda "öppna med" på grund av tiden, även om det bara några sekunder, och att behöva komma ihåg då var exakt ett visst program finns i min katalog.Detta kommer att visa dig hur du lägger till något program högerklicka...

Hur du lägger till vipparm spool fästen till en Honda F4i

dessa är instruktioner för hur du lägger till vipparm spool monteringshålen en Honda F4i vipparm. Vipparm spolar ger en säkrare och mer bekväm metod för lyft på baksidan av din cykel för att göra ändringar av däck, kedja glidmedel, etc. De flesta cyk...

Hur du lägger till en Instructable till din lista med favoriter och Betygsätt en Instructable

för att lägga en Instructable till din lista över favoriter, klicka på länken "favorit" i det grå fältet under den Instructable bilder.Du lista över favoriter finns på din hemsida (Klicka på ditt användarnamn uppe till höger) under "Din Ins...

Hur du lägger till en SATA hårddisk till datorn

tid: 5-10 minuterDet krävs skicklighetsnivå: ingenSäkerheten är det första steget när leka med en dator.För att säkerställa att du inte chockera dig själv eller datorn, kommer att klädd i en anti-statiskt armband absorbera en avgift som du kan bära.D...

Hur du lägger till en mottagare lufttank för mer kompressor kapacitet

Om din lilla kompressor är inte tillräckligt för att driva din inverkan drivrutin eller andra kompressor bifogade filer, behöver du inte spendera en mindre förmögenhet på en nyare och större setup. Med dessa enkla instruktioner, ska jag visa dig hur...

Salta eller söta Carb eller NO Carb du bestämmer dig av vad du lägger till

Här är ett recept för att göra en välsmakande bröd eller en söt cookie beroende om du vill ett bröd typ recept med inga kolhydrater och mycket protein eller en mjuk kaka typ recept med lite sötma eller mycket, beroende på vad du sätter på den. Detta...

Hur du lägger till servrar i Minecraft Pocket Edition!

Detta instructable lär dig hur du lägger till publika servrar till Minecraft Pocket Edition!Steg 1: Komma igång Först öppna Minecraft och trycker på play.Steg 2: Lägga till något nytt Tryck på knappen ny värld i övre högra hörnet.Steg 3: + Nästa, try...

Hur du lägger till fler utgångar till din Microcontroller

detta Instructable visar dig steg för steg hur du lägger till 8 extra digitala utgångar, med endast 3 din microcontroller digital utgång.Steg 1: Vilken Microcontroller ska du använda? För att göra detta Instructable med din mikrokontroller, måste du...

Hur du lägger till en Lineart eller någon Skanna profil i Windows Faxa och skanna

Hej, trött av avsökningen din ritade bilder i färg eller gråskala läge och behöver ett bättre sätt att scanna dem? Du vet jag har, men jag nyligen upptäckt hur du lägger till en annan skanningsprofil i Windows Faxa och skanna. (Obs: detta är för Wind...

Hur du lägger till skript RSBot

Hej,Idag kommer jag att visa dig hur du lägger till ett skript till RSBot.Detta är mycket enkelt och tar inte så lång tid.Steg 1:1) samla nödvändiga objekt Behöver du följande saker:1) Java Development Kit - DL-2)rsbot(duh)3) skript för att lägga til...

Hur du lägger till anpassade sökmotorer i Opera

så använder du Opera? (Förmodligen ja eftersom du visar detta instructable)Du vet den "g * söka termen *" söka * söka termen * på Google, och samma för Wikipedia etc.?Jag använder dem hela tiden, och jag har lagt till ett par av mina egna, och b...

Hur du lägger till en frontlight till Gameboy färg

om du växte upp med att spela Game Boy som jag gjorde, jag är säker på att du minns otaliga timmar av pokemon strider, av vilka många var endast möjligt genom den frälsande nåd av din wormlight. Jag vet att jag är skyldig många långa nätter av Gamebo...

Hur man lägger till spel till LG VX9900 (env) (avund) mobiltelefon

jag kommer att visa dig steg för steg hur du lägger till flera .swf spel på telefonen LG VX9900 enV.Steg 1: Vad du behöver Här är en lista över saker som du behöver. Det ska inte kosta dig något förutsatt att du redan har en dator, en LG VX9900 env o...

Hur du lägger till textrutor

jag kunde aldrig hitta hur du lägger till de textrutor som gjorde livet så mycket easyer. Jag slutligen gjorde självklart, men för att göra det easyer å du stötarna... här är hur ya gör den.Steg 1: Här är en video på hur man gör det> här är en video...

Hur du lägger till flera bilder till Pintrest.

Här jag ska visa dig hur du lägger till flera bilder till ett stift på Pintrest. Det är lätt! Följ bara dessa några steg. Lets go!Steg 1: Ladda ner Photo Collage (iOS 6.12 +) jag använder iOS 6.12. Så om din med android då någon bild collage app fung...

Hur du lägger till blandade tal AKA blandade fraktioner

En enkel steg för steg video handledning om hur du lägger till blandade tal AKA blandade fraktioner....

Hur du lägger till bråk med till skillnad från nämnare

I den här videon visar jag steg för steg hur du lägger till bråk med till skillnad från nämnare....

Hur du lägger till fraktioner

I denna steg för steg video visar jag hur du lägger till bråk med som nämnare....