Turinys:

„Dynamixel 12A“valdymas siunčiant paketus nuosekliai: 5 žingsniai
„Dynamixel 12A“valdymas siunčiant paketus nuosekliai: 5 žingsniai

Video: „Dynamixel 12A“valdymas siunčiant paketus nuosekliai: 5 žingsniai

Video: „Dynamixel 12A“valdymas siunčiant paketus nuosekliai: 5 žingsniai
Video: 8 DoF Humanoid Robot Arm Control Test (Dynamixel Actuators) 2024, Liepa
Anonim
„Dynamixel 12A“valdymas serijiniu būdu siunčiant paketus
„Dynamixel 12A“valdymas serijiniu būdu siunčiant paketus

DYNAMIXEL 12A

1 žingsnis: reikalingi komponentai

Aparatūra:

1. „Dynamixel 12A“arba bet kuris „Dynamixel“variklis

2. USB į „Dynamixel“.

PROGRAMINĖ ĮRANGA:

1. Robotis Dynamixel vedlys.

2. „Python“--- įdiegtas serijinis paketas

2 žingsnis: Įvadas į „Dynamixel 12A“

„Dynamixel“varikliai yra labai tikslūs ir dažniausiai naudojami robotikoje. Kiekvienas „Dynamixel“variklis turi STM mikrovaldiklį. Iš „Dynamixels Motors“galite perskaityti dabartinį sukimo momentą, įtampą, srovės traukimą, temperatūrą, padėtį ir kt.

„Dynamixel 12A“specifikacijos:

Darbinė įtampa -12v

Svoris-55 g

Maksimali srovė -900 mA

Sustojimo momentas-15,3 kg.cm

3 žingsnis: „Dynamixel 12A“bendravimas/valdymas

  • „Dynamixel 12A“nėra panašus į įprastus servo variklius, turinčius 3 kontaktų GND, PWM, VCC, kurie tiekia maitinimą ir PWM signalą bei valdo variklį.
  • „Dynamixel“variklius galime valdyti naudodami „Half Duplex UART“ryšio protokolą.

Kas yra pusiau dvipusio ryšio protokolas?

Pusiau dvipusis duomenų perdavimas reiškia, kad duomenys gali būti perduodami abiem kryptimis signalo laikmenoje, bet ne vienu metu.

Dabar mes sužinome apie „Robotis 1.0“„Dynamixels“protokolą, skirtą „Dynamixel“varikliams valdyti.

  • Galite bendrauti su „Dynamixel“varikliais siųsdami paketus iš savo nešiojamojo kompiuterio/mikrovaldiklio, pvz., „Arduino“, „r-pi“ir kt., Į mikrovaldiklį, esantį „Dynamixel“varikliuose.
  • Kiekvienas „Dynamixels“turi ID, kuriuos galima keisti.
  • Paketas yra ne kas kita, kaip baitų rinkinys.

Incase of Dynamixel Protocol 1.0 turėsite dviejų tipų paketus

  • Instrukcijų paketai
  • Būsenos paketai

Instrukcijų paketas yra komandų duomenys, siunčiami į įrenginį.

Instrukcijų paketas atrodo taip:

Antraštė1, antraštė2, ID, ilgis, instrukcija, 1 parametras… Parametras, NChecksum

0xFF, 0xFF, ID, ilgis, instrukcija Parametras 1… Parametras, NCHKSUM

Instrukcijos baitas nurodo, ką daryti, ar skaityti duomenis, ar rašyti „Dynamixel“varikliui.

„DYNAMIXEL MOTOR“VALDYMO LENTELĖ.-Valdymo lentelė yra struktūra, susidedanti iš kelių duomenų laukų būsenai išsaugoti arba įrenginiui valdyti.

Daugiau apie valdymo lentelę skaitykite čia.

Mes galime pasiekti duomenis valdymo lentelėje iš jos adreso ir taip pat galime rašyti.

4 žingsnis: tikslo pozicijos rašymas „Dynamixel Motor“

Instrukcijų paketas, skirtas įrašyti tikslo poziciją

kiekvienas paketas prasideda antrašte

H1 H2 ID LENSTAS P1 P2 P3 CKSM

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

LEN instrukcijos baitas+p1+p2+p3+chk suma = 5 baitai

ID = „Dynamixel“variklio ID 1-galite nustatyti „dynamixel“ID naudodami „robotis dynamixel“vedlio programinę įrangą

INST = reg write-nurodant, kad rašote varikliui.

P1 = „Data-In“valdymo lentelės pradžios adresas Tikslo pozicija turi adresą 30 (0x1E šešioliktainiu skaičiumi).

P2 = mažesnis duomenų baitas

P3 = didesnis duomenų baitas

Kontrolinės sumos apskaičiavimas netrukus bus paaiškintas ………………….

Jei siunčiate aukščiau pateiktą paketą „Dynamixel Serial“naudojant USB2Dynamixel, „Dynamixel“variklio tikslo pozicija bus nustatyta į 500.

5 veiksmas: PYTHON KODAS

#Sukūrė Madhu. Paskutinį kartą atnaujinta 2019-07-19

importuoti seriją

importo laikas

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

#atitinkamai pakeiskite prievadą, mano „dynamixel“variklių duomenų perdavimo sparta yra 57142, ją galite nustatyti naudodami „Dynamixel“vedlio programinę įrangą.

tuo tarpu (1):

gp1 = įvestis ('įveskite ID1 tikslo poziciją (0-1023)')

l = gp1 ir 255 #mažas baitas

h = (gp1 >> 8) ir 255 #didelis baitas

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

#patikrinkite sumos apskaičiavimą

crc = suma (li [2:])

žemas1 = crc ir 255

chksum = 255-žemas1

li.append (chksum) #adding čekio suma

a = bytearray (li) #converting list to bytearray

ser.write (a) #Serialiai siųskite naudodami usb2dynamixels.

laikas. miegas (0,5)

#Nukopijuokite kodo įkliją į „python IDE“. Įdiekite „pyserial“paketą. prijunkite „usb2dynamixel“USB pusę prie nešiojamojo kompiuterio USB prievado ir kitą galą prie „Dynamixel“variklio. USB2DYNAMIXEL aprūpinkite išoriniu 12 V maitinimo šaltiniu.

Vykdykite kodą, įveskite tikslo pozicijos vertę. Pažiūrėkite, kaip veikia variklis.

Rekomenduojamas: