Mundarija:

Zio modulli robot qo'l 2 -qism: 11 qadam
Zio modulli robot qo'l 2 -qism: 11 qadam

Video: Zio modulli robot qo'l 2 -qism: 11 qadam

Video: Zio modulli robot qo'l 2 -qism: 11 qadam
Video: Робот на ESP32 с клешней 2024, Noyabr
Anonim
Zio modulli robot qo'l 2 -qism
Zio modulli robot qo'l 2 -qism

Bugungi darsda biz robot qo'lni boshqarish uchun barcha 4 ta servo va PS2 simsiz boshqaruvchisidan foydalanamiz.

Bu blog posti Zio Robotics seriyasining bir qismidir.

Kirish

Oldingi blogimizda biz Zio modullaridan foydalangan holda robotli qo'lni boshqarish bo'yicha 1 -darsni joylashtirdik. 1 -qism, asosan, robot qo'lingizning panjasini ochish va yopish uchun avtomatik boshqarishga qaratilgan.

Bugungi qo'llanmada biz Robotik qo'lni boshqarish uchun PS2 simsiz boshqaruvchisini qo'shib, buni biroz yaxshilaymiz. Ushbu loyiha uchun biz 4 ta servodan foydalanamiz.

1 -qadam: Loyihaning umumiy ko'rinishi

Qiyinchilik darajasi:

Zio Padavan

Foydali manbalar:

Siz Zio ishlab chiqarish taxtalarini o'rnatish haqida asosiy tushunchaga ega bo'lishingiz kerak. Ushbu qo'llanmada sizning ishlab chiqish paneli allaqachon sozlangan va o'rnatishga tayyor deb taxmin qilamiz. Agar siz hali taxtangizni konfiguratsiya qilmagan bo'lsangiz, boshlash uchun quyidagi Zio Qwiic Start Guide qo'llanmasini ko'rib chiqing:

Zio Zuino M UNO Qwiic Start Guide

2 -qadam: sxemalar

Sxemalar
Sxemalar

Bu erda "Robot Arm 2 Part 2" loyihasining simlari sxemasi, shuningdek sizning kodlash qismini tushunish uchun kerak bo'lgan PS2 Controller diagrammasi.

3 -qadam: PS2 nazoratchi diagrammasi

PS2 nazoratchi diagrammasi
PS2 nazoratchi diagrammasi

4 -qadam: Zio modullari ulanishini sozlash

Quyida Robot Arm bilan o'rnatiladigan Zio modullarimiz ulanishi ko'rsatilgan. Barcha modullarni bir -biriga ulash juda oson va ularni o'rnatish uchun 10 daqiqadan ko'proq vaqt ketmaydi.

5 -qadam: Robot Arm Servo -ni Zio 16 Servo Controller -ga ulang

Robot Arm Servo -ni Zio 16 Servo Controller -ga ulang
Robot Arm Servo -ni Zio 16 Servo Controller -ga ulang

6 -qadam: 16 Servo -ni DC/DC kuchaytirgichiga ulang va uni 6.0V ga o'rnating

16 ta Servo -ni DC/DC kuchaytirgichiga ulang va uni 6.0V ga o'rnating
16 ta Servo -ni DC/DC kuchaytirgichiga ulang va uni 6.0V ga o'rnating

Batareya quvvatlanishini 6,0 ga oshirish va sozlash uchun biz DC/DC kuchaytirgichidan foydalanamiz.

6.0 ga ega bo'lmaguningizcha kuchlanishni sozlash uchun shahar kuchaytirgichidagi potansiyometrdan foydalaning. Kirish/chiqish tugmachasini displeyda 6.0 ko'rsatilguncha bosing. Voltajni sozlash uchun avval DC/DC kuchaytirgichiga quvvat (3,7V batareya) etkazib berish kerak.

7 -qadam: Zuino M Uno -ni Zio 16 Servo Controller -ga ulang

Zuino M Uno -ni Zio 16 Servo Controller -ga ulang
Zuino M Uno -ni Zio 16 Servo Controller -ga ulang

Qwiic Zuino M Uno -ni qwiic kabeli bilan Zio Servo boshqaruvchisiga ulaydi.

8 -qadam: Uno -ni PS2 qabul qiluvchiga ulash

Uno -ni PS2 qabul qiluvchiga ulash
Uno -ni PS2 qabul qiluvchiga ulash

Bu erda ulanishlarning pin diagrammasi. Ushbu qism uchun sizga 5 ta erkak va ayol o'tish moslamalari kerak.

9 -qadam: Robotik qo'l kodi

Biz PS2 Arduino kutubxonasidan foydalanib, PS2 simsiz boshqaruvchisini robotli qo'l bilan ishlash uchun kodlaymiz. Siz ushbu Robotik Arm Part 2 loyihasining manba kodini Github sahifamizdan topishingiz va yuklab olishingiz mumkin.

Quyidagi kutubxonalarni yuklab oling va o'rnating va mahalliy Arduino IDE kutubxonalari papkasida saqlang:

  • Adafruit PWM Servo haydovchilar kutubxonasi
  • PS2 Arduino kutubxonasi

Kutubxonalarni o'rnatish uchun Arduino IDE -ni oching, Sketch yorlig'iga o'ting, Kutubxonani qo'shish -> Add. Zip kutubxonasini tanlang. IDE -ga qo'shiladigan yuqoridagi kutubxonalarni tanlang.

Arduino -da kutubxonalarni Arduino IDE -ga o'rnatish bo'yicha qo'llanma mavjud. Ularni bu erda tekshiring!

10 -qadam: Kodni ishga tushiring

Kodingizni ishga tushiring
Kodingizni ishga tushiring

Arduino IDE -ni oching. Fayllar> Misollar> PS2_Arduino_Library ostida PS2X_Servo -ni tanlang

Eslatma: Robotli qo'lingizni PS2 boshqaruvchisi bilan boshqarishdan oldin quyidagi amallarni bajaring: PS2 boshqaruvchisini yoqing. Mode LEDining yonishini tekshiring. Agar shunday bo'lmasa, tekshirgichingizdagi Mode tugmasini bosing. Yuqoridagi amallarni bajarganingizdan so'ng, Zuino M Uno -dagi sozlamalar sozlamalarini o'qish uchun reset tugmasini bosishingiz kerak. Robot qo'lini harakatlantirish uchun L1 va Joystick tugmalarini bosish kerak.

  • Chap Joystick qo'lning yuqoriga yoki pastga egilishini nazorat qiladi
  • O'ng Joystick panjani ochish yoki yopish va chap yoki o'ngga burish uchun boshqaradi.

11 -qadam: Kodni tushuntirish

PS2X Arduino kutubxonasidan foydalanish oddiy, faqat ishga tushirish, sozlash va keyin o'qish buyrug'ini talab qiladi.

PS2 Controller -ga Uno -ga ulanishni o'rnatish uchun siz quyidagi kodni belgilashingiz kerak bo'ladi.

/*********************************************** ****************PS2 kontrolleriga ulangan pinlar:* - 1e ustun: original* - 2e kolmun: Stef? *PIN raqamlarini ishlatilgan raqamlar bilan almashtiring ************************************** **********************/#PS2_DAT 13 ni aniqlang // 14#belgilang PS2_CMD 11 // 15#belgilang PS2_SEL 10 // 16#PS2_CLK 12 ni aniqlang // 17

Biz pinlarni yuqoridagi Pin diagrammasida ko'rsatilgan Uno -ga ulanish uchun ishlatiladigan pinlar bilan almashtirdik.

/*********************************************** **************** PS2 tekshirgichining rejimlarini tanlang:* - bosim = tugmachalarning analog o'qilishi* - shovqin = motor shovqini*har bir rejim tanlash uchun satrlarning 1 tasini yozmang ** ************************************************ ************///#bosimni aniqlang#bosimni aniqlang //

Bu erda biz bosim va shovqin uchun PS2 rejimini noto'g'ri deb aniqladik. Biz foydalanmaydiganlarni sharhladik.

Biz robot qo'limizning harakatini nazorat qilish uchun faqat Controller's Joystick buyrug'i va L1 -dan foydalanamiz.

void loop () {/* Siz yangi qiymatlarni olish va tebranish qiymatlarini o'rnatish uchun Gamepad-ni o'qishingiz kerak ps2x.read_gamepad (kichik motorni yoqish/o'chirish, 0-255 gacha katta motor kuchi), agar siz shovqinni yoqmasangiz, ps2x.read_gamepad-dan foydalaning. (); hech qanday qiymatsiz, buni hech bo'lmasa sekundiga bir marta chaqirishingiz kerak*/if (xato == 1) // agar tekshiruvchi qaytmasa, loopni o'tkazib yuboring; boshqa {// DualShock Controller ps2x.read_gamepad (noto'g'ri, tebranish); // tekshirgichni o'qing va katta dvigatelni "tebranish" tezligida aylantiring, agar (ps2x. Button (PSB_START)) // tugma bosilsa TRUE bo'ladi Serial.println ("Boshlash ushlab turiladi"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Tanlov o'tkazilmoqda"); tebranish = ps2x. Analog (PSAB_CROSS); // bu katta dvigatelning tebranish tezligini ko'k (X) tugmasini qanchalik bosganingizga qarab belgilaydi, agar (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// agar TRUE RY_Value bo'lsa, tayoq qiymatlarini chop eting. = ps2x. Analog (PSS_RY); RX_Value = ps2x. Analog (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Stick qiymatlari:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

Quyidagi kod - biz ps2x.button (PSB_L1) ostida chaqiruvni o'z ichiga olgan robot qo'limizni boshqaradigan servolarimizni kodlash joyi. | ps2x tugmasi (PSB_R1).

Robot qo'lini boshqarish uchun siz Loy yoki R1 tugmachasini Joystick bilan birga bosishingiz kerak.

Qo'l qismi uchun Chap Joystik 2 va 3 servolari - qo'lning yuqoriga va pastga egilishini boshqaradi, O'ng Joystik esa Robot qo'l panjasining 0 va 1 servolarini ochadi, yopadi va chapga yoki o'ngga aylantiradi.

SERVO 0, 1 - tirnoq SERVO 2, 3 - qo'l

Robotik qo'l burchagi darajasini nazorat qilish uchun siz ushbu bo'limdagi qiymatlarni o'zgartirishingiz mumkin:

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

Tavsiya: