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, Juli
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 STM mikrokontroler unutra. Možete pročitati trenutni okretni moment, napon, izvlačenje struje, temperaturu, položaj itd. Iz Dynamixels Motors.

Specifikacije Dynamixela 12A:

Radni napon -12v

Težina-55 g

Maksimalna struja -900 mA

Moment zaustavljanja-15,3 kg

Korak 3: Komunikacija/kontrola Dynamixel 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.

Šta je Half Duplex 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čunara/mikrokontrolera poput Arduina, r-pi, itd., Na mikrokontroler koji je prisutan 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 s uputama su naredbeni podaci poslani na uređaj.

Paket uputstava izgleda ovako:

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

0xFF, 0xFF, ID, dužina, uputstvo Param 1… Param, NCHKSUM

Bajt instrukcije govori šta treba 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 pohranu statusa ili za upravljanje uređajem.

Pročitajte više o Kontrolnoj tablici OvdjeKontrolna tablica Robotis.

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

Korak 4: Zapisivanje pozicije cilja na Dynamixel motor

Paket uputa za pisanje ciljne pozicije

svaki paket počinje zaglavljem

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

LEN-instrukcija bajt+p1+p2+p3+chk zbir = 5 bajtova

ID = Dynamixel motor ID 1-možete postaviti dinamixel ID pomoću softvera robotis dynamixel čarobnjaka

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

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

P2 = niži bajt podataka

P3 = viši bajt podataka

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

Ako gornji paket pošaljete na Dynamixel Serijski koristeći USB2Dynamixel, položaj cilja motora Dynamixel bit će postavljen na 500.

Korak 5: PYTHON KOD

#Razvio Madhu. Zadnje ažuriranje 19.7.2019

import Serial

vreme uvoza

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

#shodno promijenite com port, brzina prijenosa mojih dinamixel motora je 57142, možete je postaviti pomoću 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:])

nisko1 = crc & 255

chksum = 255-low1

li.append (chksum) #dodavanje kontrolne sume

a = bytearray (li) #konvertiranje liste u bytearray

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

vrijeme.spavanje (0,5)

#Kopirajte kodnu pastu u python IDE. Instalirajte pyserial paket. povežite USB stranu usb2dynamixel sa USB portom laptopa, a drugi kraj na Dynamixel motor. Dajte vanjsko napajanje od 12 V USB2DYNAMIXEL -u.

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

Preporučuje se: