Sadržaj:

Upravljanje Dynamixelom 12A serijskim slanjem paketa: 5 koraka
Upravljanje Dynamixelom 12A serijskim slanjem paketa: 5 koraka

Video: Upravljanje Dynamixelom 12A serijskim slanjem paketa: 5 koraka

Video: Upravljanje Dynamixelom 12A serijskim slanjem paketa: 5 koraka
Video: Использование кнопки скорости шагового двигателя 28BYJ-48 с 8 проектами: Ultimate Video Tutorial, урок 107 2024, Studeni
Anonim
Upravljanje Dynamixelom 12A serijskim slanjem paketa
Upravljanje Dynamixelom 12A serijskim slanjem paketa

DYNAMIXEL 12A

Korak 1: Potrebne komponente

HARDVER:

1. Dynamixel 12A ili bilo koji Dynamixel motor

2. USB na Dynamixel.

SOFTVER:

1. Robotis Dynamixel čarobnjak.

2. Python --- Serijski paket instaliran

Korak 2: Uvod u Dynamixel 12A

Dynamixel motori su vrlo precizni i uglavnom se koriste u robotici. Svaki Dynamixel motor ima unutarnji STM mikrokontroler. Trenutni okretni moment, napon, izvlačenje struje, temperaturu, položaj itd. Možete očitati iz Dynamixels Motors.

Specifikacije Dynamixela 12A:

Radni napon -12v

Težina-55g

Maksimalna struja -900 mA

Zakretni moment zaustavljanja-15,3 kg / cm

Korak 3: Komunikacija/upravljanje Dynamixelom 12A

  • Dynamixel 12A nije poput normalnih servo motora koji imaju 3pin GND, PWM, VCC, daju napajanje i PWM signal i upravljaju motorom.
  • Dynamixel motorima možemo upravljati pomoću Half Duplex UART komunikacijskog protokola.

Što je poludupleksni komunikacijski protokol?

Poludupleksni prijenos podataka znači da se podaci mogu prenositi u oba smjera na nosaču signala, ali ne u isto vrijeme.

Sada učimo o protokolu 1.0 za Dynamixels od Robotisa za upravljanje Dynamixel motorima.

  • Možete komunicirati s Dynamixel motorima slanjem paketa sa vašeg prijenosnog računala/mikrokontrolera poput Arduina, r-pi, itd., Na mikrokontroler koji se nalazi unutar Dynamixel motora.
  • Svaki Dynamixel ima ID koji se može mijenjati.
  • Paket nije ništa drugo nego skup bajtova.

U slučaju Dynamixel protokola 1.0 imat ćete dvije vrste paketa

  • Paketi s uputama
  • Paketi statusa

Paket uputa su naredbeni podaci poslani na uređaj.

Paket uputa izgleda ovako:

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

0xFF, 0xFF, ID, duljina, uputa Param 1… Param, NCHKSUM

Bajt s uputama govori što učiniti, treba li čitati podatke ili pisati na Dynamixel motor.

KONTROLNA TABLA DYNAMIXEL MOTORA.-Kontrolna tablica je struktura koja se sastoji od više polja podataka za spremanje statusa ili za upravljanje uređajem.

Više o upravljačkoj tablici pročitajte ovdje Kontrolna tablica Robotis.

Možemo pristupiti podacima u kontrolnoj tablici s njene adrese, a možemo i pisati.

Korak 4: Zapisivanje položaja cilja na Dynamixel motor

Paket uputa za pisanje cilja

svaki paket počinje zaglavljem

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

LEN-instrukcijski bajt+p1+p2+p3+chk zbroj = 5 bajtova

ID = ID motora Dynamixel 1-možete postaviti identifikator dinamiksela pomoću softvera robotis dynamixel čarobnjaka

INST = reg pisanje-specificira da pišete na motor.

P1 = Početna adresa podatkovne kontrolne tablice Pozicija cilja ima adresu 30 (0x1E u heksadecimalnom broju).

P2 = niži bajt podataka

P3 = viši bajt podataka

Izračun kontrolne svote bit će uskoro objašnjen ………………….

Ako gornji paket pošaljete na Dynamixel Serijski koristeći USB2Dynamixel, ciljna pozicija motora Dynamixel bit će postavljena na 500.

Korak 5: PYTHON KOD

#Razvio Madhu. Zadnje ažuriranje 19.7.2019

uvoz serijski

vrijeme uvoza

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

#prema tome promijenite com port, brzina prijenosa mojih dinamixel motora je 57142, možete je postaviti pomoću programa Dynamixel čarobnjaka.

dok (1):

gp1 = input ('unesite ID1 ciljnu poziciju (0-1023)')

l = gp1 & 255 #niži bajt

h = (gp1 >> 8) & 255 #visoki bajt

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

#provjerite izračun zbroja

crc = zbroj (li [2:])

niska1 = crc & 255

chksum = 255-nisko1

li.append (chksum) #dodavanje kontrolne sume

a = bytearray (li) #konvertiranje popisa u bytearray

ser.write (a) #Serijsko slanje pomoću usb2dinamiksela.

vrijeme.spavanje (0,5)

#Kopirajte zalijepite kod u Python IDE. Instalirajte pyserial paket. spojite USB stranu usb2dynamixel na USB priključak prijenosnog računala, a drugi kraj na motor Dynamixel. Dajte vanjsko napajanje od 12 V USB2DYNAMIXEL -u.

POKRENITE kôd, unesite vrijednost pozicije cilja. Pogledajte kako motor radi.

Preporučeni: