Სარჩევი:

Robotic Arm With Zio Modules ნაწილი 2: 11 ნაბიჯი
Robotic Arm With Zio Modules ნაწილი 2: 11 ნაბიჯი

ვიდეო: Robotic Arm With Zio Modules ნაწილი 2: 11 ნაბიჯი

ვიდეო: Robotic Arm With Zio Modules ნაწილი 2: 11 ნაბიჯი
ვიდეო: Marvel's Spider-man: Miles Morales (ფილმი) 2024, ნოემბერი
Anonim
რობოტული მკლავი Zio მოდულებით ნაწილი 2
რობოტული მკლავი Zio მოდულებით ნაწილი 2

დღევანდელ მეცადინეობაში ჩვენ გამოვიყენებთ ოთხივე სერვისს და PS2 უკაბელო კონტროლერს რობოტული მხარის გასაკონტროლებლად.

ეს ბლოგი არის Zio Robotics სერიის ნაწილი.

შესავალი

ჩვენს წინა ბლოგში, ჩვენ გამოვაქვეყნეთ ნაწილი 1 გაკვეთილი, თუ როგორ გავაკონტროლოთ Robotic Arm Zio მოდულების გამოყენებით. ნაწილი 1 ძირითადად კონცენტრირებული იყო თქვენი რობოტული მკლავის გახსნისა და დახურვის ავტომატურ კონტროლზე.

დღევანდელ სამეურვეო პროგრამაში ჩვენ ამას ოდნავ შევამჩნევთ PS2 უკაბელო კონტროლერის ჩათვლით რობოტული მკლავის გასაკონტროლებლად. ამ პროექტისთვის ჩვენ გამოვიყენებთ 4 სერვისს.

ნაბიჯი 1: პროექტის მიმოხილვა

Რთული ტური:

ზიო პადავან

დამხმარე რესურსები:

თქვენ უნდა გქონდეთ ძირითადი გაგება იმის შესახებ, თუ როგორ უნდა დააყენოთ Zio განვითარების დაფები. ამ გაკვეთილში ჩვენ ვივარაუდოთ, რომ თქვენი განვითარების დაფა უკვე კონფიგურირებულია და მზად არის დასაყენებლად. თუ ჯერ არ გაქვთ კონფიგურირებული თქვენი დაფა, იხილეთ ჩვენი Zio Qwiic Start Guide tutorial ქვემოთ დასაწყებად:

Zio Zuino M UNO Qwiic დაწყების გზამკვლევი

ნაბიჯი 2: სქემა

სქემატიკა
სქემატიკა

აქ არის Robotic Arm Part 2 პროექტის გაყვანილობის სქემა, ასევე PS2 კონტროლერის დიაგრამა, რომელიც საჭიროა თქვენი კოდირების ნაწილის გასაგებად.

ნაბიჯი 3: PS2 კონტროლერის დიაგრამა

PS2 კონტროლერის დიაგრამა
PS2 კონტროლერის დიაგრამა

ნაბიჯი 4: Zio მოდულების კავშირის დაყენება

ქვემოთ მოცემულია ჩვენი Zio მოდულების კავშირი, რომელიც უნდა შეიქმნას Robotic Arm- თან. ყველა მოდულის ერთმანეთთან დაკავშირება საკმაოდ ადვილია და მის დაყენებას არ დასჭირდება 10 წუთზე მეტი.

ნაბიჯი 5: შეაერთეთ Robotic Arm Servo Zio 16 Servo Controller– თან

შეაერთეთ Robotic Arm Servo Zio 16 Servo Controller– თან
შეაერთეთ Robotic Arm Servo Zio 16 Servo Controller– თან

ნაბიჯი 6: შეაერთეთ თქვენი 16 სერვო DC/DC გამაძლიერებელთან და დააყენეთ იგი 6.0 ვ

შეაერთეთ თქვენი 16 სერვო DC/DC გამაძლიერებელთან და დააყენეთ იგი 6.0 ვ
შეაერთეთ თქვენი 16 სერვო DC/DC გამაძლიერებელთან და დააყენეთ იგი 6.0 ვ

ჩვენ ვიყენებთ DC/DC გამაძლიერებელს, რათა გაზარდოს და შეცვალოს ბატარეის ძაბვა 6.0 -მდე.

გამოიყენეთ პოტენომეტრი DC გამაძლიერებელზე ძაბვის შესაცვლელად სანამ არ მიიღებთ 6.0 -ს. დააჭირეთ ღილაკს შემოსვლა/გამოსვლა სანამ ეკრანზე გამოჩნდება 6.0. თქვენ უნდა მიაწოდოთ ენერგია (3.7 ვ ბატარეა) თქვენს DC/DC გამაძლიერებელს ძაბვის შესაცვლელად.

ნაბიჯი 7: შეაერთეთ Zuino M Uno Zio 16 Servo კონტროლერთან

შეაერთეთ Zuino M Uno Zio 16 Servo კონტროლერთან
შეაერთეთ Zuino M Uno Zio 16 Servo კონტროლერთან

Qwiic დაუკავშირეთ Zuino M Uno Zio Servo კონტროლერს qwiic კაბელით.

ნაბიჯი 8: Uno– ს დაკავშირება PS2 მიმღებთან

Uno– ს დაკავშირება PS2 მიმღებთან
Uno– ს დაკავშირება PS2 მიმღებთან

აქ არის კავშირების Pin დიაგრამა. ამ ნაწილისთვის გჭირდებათ 5 კაციდან მდედრამდე მხტუნავი მავთულები.

ნაბიჯი 9: კოდი Robotic Arm- ისთვის

ჩვენ ვიყენებთ PS2 Arduino ბიბლიოთეკას ჩვენი PS2 უკაბელო კონტროლერის კოდირებისთვის, რომ ვიმუშაოთ ჩვენს Robotic Arm- თან. თქვენ შეგიძლიათ იპოვოთ და ჩამოტვირთოთ ამ Robotic Arm Part 2 პროექტის წყაროს კოდი ჩვენს Github გვერდზე.

ჩამოტვირთეთ და დააინსტალირეთ შემდეგი ბიბლიოთეკები და შეინახეთ თქვენს ადგილობრივ Arduino IDE ბიბლიოთეკების საქაღალდეში:

  • Adafruit PWM Servo მძღოლის ბიბლიოთეკა
  • PS2 Arduino ბიბლიოთეკა

ბიბლიოთეკების დასაყენებლად გახსენით თქვენი Arduino IDE, გადადით ჩანახატის ჩანართზე, აირჩიეთ ბიბლიოთეკის ჩართვა -> Add. Zip Library. შეარჩიეთ ზემოაღნიშნული ბიბლიოთეკები თქვენს IDE- ში შესასვლელად.

Arduino– ს აქვს მოსახერხებელი სახელმძღვანელო, თუ როგორ უნდა დააყენოთ ბიბლიოთეკები თქვენს Arduino IDE– ზე. შეამოწმეთ ისინი აქ!

ნაბიჯი 10: გაუშვით თქვენი კოდი

გაუშვით თქვენი კოდი
გაუშვით თქვენი კოდი

გახსენით Arduino IDE. ფაილების> მაგალითების> PS2_Arduino_Library, აირჩიეთ PS2X_Servo

შენიშვნა: სანამ თქვენ შეძლებთ გააკონტროლოთ თქვენი Robotic arm PS2 კონტროლერით შეამოწმეთ შემდეგი ნაბიჯები: ჩართეთ თქვენი PS2 კონტროლერი. დარწმუნდით, რომ რეჟიმი LED ანათებს. თუ ეს ასე არ არის, დააჭირეთ ღილაკს რეჟიმი თქვენს კონტროლერზე. ზემოაღნიშნულის გაკეთების შემდეგ, თქვენ უნდა დააჭიროთ გადატვირთვის ღილაკს თქვენს Zuino M Uno– ზე, რომ წაიკითხოს თქვენი კონტროლერის პარამეტრები. თქვენ უნდა დააჭიროთ L1 და ჯოისტიკს, რომ გადაადგილოთ თქვენი რობოტული მკლავი.

  • მარცხენა ჯოისტიკი აკონტროლებს მკლავის მოხრას მაღლა ან ქვევით
  • მარჯვენა ჯოისტიკი აკონტროლებს კლანჭს, რომ გახსნას ან დახუროს და დაატრიალოს კლანჭი მარცხნივ ან მარჯვნივ.

ნაბიჯი 11: კოდის ახსნა

PS2X Arduino ბიბლიოთეკის გამოყენება მარტივია, საჭიროა მხოლოდ ინიციალიზაცია, დაყენება და შემდეგ წაკითხვის ბრძანება.

თქვენი PS2 კონტროლერისთვის თქვენი Uno– სთან კავშირის დასაყენებლად, ქვემოთ მოცემულია პინები, რომლებიც უნდა განსაზღვროთ თქვენს კოდში:

/********************************************** ****************დააყენეთ ქინძისთავები დაკავშირებული PS2 კონტროლერთან:* - 1e სვეტი: ორიგინალი* - 2e სვეტი: Stef? *შეცვალეთ პინის ნომრები იმ ციფრებით, რომლებსაც იყენებთ **************************************** **********************/#განსაზღვრეთ PS2_DAT 13 // 14#განსაზღვრეთ PS2_CMD 11 // 15#განსაზღვრეთ PS2_SEL 10 // 16#განსაზღვრეთ PS2_CLK 12 // 17

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

/********************************************** **************** PS2 კონტროლერის რეჟიმების არჩევა:* - წნევა = ბიუსტჰალტერის ანალოგური კითხვა* - ხმაური = ძრავის ხმაური*თითოეული რეჟიმის შერჩევის ხაზების 1 კომენტარი ** ********************************************** ************* // //#განსაზღვრეთ წნევები ჭეშმარიტი#განსაზღვრეთ წნევები მცდარია //#განსაზღვრეთ ხმაური ჭეშმარიტი#განსაზღვრეთ ხმაური ყალბი

აქ ჩვენ განვსაზღვრეთ PS2 რეჟიმი ზეწოლისთვის და ხმაური, როგორც ყალბი. ჩვენ კომენტარი გავაკეთეთ ისეთებზე, რომლებსაც ჩვენ არ ვიყენებთ.

ჩვენ მხოლოდ Controller's Joystick ბრძანებით და L1- ით ვიყენებთ ჩვენი რობოტული მკლავის მოძრაობის გასაკონტროლებლად.

void loop () {/* თქვენ უნდა წაიკითხოთ Gamepad ახალი მნიშვნელობების მისაღებად და ვიბრაციის მნიშვნელობების დასადგენად ps2x.read_gamepad (მცირე საავტომობილო ჩართვა/გამორთვა, უფრო დიდი ძრავის სიმძლავრე 0-255-დან) თუ არ ჩართავთ ხმაურს, გამოიყენეთ ps2x.read_gamepad (); მნიშვნელობების გარეშე თქვენ უნდა დარეკოთ ამას სულ მცირე ერთხელ*/if (შეცდომა == 1) // გამოტოვეთ მარყუჟი, თუ კონტროლერმა ვერ იპოვა დაბრუნება; else {// DualShock Controller ps2x.read_gamepad (ყალბი, ვიბრაცია); // წაიკითხეთ კონტროლერი და დააყენეთ დიდი ძრავა დატრიალდეს "ვიბრაციის" სიჩქარით, თუ (ps2x. Button (PSB_START)) // იქნება TRUE სანამ ღილაკს დააჭერთ Serial.println ("დაწყება მიმდინარეობს"); if (ps2x. Button (PSB_SELECT)) Serial.println ("არჩევა მიმდინარეობს"); ვიბრაცია = ps2x. ანალოგი (PSAB_CROSS); // ეს დაადგენს დიდი ძრავის ვიბრაციის სიჩქარეს იმის მიხედვით, თუ რამდენად ძლიერად დააჭირეთ ლურჯ (X) ღილაკს, თუ (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// დაბეჭდეთ ჯოხის მნიშვნელობები, თუ რომელიმე არის TRUE RY_Value = ps2x. ანალოგი (PSS_RY); RX_Value = ps2x. ანალოგი (PSS_RX); LY_Value = ps2x. ანალოგი (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Stick Values:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

ქვემოთ მოყვანილი კოდი არის ის, სადაც ჩვენ ვაკოდირებთ ჩვენს სერვისებს, რომლებიც აკონტროლებენ ჩვენს რობოტულ მკლავს, რომელსაც ჩვენ ჩავრთავთ ფუნქციის ზარში ps2x.button (PSB_L1) || ps2x. ღილაკი (PSB_R1).

თქვენ უნდა დააჭიროთ ღილაკს L1 ან R1 ჯოისტიკთან ერთად, რომ გააკონტროლოთ თქვენი Robotic Arm.

მარცხენა ჯოისტიკის კონტროლის სერვისი 2 და 3 მკლავის ნაწილისთვის - აკონტროლეთ შესაბამისად მოხრილი მკლავი ზემოთ და ქვემოთ, ხოლო მარჯვენა ჯოისტიკი აკონტროლებს Robots Armw claw 0 და 1 გახსნას ან დახურვას და ბრუნვას მარცხნივ ან მარჯვნივ.

SERVO 0, 1 - კლანჭები SERVO 2, 3 - მკლავი

თქვენ შეგიძლიათ შეცვალოთ ღირებულებები ამ განყოფილებაში თქვენი რობოტული მკლავის კუთხის ხარისხის გასაკონტროლებლად:

pulselen0 = რუკა (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = რუკა (RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = რუკა (LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = რუკა (LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);

გირჩევთ: