Micro Maestro

MicroMaestro

Beskrivelse: Micro Maestro er en USB-enhet som kan styre 6 forskjellige RC-servoer, eller fartsregulatorer. Den kan også kobles sammen med flere enheter dersom 6 skulle bli for lite.

Den kan også bli styrt via vanlig UART fra feks en mikrokontroller. Denne artikkelen beskriver hvordan man kommer igang med enheten, samt hvordan den blir implementert for kontroll via LabVIEW ved bruk av "compact-protokollen".

 

Produsent: www.pololu.com

Selger: www.sparkfun.com

Keywords: Micro Maestro, servo, fartsregulator, LabVIEW, RC

Note: Det blir referert til databladet i artikkelen ved bruk av sidetall referert til PDF [s.XX]


 

Installasjon

Fra produsentens hjemmeside kan man laste neddriveren slik at Windows kan kommunisere med enheten. Installeringen installerer også et brukergrensesnitt som lar deg teste kommunikasjonen på en enkel måte. Det eneste som må sjekkes for å få den til å fungere med LabVIEW-koden som ligger vedlagt er å påse at "Serial mode" er satt til "USB Chained". Baudrate ol spiller ingen rolle.

MicroMaestroControlCenter

 


 

Protokoller

Man kommuniserer med MicroMaestro ved å sende kommandoer til den. Dette kan gjøres for 3 forskjellige protokoller:

  1. Pololu
  2. Compact (denne er valgt for dette dokumentet)
  3. Mini SSC

Den første kommandoen som sendes til enheten avgjør hvilken protokoll som brukes. Man sendter 4 byte for å snakke med compact-protokollen:

byte 1 byte 2 byte 3 byte 4

Kommando (MSB høy)

Servonummer

Data low bits (MSB lav)

Data high bits (MSB lav)

Først sendes altså en kommando, denne angir compact-protokollen. I tillegg inneholder første byte en kommando som sier hva micro maestro skal gjøre. Den neste byten sier hvilken servo som skal kjøres av de 6. Byte 3 og 4 er dataen tilhørende kommandoen som ble sendt. Dette er et 14-bits tall, fordelt på 2stk 8bits registre. Merk at MSB (most significant bit) alltid skal være lav.

 


 

Adresse-register for compact protocol

Komando

Adresse

Note:
Set Posisjon 0x84 Angir posisjon servoen skal gå til
Set Hastighet 0x87 Setter hastigheten servoen skal gå med
Set Akselerasjon 0x89 Setter akselerasjonen servoen skal akselerere med
Les posisjon 0x90 Leser servoens nåværende posisjon, 2 bytes: 0x90, servonummer
Les bevegelses-status 0x93 Ser om noen av servoene beveger seg (0x01), hvis ikke (0x00), 1 byte
Les feilkoder 0xA1 Feilkodene finnes her [s. 24]
Gå hjem 0xA2 Alle servoer går til utgangsposisjonen

 


 

LabVIEW-implementasjon

Det hele er implementert i LabVIEW. Først blir com-porten satt opp med ønsket baudrate. Selve programmet kjører i en while loop. Her blir compact-protokollen sendt ut på porten.

MicroMaestroLabVIEW block

Ettersom at protokollen sender data på en lit spesiell måte (2 stk 7-bits tall som 2stk 8-bit) er det ikke helt rett fram å sende dette ut på porten. Derfor er det laget en subVI som fikser denne konverteringa. Inn til denne sendes ønsket posisjon på servoen i μs (1500 er i senter, 1000 er helt til den ene siden, og 2000 helt til den andre siden).  Så tallet må alltid holde seg mellom 1000-2000 for å ikke overbelaste servoen.

MicroMaestroLabVIEW front

 Når man kobler inn enheten blir det automatisk installert 2 COM-porter. COM-porten som skal brukes i LabVIEW er den som heter "Pololu Maestro 6-Servo Controller Command Port".

MicroMaestroCOMport

 


 

Vedlegg

Vedlagt ligger 2 stk LabVIEW-filer. Disse inneholder alt som trengs for å teste enheten. Klikk på "Attachment" for å laste ned.

 PS: Husk å gi spenning til servoene! :Þ

 

 Lykke til!!