Სარჩევი:

Dynamixel 12A– ს კონტროლი პაკეტების სერიული გაგზავნით: 5 ნაბიჯი
Dynamixel 12A– ს კონტროლი პაკეტების სერიული გაგზავნით: 5 ნაბიჯი

ვიდეო: Dynamixel 12A– ს კონტროლი პაკეტების სერიული გაგზავნით: 5 ნაბიჯი

ვიდეო: Dynamixel 12A– ს კონტროლი პაკეტების სერიული გაგზავნით: 5 ნაბიჯი
ვიდეო: Using Dynamixel AX-12A Servo with Arduino 2024, ივლისი
Anonim
Dynamixel 12A– ს კონტროლი პაკეტების სერიულად გაგზავნით
Dynamixel 12A– ს კონტროლი პაკეტების სერიულად გაგზავნით

დინამიქსელი 12 ა

ნაბიჯი 1: საჭირო კომპონენტები

HARDWARE:

1. Dynamixel 12A ან ნებისმიერი Dynamixel ძრავა

2. USB დინამიქსელამდე.

პროგრამული უზრუნველყოფა:

1. Robotis Dynamixel ოსტატი.

2. პითონი --- დაინსტალირებული სერიული პაკეტი

ნაბიჯი 2: შესავალი Dynamixel 12A

დინამიქსელის ძრავები ძალიან ზუსტია და ძირითადად გამოიყენება რობოტიკაში. ყველა Dynamixel ძრავას აქვს STM მიკროკონტროლი შიგნით. თქვენ შეგიძლიათ წაიკითხოთ მიმდინარე ბრუნვის მომენტი, ძაბვა, მიმდინარე გათბობა, ტემპერატურა, პოზიცია და სხვა.. Dynamixels Motors– დან.

Dynamixel 12A– ს მახასიათებლები:

საოპერაციო ძაბვა -12 ვ

წონა-55 გ

მაქსიმალური დენი -900 mA

სადგომის ბრუნვის მომენტი-15.3 კგ. სმ

ნაბიჯი 3: კომუნიკაცია/კონტროლი Dynamixel 12A

  • Dynamixel 12A არ ჰგავს ჩვეულებრივ სერვო ძრავებს, რომლებსაც აქვთ 3 პინიანი GND, PWM, VCC, აძლევენ დენის წყაროს და PWM სიგნალს და აკონტროლებენ ძრავას.
  • ჩვენ შეგვიძლია გავაკონტროლოთ Dynamixel ძრავები Half Duplex UART საკომუნიკაციო პროტოკოლის გამოყენებით.

რა არის Half Duplex Communication Protocol?

ნახევრად დუპლექსური მონაცემთა გადაცემა ნიშნავს იმას, რომ მონაცემები შეიძლება გადაეცეს სიგნალის მატარებელს ორივე მიმართულებით, მაგრამ არა ერთდროულად.

ახლა ჩვენ ვსწავლობთ Robotis– ის Dynamixels– ის Protocol 1.0– ის შესახებ Dynamixel ძრავების გასაკონტროლებლად.

  • თქვენ შეგიძლიათ დაუკავშირდეთ Dynamixel ძრავებს თქვენი ლეპტოპიდან/მიკროკონტროლიდან პაკეტების გაგზავნით, როგორიცაა Arduino, r-pi და ა.შ.. მიკროკონტროლერზე, რომელიც არის Dynamixel ძრავების შიგნით.
  • ყველა დინამიქსელს აქვს ID, რომელიც შეიძლება შეიცვალოს.
  • პაკეტი სხვა არაფერია თუ არა ბაიტების ნაკრები.

დინამიქსელის პროტოკოლის 1.0 შემთხვევაში თქვენ გექნებათ ორი სახის პაკეტი

  • ინსტრუქციის პაკეტები
  • სტატუსის პაკეტები

ინსტრუქციის პაკეტი არის მოწყობილობაზე გაგზავნილი ბრძანების მონაცემები.

ინსტრუქციის პაკეტი ასე გამოიყურება:

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

0xFF, 0xFF, ID, სიგრძე, ინსტრუქცია Param 1… Param, NCHKSUM

ინსტრუქციის ბაიტი გეუბნებათ რა უნდა გააკეთოთ, წაიკითხოთ მონაცემები თუ ჩაწეროთ Dynamixel ძრავზე.

DYNAMIXEL MOTOR– ის საკონტროლო ცხრილი. – საკონტროლო ცხრილი არის სტრუქტურა, რომელიც შედგება მონაცემთა მრავალჯერადი ველიდან სტატუსის შესანახად ან მოწყობილობის გასაკონტროლებლად.

წაიკითხეთ მეტი საკონტროლო ცხრილის შესახებ აქ საკონტროლო მაგიდის 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-შეგიძლიათ დააყენოთ dynamixel id robotis dynamixel wizard პროგრამული უზრუნველყოფის გამოყენებით

INST = reg ჩაწერეთ-მიუთითეთ, რომ თქვენ წერთ ძრავას.

P1 = მონაცემთა საწყისი მისამართი-საკონტროლო ცხრილში მიზნის პოზიციას აქვს მისამართი 30 (0x1E თექვსმეტობით).

P2 = მონაცემთა ქვედა ბაიტი

P3 = მონაცემთა უფრო მაღალი ბაიტი

ჩეკსის ჯამური გაანგარიშება მალე აიხსნება ………………….

თუ ზემოაღნიშნულ პაკეტს Dynamixel– ში სერიულად გაგზავნით USB2Dynamixel– ის გამოყენებით, Dynamixel საავტომობილო მიზნის პოზიცია იქნება 500 – ზე.

ნაბიჯი 5: პითონის კოდი

#შემუშავებულია მადჰუს მიერ. ბოლო განახლება 2019-07-19

სერიული იმპორტი

იმპორტის დრო

ser = სერიული. სერიული ('com36', '57142')

შესაბამისად #შეცვალეთ პორტი, ჩემი დინამიქსელის ძრავების სიჩქარე არის 57142, შეგიძლიათ დააყენოთ Dynamixel ოსტატის პროგრამული უზრუნველყოფის გამოყენებით.

ხოლო (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)

#დააკოპირეთ კოდის პასტა პითონის IDE- ში. დააინსტალირეთ პიისერიული პაკეტი. შეაერთეთ usb2dynamixel– ის USB მხარე ლეპტოპის USB პორტთან და მეორე ბოლო Dynamixel ძრავასთან. მიეცით გარე 12 ვ კვების წყარო USB2DYNAMIXEL.

გაუშვით კოდი, შეიყვანეთ მიზნის პოზიციის მნიშვნელობა. იხილეთ ძრავა, რომელიც მუშაობს.

გირჩევთ: