Innholdsfortegnelse:

Kontrollere Dynamixel 12A ved å sende pakker serielt: 5 trinn
Kontrollere Dynamixel 12A ved å sende pakker serielt: 5 trinn

Video: Kontrollere Dynamixel 12A ved å sende pakker serielt: 5 trinn

Video: Kontrollere Dynamixel 12A ved å sende pakker serielt: 5 trinn
Video: Наркомания, Травма, Порно, Детокс дофамина | Анна Лембке 2024, November
Anonim
Kontrollere Dynamixel 12A ved å sende pakker serielt
Kontrollere Dynamixel 12A ved å sende pakker serielt

DYNAMIXEL 12A

Trinn 1: Komponenter påkrevd

MASKIN:

1. Dynamix 12A eller en hvilken som helst Dynamixel -motor

2. USB til Dynamixel.

PROGRAMVARE:

1. Robotis Dynamixel veiviser.

2. Python --- Seriell pakke installert

Trinn 2: Introduksjon til Dynamixel 12A

Dynamixel -motorer er svært presise og brukes mest i robotikk. Hver Dynamixel -motor har STM -mikrokontroller inne. Du kan lese nåværende dreiemoment, spenning, strømtrekk, temperatur, posisjon, osv., Fra Dynamixels Motors.

Spesifikasjoner for Dynamixel 12A:

Driftsspenning -12v

Vekt-55g

Maks strøm -900mA

Stallmoment-15,3 kg. Cm

Trinn 3: Kommunisere/kontrollere Dynamixel 12A

  • Dynamixel 12A er ikke som vanlige servomotorer som har 3 -pins GND, PWM, VCC, gir strømforsyning og PWM -signal og styrer motoren.
  • Vi kan kontrollere Dynamixel -motorer ved hjelp av Half Duplex UART -kommunikasjonsprotokoll.

Hva er Half Duplex Communication Protocol?

Halv dupleks dataoverføring betyr at data kan overføres i begge retninger på en signalbærer, men ikke samtidig.

Nå lærer vi om Protocol 1.0 for Dynamixels fra Robotis for å kontrollere Dynamixel -motorer.

  • Du kan kommunisere med Dynamixel-motorer ved å sende pakker fra din bærbare/mikrokontroller som Arduino, r-pi, osv., Til mikrokontrolleren som er tilstede inne i Dynamixel-motorene.
  • Hver Dynamixels har ID -er som kan endres.
  • En pakke er ingenting annet enn sett med byte.

I tilfelle av Dynamixel -protokoll 1.0 vil du ha to typer pakker

  • Instruksjonspakker
  • Statuspakker

Instruksjonspakke er kommandodataene som sendes til enheten.

Instruksjonspakken ser slik ut:

Header1, Header2, ID, Length, Instruction, Param 1 … Param, NChecksum

0xFF, 0xFF, ID, Lengde, Instruksjon Param 1 … Param, NCHKSUM

Instruksjonsbyte forteller hva du skal gjøre, om du vil lese data eller skrive til Dynamixel -motoren.

KONTROLLTABELL FOR EN DYNAMIXELMOTOR.-Kontrollbordet er en struktur som består av flere datafelt for å lagre status eller for å kontrollere enheten.

Les mer om kontrollbord HereControl Table Robotis.

Vi kan få tilgang til data i kontrolltabellen fra adressen, og vi kan også skrive.

Trinn 4: Skrive målposisjon til Dynamixel Motor

Instruksjonspakke for å skrive målposisjon

hver pakke starter med en overskrift

H1 H2 ID LEN INST P1 P2 P3 CKSM

0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2

LEN-instruksjonsbyte+p1+p2+p3+chk sum = 5 byte

ID = Dynamixel motor ID 1-du kan angi dynamixel ID ved hjelp av robotis dynamixel wizard programvare

INST = reg skrive-spesifisere at du skriver til motoren.

P1 = Startadresse for Data-In-kontrolltabellen Målposisjonen er å ha en adresse 30 (0x1E i heksadesimal).

P2 = lavere byte med data

P3 = høyere byte med data

Beregning av sjekksum vil bli forklart om kort tid ……………

Hvis du sender pakken ovenfor til Dynamixel serielt ved hjelp av USB2Dynamixel, settes Dynamixel -motorens målposisjon til 500.

Trinn 5: PYTHON -KODE

#Utviklet av Madhu. Siste oppdatering 19.07.2019

importer serie

importtid

ser = serial. Serial ('com36', '57142')

#endre com -port tilsvarende, min dynamixelmotors baudhastighet er 57142, du kan angi den ved hjelp av Dynamixel veiviser -programvare.

mens (1):

gp1 = input ('enter ID1 goal position (0-1023)')

l = gp1 & 255 #lav byte

h = (gp1 >> 8) og 255 #høy byte

li = [0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]

#sjekk sumberegning

crc = sum (li [2:])

low1 = crc & 255

chksum = 255-lav1

li.append (chksum) #legger til sjekksum

a = bytearray (li) #konvertering av liste til bytearray

ser.write (a) #Send serielt med usb2dynamixels.

time.sleep (0,5)

#Kopier kodepastaen i python IDE. Installer pyserialpakke. koble usb2dynamixels USB -side til den bærbare USB -porten og en annen ende til Dynamixel -motoren. Gi en ekstern 12v forsyning til USB2DYNAMIXEL.

KJØR koden, skriv inn målposisjonsverdien. Se motoren gående.

Anbefalt: