Innehållsförteckning:

Styr Dynamixel 12A genom att skicka paket seriellt: 5 steg
Styr Dynamixel 12A genom att skicka paket seriellt: 5 steg

Video: Styr Dynamixel 12A genom att skicka paket seriellt: 5 steg

Video: Styr Dynamixel 12A genom att skicka paket seriellt: 5 steg
Video: Использование кнопки скорости шагового двигателя 28BYJ-48 с 8 проектами: Ultimate Video Tutorial, урок 107 2024, Juli
Anonim
Styr Dynamixel 12A genom att skicka paket seriellt
Styr Dynamixel 12A genom att skicka paket seriellt

DYNAMIXEL 12A

Steg 1: Komponenter krävs

HÅRDVARA:

1. Dynamix 12A eller någon Dynamixel -motor

2. USB till Dynamixel.

PROGRAMVARA:

1. Robotis Dynamixel -guiden.

2. Python --- Seriellt paket installerat

Steg 2: Introduktion till Dynamixel 12A

Dynamixel -motorer är mycket exakta och används mest inom robotik. Varje Dynamixel -motor har STM -mikrokontroller inuti. Du kan läsa aktuellt vridmoment, spänning, strömdragning, temperatur, position, etc., från Dynamixels Motors.

Specifikationer för Dynamixel 12A:

Driftspänning -12v

Vikt-55g

Max ström -900mA

Stoppmoment-15,3 kg. Cm

Steg 3: Kommunicera/styra Dynamixel 12A

  • Dynamixel 12A är inte som vanliga servomotorer som har 3pin GND, PWM, VCC, ger strömförsörjning och PWM -signal och styr motorn.
  • Vi kan styra Dynamixel -motorer med hjälp av Half Duplex UART -kommunikationsprotokoll.

Vad är Half Duplex Communication Protocol?

Halv duplex dataöverföring innebär att data kan överföras i båda riktningarna på en signalbärare, men inte samtidigt.

Nu lär vi oss om Protocol 1.0 för Dynamixels från Robotis för att styra Dynamixel -motorer.

  • Du kan kommunicera med Dynamixel-motorer genom att skicka paket från din bärbara dator/mikrokontroller som Arduino, r-pi, etc., till mikrokontrollern som finns i Dynamixel-motorerna.
  • Varje Dynamixels har ID som kan ändras.
  • Ett paket är inget annat än uppsättning byte.

Om du använder Dynamixel -protokoll 1.0 kommer du att ha två typer av paket

  • Instruktionspaket
  • Statuspaket

Instruktionspaket är kommandodata som skickas till enheten.

Instruktionspaketet ser ut så här:

Rubrik1, Rubrik2, ID, Längd, Instruktion, Param 1 … Param, NChecksumma

0xFF, 0xFF, ID, längd, instruktion Param 1 … Param, NCHKSUM

Instruktionsbyte berättar vad man ska göra, om man ska läsa data eller skriva till Dynamixel -motorn.

KONTROLLTABELL FÖR EN DYNAMIXELMOTOR. -Kontrolltabellen är en struktur som består av flera datafält för att lagra status eller för att styra enheten.

Läs mer om kontrolltabellen HereControl Table Robotis.

Vi kan komma åt data i kontrolltabellen från dess adress och vi kan också skriva.

Steg 4: Skriva målposition till Dynamixel Motor

Instruktionspaket för att skriva målposition

varje paket börjar med en rubrik

H1 H2 ID LEN INST P1 P2 P3 CKSM

0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2

LEN-instruktion byte+p1+p2+p3+chk summa = 5 byte

ID = Dynamixel motor ID 1-du kan ställa in dynamixel id med robotis dynamixel wizard programvara

INST = reg-skriv-specificerar att du skriver till motorn.

P1 = Startadress för Data-In i kontrolltabellen Målpositionen har en adress 30 (0x1E i hexadecimal).

P2 = lägre byte med data

P3 = högre byte av data

Beräkning av kontrollsumma kommer att förklaras inom kort ………………….

Om du skickar paketet ovan till Dynamixel seriellt med USB2Dynamixel, kommer Dynamixels motorposition att ställas in på 500.

Steg 5: PYTHON -KOD

#Utvecklad av Madhu. Senaste uppdatering 2019-07-19

importera serie

importtid

ser = serial. Serial ('com36', '57142')

#ändra com -port i enlighet därmed, min dynamixelmotors överföringshastighet är 57142, du kan ställa in den med hjälp av Dynamixel -guiden.

medan (1):

gp1 = input ('enter ID1 goal position (0-1023)')

l = gp1 & 255 #låg byte

h = (gp1 >> 8) & 255 #hög byte

li = [0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]

#check sumberäkning

crc = summa (li [2:])

low1 = crc & 255

chksum = 255-låg1

li.append (chksum) #lägga till check summa

a = bytearray (li) #konverterar lista till bytearray

ser.write (a) #Seriellt skicka med usb2dynamixels.

tid. sover (0,5)

#Kopiera kodpastan i python IDE. Installera pyserialt paket. anslut usb2dynamixels USB -sida till bärbar datorns USB -port och en annan ände till Dynamixel -motor. Ge en extern 12v -strömförsörjning till USB2DYNAMIXEL.

KÖR koden, ange värdet för målpositionen. Se motor kör.

Rekommenderad: