Indholdsfortegnelse:

Styring af Dynamixel 12A ved at sende pakker serielt: 5 trin
Styring af Dynamixel 12A ved at sende pakker serielt: 5 trin

Video: Styring af Dynamixel 12A ved at sende pakker serielt: 5 trin

Video: Styring af Dynamixel 12A ved at sende pakker serielt: 5 trin
Video: CircuitPython School - Motoring with Servo Motors 2024, Juli
Anonim
Styring af Dynamixel 12A ved at sende pakker serielt
Styring af Dynamixel 12A ved at sende pakker serielt

DYNAMIXEL 12A

Trin 1: Komponenter påkrævet

HARDWARE:

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

2. USB til Dynamixel.

SOFTWARE:

1. Robotis Dynamixel -guiden.

2. Python --- Seriel pakke installeret

Trin 2: Introduktion til Dynamixel 12A

Dynamixel -motorer er meget præcise og bruges mest i robotik. Hver Dynamixel -motor har STM -mikrokontroller indeni. Du kan aflæse strømmoment, spænding, strømtrækning, temperatur, position osv. Fra Dynamixels Motors.

Specifikationer for Dynamixel 12A:

Driftsspænding -12v

Vægt-55g

Maksimal strøm -900mA

Staldmoment-15,3 kg. Cm

Trin 3: Kommunikerer/styrer Dynamixel 12A

  • Dynamixel 12A er ikke som normale servomotorer, der har 3pin GND, PWM, VCC, giver strømforsyning og PWM -signal og styrer motoren.
  • Vi kan styre Dynamixel -motorer ved hjælp af Half Duplex UART kommunikationsprotokol.

Hvad er Half Duplex Communication Protocol?

Halvdupleks dataoverførsel betyder, at data kan overføres i begge retninger på en signalbærer, men ikke på samme tid.

Nu lærer vi om protokol 1.0 til Dynamixels fra Robotis til styring af Dynamixel -motorer.

  • Du kan kommunikere med Dynamixel-motorer ved at sende pakker fra din bærbare computer/mikrokontroller som Arduino, r-pi osv., Til mikrokontrolleren, der er til stede inde i Dynamixel-motorerne.
  • Hver Dynamixels har ID'er, der kan ændres.
  • En pakke er intet andet end et sæt bytes.

I tilfælde af Dynamixel -protokol 1.0 har du to typer pakker

  • Instruktionspakker
  • Statuspakker

Instruktionspakke er kommandodata, der sendes til enheden.

Instruktionspakken ser sådan ud:

Header1, Header2, ID, Længde, Instruktion, Param 1 … Param, NChecksum

0xFF, 0xFF, ID, længde, instruktion Param 1 … Param, NCHKSUM

Instruktionsbyte fortæller, hvad man skal gøre, om man skal læse data eller skrive til Dynamixel -motoren.

KONTROLTABEL FOR EN DYNAMIXELMOTOR. -Tabellen er en struktur, der består af flere datafelter til lagring af status eller til kontrol af enheden.

Læs mere om kontrolbord HereControl Table Robotis.

Vi kan få adgang til data i kontroltabellen fra dens adresse, og vi kan også skrive.

Trin 4: Skrivning af målposition til Dynamixel Motor

Instruktionspakke til at skrive målposition

hver pakke starter med et overskrift

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

LEN-instruktion byte+p1+p2+p3+chk sum = 5 bytes

ID = Dynamixel motor ID 1-du kan indstille dynamixel id ved hjælp af robotis dynamixel wizard software

INST = reg skrive-angiv, at du skriver til motoren.

P1 = Startadresse for Data-In-kontroltabellen Målpositionen har en adresse 30 (0x1E i hexadecimal).

P2 = lavere byte af data

P3 = højere byte af data

Beregning af kontrolsum vil blive forklaret inden længe ………………….

Hvis du sender ovenstående pakke til Dynamixel serielt ved hjælp af USB2Dynamixel, sættes Dynamixel -motorens målposition til 500.

Trin 5: PYTHON -KODE

#Udviklet af Madhu. Sidste opdatering den 2019-07-19

import Seriel

importtid

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

#change com -port i overensstemmelse hermed, min dynamixelmotors baudhastighed er 57142, du kan indstille den ved hjælp af Dynamixel -guidesoftware.

mens (1):

gp1 = input ('indtast ID1 målposition (0-1023)')

l = gp1 & 255 #lav byte

h = (gp1 >> 8) & 255 #høj byte

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

#tjek sumberegning

crc = sum (li [2:])

low1 = crc & 255

chksum = 255-lav1

li.append (chksum) #tilføjelse af checksum

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

ser.write (a) #Send serielt ved hjælp af usb2dynamixels.

time.sleep (0,5)

#Kopier kodepastaen i python IDE. Installer pyserial pakke. tilslut usb2dynamixels USB -side til bærbarens USB -port og en anden ende til Dynamixel -motor. Giv en ekstern 12v forsyning til USB2DYNAMIXEL.

KØR koden, indtast værdien for målpositionen. Se motor kører.

Anbefalede: