Tartalomjegyzék:

A Dynamixel 12A vezérlése csomagok soros küldésével: 5 lépés
A Dynamixel 12A vezérlése csomagok soros küldésével: 5 lépés

Videó: A Dynamixel 12A vezérlése csomagok soros küldésével: 5 lépés

Videó: A Dynamixel 12A vezérlése csomagok soros küldésével: 5 lépés
Videó: SB - Barabást a dohiba küldő kattogós 2024, November
Anonim
A Dynamixel 12A vezérlése csomagok soros küldésével
A Dynamixel 12A vezérlése csomagok soros küldésével

DYNAMIXEL 12A

1. lépés: Szükséges összetevők

HARDVER:

1. Dynamixel 12A vagy bármilyen Dynamixel motor

2. USB a Dynamixelhez.

SZOFTVER:

1. Robotis Dynamixel varázsló.

2. Python --- Soros csomag telepítve

2. lépés: Bevezetés a Dynamixel 12A -ba

A Dynamixel motorok rendkívül precízek, és leginkább a robotikában használatosak. Minden Dynamixel motor STM mikrokontrollert tartalmaz. A Dynamixels Motors -tól leolvashatja az aktuális nyomatékot, feszültséget, áramfelvételt, hőmérsékletet, pozíciót stb.

A Dynamixel 12A specifikációi:

Üzemi feszültség -12V

Súly-55 g

Maximális áram -900 mA

Elakadási nyomaték-15,3 kg.cm

3. lépés: A Dynamixel 12A kommunikálása/vezérlése

  • A Dynamixel 12A nem olyan, mint a normál szervomotorok, amelyek 3 tűs GND, PWM, VCC, tápellátást és PWM jelet adnak, és vezérlik a motort.
  • A Dynamixel motorokat a Half Duplex UART kommunikációs protokoll használatával irányíthatjuk.

Mi a Half Duplex Communication Protocol?

A fél-duplex adatátvitel azt jelenti, hogy az adatok mindkét irányban továbbíthatók egy jelhordozón, de nem egy időben.

Most megismerkedünk a Robotis 1.0 Dynamixels protokolljával a Dynamixel motorok vezérléséhez.

  • A Dynamixel motorokkal kommunikálhat úgy, hogy csomagokat küld a laptopjáról/mikrovezérlőjéről, például Arduino, r-pi, stb., A Dynamixel motorokban lévő mikrokontrollerhez.
  • Minden Dynamixel rendelkezik azonosítókkal, amelyek módosíthatók.
  • A csomag nem más, mint bájtok halmaza.

Incase of Dynamixel Protocol 1.0 esetén kétféle csomagja lesz

  • Utasítási csomagok
  • Állapotcsomagok

Az utasításcsomag az eszközre küldött parancsadatok.

Az utasításcsomag így néz ki:

Fejléc1, Fejléc2, azonosító, hossz, utasítás, 1. paraméter… Paraméter, NChecksum

0xFF, 0xFF, azonosító, hossz, utasítás 1. paraméter… paraméter, NCHKSUM

Az utasítás bájtja elmagyarázza, hogy mit kell tenni, olvasni vagy írni a Dynamixel motorhoz.

A DYNAMIXEL MOTOR VEZÉRLŐ TÁBLÁZATA. -A Control Table egy olyan struktúra, amely több adatmezőből áll az állapot tárolásához vagy az eszköz vezérléséhez.

A vezérlőasztalról itt olvashat bővebben.

Hozzáférhetünk a vezérlőtábla adataihoz a címéből, és írhatunk is.

4. lépés: Célpozíció írása a Dynamixel Motorhoz

Utasításcsomag a gólpozíció írásához

minden csomag fejléccel kezdődik

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

LEN-utasítás bájt+p1+p2+p3+chk összeg = 5 bájt

ID = Dynamixel motor ID 1-beállíthatja a dynamixel azonosítót a robotis dynamixel varázsló szoftver segítségével

INST = reg írási specifikáció, hogy a motorba ír.

P1 = A Data-In vezérlőtábla kezdőcíme A Célpozíció 30 címmel rendelkezik (0x1E hexadecimális).

P2 = alsó bájt adat

P3 = magasabb adatbájt

Az ellenőrző összeg kiszámítását rövidesen ismertetjük ………………….

Ha a fenti csomagot elküldi a Dynamixel Serial -nek USB2Dynamixel használatával, a Dynamixel motor célpozíciója 500 lesz.

5. lépés: PYTHON -KÓD

#Madhu fejlesztette ki. Utolsó frissítés: 2019.07.19

soros importálása

importálási idő

ser = soros. Soros ('com36', '57142')

#cserélje a com portot ennek megfelelően, a dynamixel motorok átviteli sebessége 57142, beállíthatja a Dynamixel varázsló szoftver segítségével.

míg (1):

gp1 = bemenet ('adja meg az ID1 célpozícióját (0-1023)')

l = gp1 és 255 #alacsony bájt

h = (gp1 >> 8) & 255 #magas bájt

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

#ellenőrizze az összegszámítást

crc = összeg (li [2:])

alacsony1 = crc és 255

chksum = 255-alacsony1

li.append (chksum) #adding check sum

a = bytearray (li) #converting list bytearray

ser.write (a) #Soros küldés usb2dynamixels használatával.

time.sleep (0,5)

#Másolja a kódpasztát a python IDE -be. Telepítse a pyserial csomagot. csatlakoztassa az usb2dynamixel USB oldalát a laptop USB portjához, a másik végét pedig a Dynamixel motorhoz. Adjon külső 12 V -os tápegységet az USB2DYNAMIXEL -nek.

Futtassa a kódot, adja meg a célpozíció értékét. Lásd a járó motort.

Ajánlott: