INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
DYNAMIXEL 12A
Stap 1: Vereiste komponente
HARDWARE:
1. Dynamix 12A of enige Dynamixel -motor
2. USB na Dynamixel.
SAGTEWARE:
1. Robotis Dynamixel -towenaar.
2. Python --- reeks pakket geïnstalleer
Stap 2: Inleiding tot Dynamixel 12A
Dynamixel -motors is baie presies en word meestal in robotika gebruik. Elke Dynamixel -motor het 'n STM -mikrobeheerder binne. U kan die huidige wringkrag, spanning, stroomtrekking, temperatuur, posisie, ens., Van Dynamixels Motors lees.
Spesifikasies van Dynamixel 12A:
Bedryfspanning -12v
Gewig-55 g
Maksimum stroom -900mA
Staankoppel-15,3 kg. Cm
Stap 3: Kommunikeer/beheer Dynamixel 12A
- Dynamixel 12A is nie soos gewone servomotors met 3 -pins GND, PWM, VCC, wat kragtoevoer en PWM -sein gee en die motor beheer nie.
- Ons kan Dynamixel -motors beheer met behulp van Half Duplex UART -kommunikasieprotokol.
Wat is Half Duplex Communication Protocol?
Half-dupleks data-oordrag beteken dat data in beide rigtings op 'n seindraer oorgedra kan word, maar nie op dieselfde tyd nie.
Nou leer ons meer oor Protocol 1.0 vir Dynamixels van Robotis om Dynamixel -motors te beheer.
- U kan met Dynamixel-motors kommunikeer deur pakkies vanaf u skootrekenaar/mikrobeheerder soos Arduino, r-pi, ens., Te stuur na die mikrobeheerder wat in die Dynamixel-motors voorkom.
- Elke Dynamixels het ID's wat aangepas kan word.
- 'N Pakkie is niks anders as 'n stel grepe nie.
As u Dynamixel -protokol 1.0 het, het u twee soorte pakkies
- Instruksiepakkies
- Status pakkies
Instruksiepakket is die opdragdata wat na die toestel gestuur word.
Die instruksiepakkie lyk so:
Header1, Header2, ID, Lengte, Instruksie, Param 1 … Param, NChecksum
0xFF, 0xFF, ID, lengte, instruksie Param 1 … Param, NCHKSUM
Instruksie -byte vertel wat u moet doen, of u data moet lees of na die Dynamixel -motor moet skryf.
BEDIENINGSTABEL VAN 'N DYNAMIXEL MOTOR.-Die kontroletabel is 'n struktuur wat bestaan uit verskeie datavelde om status te stoor of om die toestel te beheer.
Lees meer oor die beheertabel HereControl Table Robotis.
Ons het toegang tot data in die beheertabel vanaf sy adres, en ons kan ook skryf.
Stap 4: Skryf doelwitposisie aan Dynamixel Motor
Instruksiepakkie om doelwitposisie te skryf
elke pakkie begin met 'n opskrif
H1 H2 ID LEN INST P1 P2 P3 CKSM
0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2
LEN-instruksie byte+p1+p2+p3+chk som = 5 grepe
ID = Dynamixel motor ID 1-u kan dynamixel ID instel met behulp van robotis dynamixel wizard sagteware
INST = reg skryf-spesifiseer dat u aan die motor skryf.
P1 = Beginadres van die Data-In die beheertabel Doelposisie is 'n adres 30 (0x1E in heksadesimaal).
P2 = laer byte data
P3 = hoër byte data
Die kontrolesomberekening sal binnekort verduidelik word ………………….
As u die bogenoemde pakkie serieel na Dynamixel stuur met behulp van USB2Dynamixel, sal die Dynamixel -motorposisie op 500 gestel word.
Stap 5: PYTHON -KODE
#Ontwikkel deur Madhu. Laaste opdatering op 2019-07-19
invoer reeks
invoer tyd
ser = serial. Serial ('com36', '57142')
#verander com -poort dienooreenkomstig, my baudrate van dynamixel -motors is 57142; u kan dit instel met behulp van die Dynamixel -towenaarsagteware.
terwyl (1):
gp1 = invoer ('voer ID1 doelposisie in (0-1023)')
l = gp1 & 255 #lae byte
h = (gp1 >> 8) & 255 #hoë byte
li = [0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]
#tjek somberekening
crc = som (li [2:])
laag1 = crc & 255
chksum = 255-laag1
li.append (chksum) #voeg tjeks by
a = bytearray (li) #omskakeling van lys in bytearray
ser.write (a) #Stuur serieus met usb2dynamixels.
tyd. slaap (0,5)
#Kopieer die kode plak in python IDE. Installeer pyseriale pakket. koppel die USB -kant van usb2dynamixel aan die USB -poort van die skootrekenaar en 'n ander punt aan die Dynamixel -motor. Gee 'n eksterne 12V -toevoer aan USB2DYNAMIXEL.
Voer die kode uit, voer die waarde van die doelposisie in. Sien motor loop.