Mündəricat:

Zio Modulları ilə Robotik Qol 2 -ci hissə: 11 addım
Zio Modulları ilə Robotik Qol 2 -ci hissə: 11 addım

Video: Zio Modulları ilə Robotik Qol 2 -ci hissə: 11 addım

Video: Zio Modulları ilə Robotik Qol 2 -ci hissə: 11 addım
Video: Нелогичная жизнь_Рассказ_Слушать 2024, Noyabr
Anonim
Zio Modulları ilə Robotik Qol 2 -ci hissə
Zio Modulları ilə Robotik Qol 2 -ci hissə

Bugünkü dərsdə, robot qolunu idarə etmək üçün bütün 4 servo və PS2 simsiz nəzarətçisindən istifadə edəcəyik.

Bu blog yazısı Zio Robotics Seriyasının bir hissəsidir.

Giriş

Əvvəlki blogumuzda, Zio modullarından istifadə edərək Robotik Qolun necə idarə olunacağına dair 1 -ci hissəni dərc etmişdik. 1 -ci hissə, əsasən açmaq və bağlamaq üçün Robotik Qol Pençənizi avtomatik idarə etməyə yönəlib.

Bugünkü dərsdə, Robotik Kolu idarə etmək üçün PS2 Simsiz idarəedicisini əlavə edərək bir az da inkişaf etdirəcəyik. Bu layihə üçün 4 servo istifadə edəcəyik.

Addım 1: Layihəyə Baxış

Çətinlik səviyyəsi:

Zio Padawan

Faydalı mənbələr:

Zio inkişaf lövhələrinin necə qurulacağına dair əsas anlayışa malik olmalısınız. Bu təlimatda, inkişaf lövhənizin artıq konfiqurasiya edildiyini və qurulmağa hazır olduğunu düşünürük. Lövhənizi hələ konfiqurasiya etməmisinizsə, başlamaq üçün aşağıdakı Zio Qwiic Başlanğıc Təlimatımıza baxın:

Zio Zuino M UNO Qwiic Başlanğıc Bələdçisi

Addım 2: sxemlər

Sxemalar
Sxemalar

Budur, Robotik Qol Part 2 Layihəsinin Kablolama Şemaları və kodlaşdırma hissənizi başa düşmək üçün lazım olan PS2 Controller diaqramı.

Addım 3: PS2 nəzarətçi diaqramı

PS2 nəzarətçi diaqramı
PS2 nəzarətçi diaqramı

Addım 4: Zio Modulları Bağlantısının Qurulması

Aşağıda Robot Kol ilə qurulacaq Zio modullarımızın əlaqəsi verilmişdir. Bütün modulları birləşdirmək olduqca asandır və qurulması 10 dəqiqədən çox olmayacaq.

Addım 5: Robot Arm Servo -nu Zio 16 Servo Controller -ə qoşun

Robot Arm Servo -nu Zio 16 Servo Controller -ə qoşun
Robot Arm Servo -nu Zio 16 Servo Controller -ə qoşun

Addım 6: 16 Servo -nuzu DC/DC Booster -a qoşun və 6.0V -ə qoyun

16 Servo -nuzu DC/DC Booster -a qoşun və 6.0V -ə qoyun
16 Servo -nuzu DC/DC Booster -a qoşun və 6.0V -ə qoyun

Batareya təchizatı gərginliyini 6.0 -a yüksəltmək və tənzimləmək üçün DC/DC Booster istifadə edirik.

6.0 əldə edənə qədər gərginliyi tənzimləmək üçün DC Booster üzərindəki potansiyometrdən istifadə edin. Ekranda 6.0 görünənə qədər Giriş/Çıxış düyməsini basıb saxlayın. Gərginliyi tənzimləmək üçün əvvəlcə DC/DC Booster -a güc (3.7V batareya) verməlisiniz.

Addım 7: Zuino M Uno -nu Zio 16 Servo Controller -ə qoşun

Zuino M Uno -nu Zio 16 Servo Controller -ə qoşun
Zuino M Uno -nu Zio 16 Servo Controller -ə qoşun

Qwiic, Zuino M Uno -nu qwiic kabeli ilə Zio Servo nəzarətçisinə bağlayır.

Addım 8: Uno -nu PS2 Alıcısına bağlayın

Uno -nu PS2 Alıcısına bağlayın
Uno -nu PS2 Alıcısına bağlayın

İşdə Bağlantıların Pin Diaqramı. Bu hissə üçün 5 Kişi -Dişi Jumper Telinə ehtiyacınız var.

Addım 9: Robotik Qol üçün Kod

PS2 Arduino Kitabxanasından istifadə edərək PS2 Simsiz Nəzarətçimizi Robot Qolumuzla işləmək üçün kodlaşdıracağıq. Bu Robotik Kol Part 2 layihəsinin mənbə kodunu Github səhifəmizdə tapa və yükləyə bilərsiniz.

Aşağıdakı kitabxanaları yükləyin və quraşdırın və yerli Arduino IDE kitabxana qovluğunda saxlayın:

  • Adafruit PWM Servo Sürücü Kitabxanası
  • PS2 Arduino kitabxanası

Kitabxanaları qurmaq üçün Arduino IDE -ni açın, Sketch sekmesine keçin, Kitabxanaya Daxil et -> Add. Zip Kitabxanasını seçin. IDE -yə daxil olmaq üçün yuxarıdakı kitabxanaları seçin.

Arduino, Arduino IDE -yə kitabxanaların necə qurulacağına dair lazımlı bir bələdçiyə malikdir. Onları burada yoxlayın!

Addım 10: Kodunuzu işə salın

Kodunuzu işə salın
Kodunuzu işə salın

Arduino IDE -ni açın. Fayllar> Nümunələr> PS2_Arduino_Library altında, PS2X_Servo seçin

Qeyd: Robot qolunuzu PS2 Controller ilə idarə etməzdən əvvəl aşağıdakı addımları yoxlayın: PS2 Controller -i yandırın. Mode LED -in yandığını yoxlayın. Əks təqdirdə nəzarətçinizdəki Mode düyməsini basın. Yuxarıda göstərilənləri etdikdən sonra nəzarətçi parametrlərinizi oxumaq üçün Zuino M Uno -da sıfırlama düyməsini basmalısınız. Robot Kolunuzu hərəkət etdirmək üçün L1 və Joystick düyməsini basmalısınız.

  • Sol Joystick qolun yuxarı və ya aşağı əyilməsini idarə edir
  • Sağ Joystick, pəncəni açmaq və ya bağlamaq, pəncəni sola və ya sağa çevirmək üçün idarə edir.

Addım 11: Kodun izahı

PS2X Arduino kitabxanasının istifadəsi sadədir, yalnız başlanğıc, quraşdırma və sonra oxumaq əmrini tələb edir.

Uno ilə PS2 Nəzarətçiniz üçün əlaqəni qurmaq üçün kodunuzda təyin etməli olduğunuz pinlər aşağıda verilmişdir:

/*********************************************** ****************PS2 nəzarətçisinə bağlı pinlər:* - 1e sütun: orijinal* - 2e sütun: Stef? *pin nömrələrini istifadə etdiyiniz nömrələrlə əvəz edin **************************************** **********************/#PS2_DAT 13 təyin edin // 14#PS2_CMD 11 təyin edin // 15#PS2_SEL 10 təyin edin // 16#PS2_CLK 12 təyin edin // 17

Pimləri, yuxarıdakı Pin Diaqramında göstərildiyi kimi Uno -ya qoşulmaq üçün istifadə etdiyimiz pinlərlə əvəz etdik.

/*********************************************** **************** PS2 nəzarətçisinin seçmə rejimləri:* - təzyiqlər = düymələrin analoq oxunması* - gurultu = motor gurultusu*hər bir rejim seçimi üçün sətirlərin 1 -ini qeyd etmə ** ************************************************ ************///#təzyiqləri doğru təyin edin#təzyiqləri yanlış təyin edin //#gurultu doğruunu təyin edin#gurultu yalanını təyin edin

Burada təzyiqlər və gurultu üçün PS2 rejimini yalan olaraq təyin etdik. İstifadə etmədiyimizi şərh etdik.

Robotik Qolumuzun hərəkətini idarə etmək üçün yalnız Controller -in Joystick əmrindən və L1 -dən istifadə edəcəyik.

void loop () {/* Yeni dəyərlər əldə etmək və vibrasiya dəyərlərini təyin etmək üçün Gamepad-ı oxumalısınız ps2x.read_gamepad (kiçik motoru açmaq/söndürmək, 0-255-dən daha böyük motor gücü) gurultunu aktiv etməsəniz ps2x.read_gamepad istifadə edin (); heç bir dəyər olmadan bunu saniyədə ən az bir dəfə çağırmalısınız*/if (səhv == 1) // heç bir nəzarətçi geri qayıtmadıqda döngəni atlayın; başqa {// DualShock Controller ps2x.read_gamepad (yalan, titrəmə); // idarəedicini oxuyun və böyük motoru 'titrəmə' sürətində döndərmək üçün ayarlayın (əgər ps2x. Button (PSB_START)) // düyməyə basıldıqca TRUE olacaq Serial.println ("Başlanğıc saxlanılır"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Seçim aparılır"); vibrasiya = ps2x. Analog (PSAB_CROSS); // bu, (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// DOĞRU RY_Value olarsa, çubuq dəyərlərini çap edin = ps2x. Analog (PSS_RY); RX_Value = ps2x. Analog (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Çubuq Dəyərləri:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

Aşağıdakı kod, ps2x.button (PSB_L1) altında funksiya çağırışına daxil etdiyimiz robot qolumuzu idarə edən servolarımızı kodlaşdırdığımız yerdir || ps2x.button (PSB_R1).

Robot qolunuzu idarə etmək üçün Joystick ilə birlikdə L1 və ya R1 düyməsini basmalısınız.

Sol hissə üçün Sol Joystick servo 2 və 3 - qolun yuxarı və aşağı əyilməsini idarə edir, Sağ Joystick isə Robot Kol Pençəsinin 0 və 1 servolarını açmaq və ya bağlamaq və sola və ya sağa çevirmək üçün idarə edir.

SERVO 0, 1 - Claw SERVO 2, 3 - Qol

Robotik Qol açınızın dərəcəsini idarə etmək üçün bu bölmədə dəyərlərə dəyişiklik edə bilərsiniz:

pulselen0 = xəritə (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = xəritə (RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = xəritə (LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = xəritə (LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);

Tövsiyə: