Obsah:

Řízení Dynamixel 12A sériovým odesíláním paketů: 5 kroků
Řízení Dynamixel 12A sériovým odesíláním paketů: 5 kroků

Video: Řízení Dynamixel 12A sériovým odesíláním paketů: 5 kroků

Video: Řízení Dynamixel 12A sériovým odesíláním paketů: 5 kroků
Video: Visitouch19 Controlling Robot 2024, Červenec
Anonim
Řízení Dynamixel 12A sériovým odesíláním paketů
Řízení Dynamixel 12A sériovým odesíláním paketů

DYNAMIXEL 12A

Krok 1: Požadované součásti

HARDWARE:

1. Dynamixel 12A nebo jakýkoli motor Dynamixel

2. USB na Dynamixel.

SOFTWARE:

1. Průvodce Robotis Dynamixel.

2. Python --- Sériový balíček nainstalován

Krok 2: Úvod do Dynamixel 12A

Motory Dynamixel jsou vysoce přesné a většinou se používají v robotice. Každý motor Dynamixel má uvnitř mikrokontrolér STM. Aktuální moment, napětí, odběr proudu, teplotu, polohu atd. Můžete číst z Dynamixels Motors.

Specifikace Dynamixel 12A:

Provozní napětí --12v

Hmotnost-55 g

Maximální proud -900mA

Utahovací moment-15,3 kg. Cm

Krok 3: Komunikace/ovládání Dynamixel 12A

  • Dynamixel 12A není jako normální servomotory, které mají 3pin GND, PWM, VCC, poskytují napájení a signál PWM a ovládají motor.
  • Motory Dynamixel můžeme ovládat pomocí komunikačního protokolu Half Duplex UART.

Co je poloviční duplexní komunikační protokol?

Half-duplexní přenos dat znamená, že data mohou být přenášena v obou směrech na nosiči signálu, ale ne současně.

Nyní se dozvídáme o protokolu 1.0 pro Dynamixels od Robotis k ovládání motorů Dynamixel.

  • S motory Dynamixel můžete komunikovat zasíláním paketů z vašeho notebooku/mikrokontroléru, jako je Arduino, r-pi atd., Do mikrokontroléru, který je přítomen uvnitř motorů Dynamixel.
  • Každý Dynamixels má ID, která lze upravit.
  • Paket není nic jiného než sada bajtů.

V případě protokolu Dynamixel 1.0 budete mít dva typy paketů

  • Instrukční balíčky
  • Stavové pakety

Instruction Packet jsou příkazová data odeslaná do zařízení.

Instrukční balíček vypadá takto:

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

0xFF, 0xFF, ID, délka, instrukce Param 1… Param, NCHKSUM

Instrukční bajt říká, co dělat, zda číst data nebo zapisovat do motoru Dynamixel.

ŘÍDÍCÍ TABULKA DYNAMIXELOVÉHO MOTORU.-Kontrolní tabulka je struktura, která se skládá z více datových polí pro ukládání stavu nebo ovládání zařízení.

Přečtěte si více o řídicí tabulce zdeControl Table Robotis.

Můžeme přistupovat k datům v řídicí tabulce z její adresy a také můžeme psát.

Krok 4: Zápis pozice cíle do Dynamixel Motor

Instrukční balíček pro zápis pozice cíle

každý paket začíná záhlavím

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

LEN instrukční byte+p1+p2+p3+součet chk = 5 bytů

ID = ID motoru Dynamixel 1-ID dynamxelu můžete nastavit pomocí softwaru robotis dynamixel wizard

INST = reg zápis specifikující, že píšete do motoru.

P1 = Počáteční adresa Data-V řídicí tabulce Cílová pozice má adresu 30 (0x1E v hexadecimálním).

P2 = dolní bajt dat

P3 = vyšší byte dat

Výpočet kontrolního součtu bude brzy vysvětlen ………………….

Pokud odešlete výše uvedený paket do Dynamixelu sériově pomocí USB2Dynamixel, pozice cíle motoru Dynamixel bude nastavena na 500.

Krok 5: KÓD PYTHONU

#Vyvinuto společností Madhu. Poslední aktualizace 19. 7. 2019

importovat sériově

čas importu

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

#change com port odpovídajícím způsobem, moje přenosová rychlost dynamixel motors je 57142, můžete ji nastavit pomocí softwaru Dynamixel wizard.

zatímco (1):

gp1 = vstup ('zadejte pozici cíle ID1 (0-1023)')

l = gp1 & 255 #nízký bajt

h = (gp1 >> 8) & 255 #vysoký bajt

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

#zkontrolovat výpočet částky

crc = součet (li [2:])

low1 = crc & 255

chksum = 255-low1

li.append (chksum) #přidání kontrolního součtu

a = bytearray (li) #konvertování seznamu na bytearray

ser.write (a) #Sériové odesílání pomocí usb2dynamixels.

time.sleep (0,5)

#Zkopírujte vložený kód do python IDE. Nainstalujte balíček pyserial. připojte USB stranu usb2dynamixel k USB portu notebooku a další konec k motoru Dynamixel. Poskytněte USB2DYNAMIXEL externí napájecí zdroj 12 V.

SPUŠTĚTE kód, zadejte hodnotu pozice cíle. Viz běh motoru.

Doporučuje: