Inhoudsopgave:

Dynamixel 12A besturen door pakketten serieel te verzenden: 5 stappen
Dynamixel 12A besturen door pakketten serieel te verzenden: 5 stappen

Video: Dynamixel 12A besturen door pakketten serieel te verzenden: 5 stappen

Video: Dynamixel 12A besturen door pakketten serieel te verzenden: 5 stappen
Video: Использование кнопки скорости шагового двигателя 28BYJ-48 с 8 проектами: Ultimate Video Tutorial, урок 107 2024, Juni-
Anonim
Dynamixel 12A besturen door pakketten serieel te verzenden
Dynamixel 12A besturen door pakketten serieel te verzenden

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.

Aanbevolen: