Cuprins:
- Pasul 1: Componente necesare
- Pasul 2: Introducere în Dynamixel 12A
- Pasul 3: Comunicarea / controlul Dynamixel 12A
- Pasul 4: Scrierea poziției obiectivului pe motorul Dynamixel
- Pasul 5: CODUL PITONULUI
Video: Controlul Dynamixel 12A prin trimiterea pachetelor în serie: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
DYNAMIXEL 12A
Pasul 1: Componente necesare
HARDWARE:
1. Dynamixel 12A sau orice motor Dynamixel
2. USB la Dynamixel.
SOFTWARE:
1. Expertul Robotis Dynamixel.
2. Python --- Pachetul serial instalat
Pasul 2: Introducere în Dynamixel 12A
Motoarele Dynamixel sunt extrem de precise și utilizate în cea mai mare parte în robotică. Fiecare motor Dynamixel are microcontroler STM în interior. Puteți citi cuplul de curent, tensiunea, consumul de curent, temperatura, poziția etc. din Dynamixels Motors.
Specificații pentru Dynamixel 12A:
Tensiune de funcționare - 12v
Greutate - 55g
Curent maxim - 900mA
Cuplu de blocare - 15,3 Kg.cm
Pasul 3: Comunicarea / controlul Dynamixel 12A
- Dynamixel 12A nu este ca servomotorele normale care au 3 pini GND, PWM, VCC, oferă sursa de alimentare și semnal PWM și controlează motorul.
- Putem controla motoarele Dynamixel utilizând protocolul de comunicare Half Duplex UART.
Ce este protocolul de comunicare Half Duplex?
Transmiterea datelor semi-duplex înseamnă că datele pot fi transmise în ambele direcții pe un purtător de semnal, dar nu în același timp.
Acum aflăm despre Protocolul 1.0 pentru Dynamixels de la Robotis pentru a controla motoarele Dynamixel.
- Puteți comunica cu motoarele Dynamixel trimițând pachete de la laptop / microcontroler precum Arduino, r-pi etc. la microcontrolerul prezent în motoarele Dynamixel.
- Fiecare Dynamixel are ID-uri care pot fi modificate.
- Un pachet nu este altceva decât Set de octeți.
În cazul protocolului Dynamixel 1.0, veți avea două tipuri de pachete
- Pachete de instrucțiuni
- Pachete de stare
Pachetul de instrucțiuni este datele de comandă trimise dispozitivului.
Pachetul de instrucțiuni arată astfel:
Header1, Header2, ID, Length, Instruction, Param 1 … Param, NChecksum
0xFF, 0xFF, ID, Lungime, Instrucțiune Param 1 … Param, NCHKSUM
Octetul de instrucțiuni spune ce trebuie să faceți, dacă să citiți date sau să scrieți pe motorul Dynamixel.
TABEL DE CONTROL AL UNUI MOTOR DINAMIXEL. - Tabelul de control este o structură care constă din mai multe câmpuri de date pentru a stoca starea sau pentru a controla dispozitivul.
Citiți mai multe despre tabelul de control Aici tabelul de control Robotis.
Putem accesa datele din tabelul de control de la adresa sa și, de asemenea, putem scrie.
Pasul 4: Scrierea poziției obiectivului pe motorul Dynamixel
Pachet de instrucțiuni pentru a scrie poziția obiectivului
fiecare pachet începe cu un antet
H1 H2 ID LEN INST P1 P2 P3 CKSM
0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2
LEN-octet de instrucțiuni + p1 + p2 + p3 + chk sum = 5 octeți
ID = ID motor 1 Dynamixel-puteți seta ID-ul dinamic folosind software-ul robotis wizard dinamixel
INST = reg write-specificând că scrieți la motor.
P1 = Adresa de pornire a tabelului de control Data-In Poziția obiectivului are o adresă 30 (0x1E în hexazecimal).
P2 = octet mai mic de date
P3 = octet de date mai mare
Calculul sumei de verificare va fi explicat în scurt timp ………………….
Dacă trimiteți pachetul de mai sus la Dynamixel Serial utilizând USB2Dynamixel, poziția obiectivului motorului Dynamixel va fi setată la 500.
Pasul 5: CODUL PITONULUI
#Dezvoltat de Madhu. Ultima actualizare pe 2019-07-19
import Serial
timpul de import
ser = serial. Serial ('com36', '57142')
#change com port în consecință, rata mea de transmisie a motoarelor dinamixel este 57142, o puteți seta utilizând software-ul vrăjitorului Dynamixel.
în timp ce (1):
gp1 = input („introduceți poziția obiectivului ID1 (0-1023)”)
l = gp1 & 255 # octet scăzut
h = (gp1 >> 8) & 255 # octet mare
li = [0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]
#check calcul sum
crc = sum (li [2:])
low1 = crc & 255
chksum = 255-low1
li.append (chksum) #adding check sum
a = bytearray (li) #converting list in bytearray
ser.write (a) #Serial send using usb2dynamixels.
time.sleep (0,5)
#Copiați codul de lipire în IDE python. Instalați pachetul pyserial. conectați partea USB a usb2dynamixel la portul USB al laptopului și un alt capăt la motorul Dynamixel. Acordați o sursă externă de 12v USB2DYNAMIXEL.
RUN codul, introduceți valoarea poziției obiectivului. Vedeți motorul în funcțiune.
Recomandat:
Controlul Ledului prin intermediul aplicației Blynk folosind Nodemcu prin internet: 5 pași
Controlul Ledului prin intermediul aplicației Blynk folosind Nodemcu prin Internet: Bună ziua tuturor Astăzi vă vom arăta cum puteți controla un LED folosind un smartphone pe internet
Controlul irigațiilor prin Internet + Arduino + Ethernet: 3 pași
Controlul irigațiilor prin Internet + Arduino + Ethernet: aș dori să vă prezint un proiect pe care l-am implementat în sezonul vacanțelor din acest an. Am creat un sistem orientat pe web pentru horticultură, specializat în vânzarea și cultivarea diferitelor tipuri de plante, copaci, flori
Trimiterea prin e-mail a botului folosind Python: 5 pași
Trimiterea mesajelor de e-mail folosind Python: În acest proiect veți învăța cum să trimiteți mesaje de e-mail folosind python. procent minim presupus de atingere
Sistem de prezență prin trimiterea datelor RFID către serverul MySQL folosind Python cu Arduino: 6 pași
Sistem de prezență prin trimiterea datelor RFID către serverul MySQL folosind Python cu Arduino: În acest proiect am interfațat RFID-RC522 cu arduino și apoi trimit date RFID la baza de date phpmyadmin. Spre deosebire de proiectele noastre anterioare, nu folosim niciun scut Ethernet în acest caz, aici citim doar datele seriale provenite de la ar
Asamblarea și controlul kitului auto robotizat prin telecomandă fără fir PS2: 6 pași
Asamblarea și controlul setului de mașină robotică prin telecomandă wireless PS2: Acest proiect este legat de pașii de bază din lumea robotică, veți învăța să asamblați un kit mașină robotică 4WD, plasând hardware pe ea și controlându-l cu telecomanda wireless PS2