Talaan ng mga Nilalaman:

Pagkontrol sa Dynamixel 12A sa pamamagitan ng Pagpapadala ng Mga Packet Serial: 5 Mga Hakbang
Pagkontrol sa Dynamixel 12A sa pamamagitan ng Pagpapadala ng Mga Packet Serial: 5 Mga Hakbang

Video: Pagkontrol sa Dynamixel 12A sa pamamagitan ng Pagpapadala ng Mga Packet Serial: 5 Mga Hakbang

Video: Pagkontrol sa Dynamixel 12A sa pamamagitan ng Pagpapadala ng Mga Packet Serial: 5 Mga Hakbang
Video: DYNAMIXEL Tips | DYNAMIXEL Position Controller PID Gain Tuning (feat. Arduino example) 2024, Nobyembre
Anonim
Pagkontrol sa Dynamixel 12A sa pamamagitan ng Pagpapadala ng Mga Paket nang Serial
Pagkontrol sa Dynamixel 12A sa pamamagitan ng Pagpapadala ng Mga Paket nang Serial

DYNAMIXEL 12A

Hakbang 1: Kinakailangan ang Mga Bahagi

HARDWARE:

1. Dynamixel 12A o anumang Dynamixel motor

2. USB kay Dynamixel.

SOFTWARE:

1. Robotis Dynamixel wizard.

2. Python --- Na-install ang serial package

Hakbang 2: Panimula sa Dynamixel 12A

Ang mga motor na Dynamixel ay lubos na tumpak at kadalasang ginagamit sa Robotics. Ang bawat motor na Dynamixel ay mayroong STM microcontroller sa loob. Maaari mong basahin ang kasalukuyang metalikang kuwintas, boltahe, kasalukuyang pagguhit, temperatura, posisyon, atbp., Mula sa Dynamixels Motors.

Mga pagtutukoy ng Dynamixel 12A:

Operating Boltahe --12v

Timbang - 55g

Max kasalukuyang --900mA

Stall Torque - 15.3 Kg.cm

Hakbang 3: Pakikipag-usap / pagkontrol sa Dynamixel 12A

  • Ang Dynamixel 12A ay hindi tulad ng normal na servo motors na mayroong 3pin GND, PWM, VCC, nagbibigay ng power supply at PWM signal at kontrolin ang motor.
  • Maaari naming makontrol ang mga Dynamixel motor gamit ang Half Duplex UART na protocol sa komunikasyon.

Ano ang Half Duplex Communication Protocol?

Ang paghahatid ng data na Half-duplex ay nangangahulugang ang data ay maaaring mailipat sa parehong direksyon sa isang signal carrier, ngunit hindi sa parehong oras.

Ngayon natututunan namin ang tungkol sa Protocol 1.0 para sa Dynamixels mula sa Robotis upang makontrol ang mga Dynamixel motor.

  • Maaari kang makipag-usap sa mga motor ng Dynamixel sa pamamagitan ng pagpapadala ng mga packet mula sa iyong laptop / microcontroller tulad ng Arduino, r-pi, atbp., Sa microcontroller na naroroon sa loob ng mga Dynamixel motor.
  • Ang bawat Dynamixels ay may mga ID na maaaring mabago.
  • Ang isang packet ay walang iba kundi ang Set ng bytes.

Isama ang Dynamixel protocol 1.0 magkakaroon ka ng dalawang uri ng mga packet

  • Mga packet ng pagtuturo
  • Mga packet ng katayuan

Ang Instruction Packet ay ang data ng utos na ipinadala sa Device.

Ganito ang hitsura ng packet ng pagtuturo:

Header1, Header2, ID, Haba, Tagubilin, Param 1… Param, NChecksum

0xFF, 0xFF, ID, Haba, Tagubilin Param 1… Param, NCHKSUM

Sinasabi ng tagubilin ng byte kung ano ang gagawin, magbasa man ng data o sumulat sa motor na Dynamixel.

CONTROL TABLE OF A DYNAMIXEL MOTOR.-Ang Control Table ay isang istraktura na binubuo ng maraming mga patlang ng Data upang maiimbak ang katayuan o upang makontrol ang aparato.

Magbasa nang higit pa tungkol sa Control table HereControl Table Robotis.

Maaari naming ma-access ang data sa control table mula sa address nito at maaari din kaming magsulat.

Hakbang 4: Pagsulat ng Posisyon ng Layunin sa Dynamixel Motor

Tagubilin Packet na Isulat ang posisyon ng Layunin

ang bawat packet ay nagsisimula sa isang header

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

LEN-tagubilin byte + p1 + p2 + p3 + chk kabuuan = 5 bytes

ID = Dynamixel motor ID 1-maaari mong itakda ang dynamixel id gamit ang robotis dynamixel wizard software

INST = reg sumulat-tumutukoy na ang iyong pagsusulat sa motor.

P1 = Panimulang address ng Data-Sa control table Posisyon ng layunin ay pagkakaroon ng isang address na 30 (0x1E sa hexadecimal).

P2 = mas mababang byte ng data

P3 = mas mataas na byte ng data

Ang pagkalkula ng Checksum ay ipapaliwanag nang ilang sandali ………………….

Kung ipadala mo ang packet sa itaas sa Dynamixel Serial gamit ang USB2Dynamixel, ang posisyon ng layunin ng motor na Dynamixel ay maitatakda sa 500.

Hakbang 5: PYTHON CODE

# Binuo ni Madhu. Huling pag-update noong 2019-07-19

import Serial

oras ng pag-import

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

#change com port nang naaayon, ang aking dynamixel motors baud rate ay 57142, maaari mo itong itakda gamit ang Dynamixel wizard software.

habang (1):

gp1 = input ('ipasok ang posisyon ng layunin ng ID1 (0-1023)')

l = gp1 & 255 # mahinang byte

h = (gp1 >> 8) & 255 # mataas na byte

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

#check ang pagkalkula ng kabuuan

crc = kabuuan (li [2:])

mababa1 = crc & 255

chksum = 255-mababa1

li.append (chksum) #dagdag ang pagsumite ng kabuuan

a = bytearray (li) # listahan ng pag-convert sa bytearray

ser.write (a) #Serially magpadala gamit ang usb2dynamixels.

oras. pagtulog (0.5)

#Copy ang code paste sa python IDE. I-install ang pyserial package. ikonekta ang USB side ng usb2dynamixel sa USB port ng laptop at isa pang pagtatapos sa Dynamixel motor. Magbigay ng panlabas na 12v na supply sa USB2DYNAMIXEL.

Patakbuhin ang code, ipasok ang halaga ng posisyon ng layunin. Makita ang pagpapatakbo ng motor.

Inirerekumendang: