Სარჩევი:
- ნაბიჯი 1: საჭირო კომპონენტები
- ნაბიჯი 2: შესავალი Dynamixel 12A
- ნაბიჯი 3: კომუნიკაცია/კონტროლი Dynamixel 12A
- ნაბიჯი 4: Dynamixel Motor– ის მიზნის პოზიციის დაწერა
- ნაბიჯი 5: პითონის კოდი
ვიდეო: Dynamixel 12A– ს კონტროლი პაკეტების სერიული გაგზავნით: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
დინამიქსელი 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.
გაუშვით კოდი, შეიყვანეთ მიზნის პოზიციის მნიშვნელობა. იხილეთ ძრავა, რომელიც მუშაობს.
გირჩევთ:
Mac Lilypad USB სერიული პორტის/დრაივერის პრობლემა: 10 ნაბიჯი (სურათებით)
Mac Lilypad USB სერიული პორტის/დრაივერის პრობლემა: 2016 წლის მონაცემებით, თქვენი Mac არის 2 წელზე ნაკლები ხნის წინ? თქვენ ახლახან განახლდით უახლეს ოპერაციულ სისტემაზე (იოსემიტი ან რაიმე უფრო ახალი)? თქვენი Lilypad USBs/MP3s აღარ მუშაობს? ჩემი სამეურვეო პროგრამა გაჩვენებთ თუ როგორ გავასწორე ჩემი Lilypad USB- ები. მე შემხვედრი შეცდომა დაკავშირებული იყო
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push ღილაკების, ჟოლოს Pi და Scratch გამოყენებით: 8 ნაბიჯი (სურათებით)
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push Buttons, Raspberry Pi და Scratch გამოყენებით: მე ვცდილობდი მეპოვა გზა იმის ახსნა, თუ როგორ მუშაობდა PWM ჩემს მოსწავლეებზე, ამიტომ მე დავაყენე საკუთარი თავი ამოცანა ვცდილობდი გავაკონტროლო LED სიკაშკაშე 2 ღილაკის გამოყენებით - ერთი ღილაკი გაზრდის LED- ს სიკაშკაშეს და მეორე აფერხებს მას. წინსვლისთვის
ESP8266 RGB LED STRIP WIFI კონტროლი - NODEMCU როგორც IR დისტანციური მართვის წამყვანი ზოლისთვის, რომელიც კონტროლდება Wifi - RGB LED STRIP სმარტფონის კონტროლი: 4 ნაბიჯი
ESP8266 RGB LED STRIP WIFI კონტროლი | NODEMCU როგორც IR დისტანციური მართვის წამყვანი ზოლები Wifi- ზე კონტროლირებადი | RGB LED STRIP სმარტფონის კონტროლი: გამარჯობა ბიჭებო, ამ სახელმძღვანელოში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ nodemcu ან esp8266 როგორც IR დისტანციური მართვა RGB LED ზოლის გასაკონტროლებლად და Nodemcu კონტროლდება სმარტფონის მიერ wifi– ზე. ასე რომ, ძირითადად თქვენ შეგიძლიათ აკონტროლოთ RGB LED STRIP თქვენი სმარტფონით
დასწრების სისტემა RFID მონაცემების გაგზავნით MySQL სერვერზე პითონის გამოყენებით Arduino– ით: 6 ნაბიჯი
დასწრების სისტემა RFID მონაცემების გაგზავნით MySQL სერვერზე Python– ით Arduino– ს გამოყენებით: ამ პროექტში მე გავამყარე RFID-RC522 arduino– სთან და შემდეგ მე RFID– ის მონაცემებს ვგზავნი phpmyadmin მონაცემთა ბაზაში. ჩვენი წინა პროექტებისგან განსხვავებით, ამ შემთხვევაში ჩვენ არ ვიყენებთ რაიმე Ethernet ფარს, აქ ჩვენ უბრალოდ ვკითხულობთ სერიული მონაცემებს, რომლებიც მოდის
ნაბიჯი სერვო ძრავის სერიული კონტროლით არდუინოს საშუალებით 3D პრინტერის გამოყენებით - Pt4: 8 ნაბიჯი
მოიცავს საფეხურზე მომუშავე ძრავას სერიული კონტროლით Arduino– ს გამოყენებით 3D პრინტერის გამოყენებით - Pt4: Motor Step სერიის ამ მეოთხე ვიდეოში ჩვენ გამოვიყენებთ იმას, რაც ადრე ვისწავლეთ სტეპერ სერვო ძრავის აგება სერიული კომუნიკაციისა და რეალური კონტროლის საშუალებით. პოზიციის უკუკავშირი რეზისტენტული კოდირების გამოყენებით, რომელსაც აკონტროლებს არდუინო