Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
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.