Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
DYNAMIXEL 12A
Stap 1: Vereiste componenten
HARDWARE:
1. Dynamixel 12A of een Dynamixel-motor;
2. USB naar Dynamixel.
SOFTWARE:
1. Robotis Dynamixel-wizard.
2. Python --- Serieel pakket geïnstalleerd
Stap 2: Inleiding tot Dynamixel 12A
Dynamixel-motoren zijn zeer nauwkeurig en worden vooral gebruikt in robotica. Elke Dynamixel-motor heeft een STM-microcontroller binnenin. U kunt het huidige koppel, de spanning, het stroomverbruik, de temperatuur, de positie, enz. van Dynamixels Motors aflezen.
Specificaties van Dynamixel 12A:
Bedrijfsspanning -12v
Gewicht--55g
Max stroom --900mA
Stall Torque--15.3 Kg.cm
Stap 3: Communiceren/aansturen van Dynamixel 12A
- Dynamixel 12A is niet zoals normale servomotoren die 3-pins GND, PWM, VCC hebben, voeding en PWM-signaal geven en de motor regelen.
- We kunnen Dynamixel-motoren aansturen met behulp van het Half Duplex UART-communicatieprotocol.
Wat is het half-duplex communicatieprotocol?
Half-duplex datatransmissie betekent dat gegevens in beide richtingen op een signaaldrager kunnen worden verzonden, maar niet tegelijkertijd.
Nu leren we over Protocol 1.0 voor Dynamixels van Robotis om Dynamixel-motoren te besturen.
- U kunt communiceren met Dynamixel-motoren door pakketten van uw laptop/microcontroller zoals Arduino, r-pi, enz. naar de microcontroller te sturen die in de Dynamixel-motoren aanwezig is.
- Elke Dynamixels heeft ID's die kunnen worden gewijzigd.
- Een pakket is niets anders dan een verzameling bytes.
In het geval van Dynamixel-protocol 1.0 heb je twee soorten pakketten
- Instructiepakketten
- Statuspakketten
Instructiepakket is de opdrachtgegevens die naar het apparaat worden verzonden.
Instructiepakket ziet er als volgt uit:
Header1, Header2, ID, Lengte, Instructie, Param 1…Param, NChecksum
0xFF, 0xFF, ID, Lengte, Instructie Param 1…Param, NCHKSUM
Instructiebyte vertelt wat u moet doen, of u gegevens wilt lezen of schrijven naar de Dynamixel-motor.
BEDIENINGSTABEL VAN EEN DYNAMIXEL MOTOR.-De besturingstabel is een structuur die bestaat uit meerdere gegevensvelden om de status op te slaan of om het apparaat te besturen.
Lees meer over Bedieningstafel HereControl Tafel Robotis.
We hebben toegang tot gegevens in de controletabel vanaf het adres en we kunnen ook schrijven.
Stap 4: Doelpositie schrijven naar Dynamixel Motor
Instructiepakket om doelpositie te schrijven
elk pakket begint met een header
H1 H2 ID LEN INST P1 P2 P3 CKSM
0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2
LEN-instructie byte+p1+p2+p3+chk sum=5 bytes
ID=Dynamixel motor ID 1-u kunt dynamixel id instellen met robotis dynamixel wizard software
INST=reg write-specificeren dat je naar de motor schrijft.
P1=Startadres van de Data-In de controletabel Doelpositie is het hebben van een adres 30 (0x1E in hexadecimaal).
P2=lagere gegevensbyte
P3=hogere gegevensbyte
De berekening van de checksum wordt binnenkort uitgelegd……………….
Als u het bovenstaande pakket naar Dynamixel Serially stuurt met USB2Dynamixel, wordt de Dynamixel-motordoelpositie ingesteld op 500.
Stap 5: PYTHONCODE
#Ontwikkeld door Madhu. Laatste update op 2019-07-19
serieel importeren
import tijd
ser=serial. Serial('com36', '57142')
#wijzig de com-poort dienovereenkomstig, de baudrate van mijn dynamixel-motoren is 57142, u kunt deze instellen met behulp van de Dynamixel-wizardsoftware.
terwijl(1):
gp1=input('voer ID1 doelpositie in (0-1023)')
l=gp1&255 #lage byte
h=(gp1>>8)&255 #hoge byte
li=[0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]
#check somberekening
crc=som(li[2:])
laag1=crc & 255
chksum=255-low1
li.append(chksum) #controlesom toevoegen
a=bytearray(li) #converting list in bytearray
ser.write(a) #Serially send met usb2dynamixels.
tijd.slaap(0.5)
#Kopieer de code en plak deze in python IDE. Installeer het pyserial-pakket. sluit de USB-zijde van usb2dynamixel aan op de USB-poort van de laptop en een ander uiteinde op de Dynamixel-motor. Geef een externe 12v voeding aan USB2DYNAMIXEL.
RUN de code, voer de waarde van de doelpositie in. Zie draaiende motor.