Բովանդակություն:

Dynamixel 12A- ի վերահսկում `փաթեթների սերիական ուղարկմամբ` 5 քայլ
Dynamixel 12A- ի վերահսկում `փաթեթների սերիական ուղարկմամբ` 5 քայլ

Video: Dynamixel 12A- ի վերահսկում `փաթեթների սերիական ուղարկմամբ` 5 քայլ

Video: Dynamixel 12A- ի վերահսկում `փաթեթների սերիական ուղարկմամբ` 5 քայլ
Video: Using Dynamixel AX-12A Servo with Arduino 2024, Նոյեմբեր
Anonim
Dynamixel 12A- ի վերահսկում `փաթեթների սերիական ուղարկմամբ
Dynamixel 12A- ի վերահսկում `փաթեթների սերիական ուղարկմամբ

DYNAMIXEL 12A

Քայլ 1: Պահանջվում են բաղադրիչներ

HARDWARE:

1. Dynamixel 12A կամ ցանկացած Dynamixel շարժիչ

2. USB- ից Dynamixel- ին:

SOՐԱԳԻՐ:

1. Robotis Dynamixel կախարդ:

2. Python --- Տեղադրված է սերիալային փաթեթ

Քայլ 2. Ներածություն Dynamixel 12A- ին

Dynamixel շարժիչները չափազանց ճշգրիտ են և հիմնականում օգտագործվում են Ռոբոտաշինության մեջ: Յուրաքանչյուր Dynamixel շարժիչ ունի ներսում STM միկրոկոնտրոլեր: Dynamixels Motors- ից կարող եք կարդալ ընթացիկ ոլորող մոմենտը, լարումը, ընթացիկ շեղումը, ջերմաստիճանը, դիրքը և այլն:

Dynamixel 12A- ի բնութագրերը.

Գործող լարման -12 վ

Քաշ-55 գ

Առավելագույն հոսանքը `900 մԱ

Խցիկի ոլորող մոմենտ-15,3 կգ.սմ

Քայլ 3. Հաղորդակցում/վերահսկում Dynamixel 12A

  • Dynamixel 12A- ն նման չէ սովորական servo շարժիչներին, որոնք ունեն 3 պին GND, PWM, VCC, տալիս են սնուցման աղբյուր և PWM ազդանշան և վերահսկում շարժիչը:
  • Մենք կարող ենք վերահսկել Dynamixel շարժիչները `օգտագործելով Half Duplex UART հաղորդակցության արձանագրություն:

Ի՞նչ է Half Duplex Communication Protocol- ը:

Կես դուպլեքս տվյալների փոխանցումը նշանակում է, որ ազդանշանի կրիչի վրա տվյալները կարող են փոխանցվել երկու ուղղություններով, բայց ոչ միաժամանակ:

Այժմ մենք սովորում ենք Robotis- ի Dynamixels- ի համար Protocol 1.0- ի մասին, որը վերահսկում է Dynamixel շարժիչները:

  • Դուք կարող եք հաղորդակցվել Dynamixel շարժիչների հետ ՝ ձեր նոութբուքից/միկրոկառավարիչից փաթեթներ ուղարկելով, ինչպիսիք են Arduino- ն, r-pi- ն և այլն …, այն Dynamixel շարժիչների ներսում առկա միկրոկառավարիչին:
  • Յուրաքանչյուր Dynamixels ունի ID, որը կարող է փոփոխվել:
  • Փաթեթը ոչ այլ ինչ է, քան բայթերի շարք:

Դինամիկսել արձանագրության 1.0 դեպքում դուք կունենաք երկու տեսակի փաթեթ

  • Հրահանգների փաթեթներ
  • Կարգավիճակի փաթեթներ

Instruction Packet- ը Սարքին ուղարկված հրամանի տվյալներն են:

Հրահանգների փաթեթն այսպիսին է.

Header1, Header2, ID, Length, Instruction, Param 1… Param, NChecksum

0xFF, 0xFF, ID, երկարություն, հրահանգ Պարամետր 1… պարամետր, NCHKSUM

Հրահանգի բայթը պատմում է, թե ինչ անել, կարդալ տվյալները, թե գրել Dynamixel շարժիչին:

ԴԻՆԱՄԻՔՍԵԼ ՄՈՏՈՐԻ ՎԵՐԱՀՍԿՈՈABԹՅԱՆ Աղյուսակ:-Կառավարման աղյուսակը կառուցվածք է, որը բաղկացած է Տվյալների բազմաթիվ դաշտերից `կարգավիճակը պահելու կամ սարքը կառավարելու համար:

Կարդացեք ավելին կառավարման սեղանի մասին այստեղԿառավարեք սեղան Robotis:

Մենք կարող ենք մուտք գործել կառավարման աղյուսակի տվյալները դրա հասցեից, ինչպես նաև կարող ենք գրել:

Քայլ 4: Dynamixel Motor- ին գրեք նպատակի դիրք

Նպատակի դիրքը գրելու հրահանգների փաթեթ

յուրաքանչյուր փաթեթ սկսվում է վերնագրով

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

LEN- հրահանգի բայթ+p1+p2+p3+chk գումար = 5 բայթ

ID = Dynamixel motor ID 1-կարող եք դինամիկսելի id սահմանել robotis dynamixel wizard ծրագրաշարի միջոցով

INST = reg գրել-նշելով, որ դուք գրում եք շարժիչին:

P1 = Տվյալների մեկնարկային հասցեն-Կառավարման աղյուսակում Նպատակային դիրքն ունի հասցե 30 (0x1E տասնվեցական):

P2 = տվյալների ցածր բայթ

P3 = տվյալների ավելի բարձր բայթ

Չեկային գումարի հաշվարկը շուտով կբացատրվի ………………….

Եթե վերը նշված փաթեթը ուղարկեք Dynamixel Serially USB2Dynamixel- ի միջոցով, Dynamixel շարժիչի նպատակային դիրքը կսահմանվի 500:

Քայլ 5. PYTHON CODE

#Մշակված է Մադհուի կողմից: Վերջին թարմացումը `2019-07-19

ներմուծում Սերիա

ներմուծման ժամանակը

ser = սերիալ: Սերիալ ('com36', '57142')

Համապատասխանաբար #change com նավահանգիստը, իմ դինամիքսել շարժիչների բաուդ արագությունը 57142 է, կարող եք այն տեղադրել Dynamixel wizard ծրագրակազմի միջոցով:

մինչդեռ (1):

gp1 = մուտքագրում ('մուտքագրեք ID1- ի նպատակային դիրքը (0-1023)')

l = gp1 & 255 #ցածր բայթ

h = (gp1 >> 8) & 255 #բարձր բայթ

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

#ստուգել գումարի հաշվարկը

crc = գումար (li [2:])

ցածր 1 = crc & 255

chksum = 255-ցածր 1

li.append (chksum) #ավելացնել չեկի գումար

a = bytearray (li) #ցուցակը փոխակերպելով bytearray

ser.write (a) #Սերիական ուղարկեք ՝ օգտագործելով usb2dynamixels:

ժամանակ. քուն (0.5)

#Պատճենեք ծածկագրի տեղադրումը python IDE- ում: Տեղադրեք պիզերալ փաթեթ: միացրեք usb2dynamixel- ի USB կողմը նոութբուքի USB պորտին և մյուս ծայրը Dynamixel շարժիչին: USB2DYNAMIXEL- ին տվեք արտաքին 12 վ լարման:

RUN կոդը, մուտքագրեք նպատակի դիրքի արժեքը: Տեսեք շարժիչը աշխատում է:

Խորհուրդ ենք տալիս: