Съдържание:

Роботизирана ръка с модули Zio Част 2: 11 стъпки
Роботизирана ръка с модули Zio Част 2: 11 стъпки

Видео: Роботизирана ръка с модули Zio Част 2: 11 стъпки

Видео: Роботизирана ръка с модули Zio Част 2: 11 стъпки
Видео: Makeblock Untimate Robot Kit Part 2 : Robtic Arm Explaine, Software, Code App and Having Fun demo 2024, Ноември
Anonim
Роботизирана ръка с модули Zio, част 2
Роботизирана ръка с модули Zio, част 2

В днешния урок ще използваме всичките 4 сервомотора и безжичен контролер PS2 за управление на роботизираната ръка.

Тази публикация в блога е част от Zio Robotics Series.

Въведение

В предишния си блог публикувахме урок Част 1 за това как да управляваме роботизирана ръка с помощта на модули Zio. Част 1 се концентрира най -вече върху автоматичното управление на ноктите на вашата роботизирана ръка за отваряне и затваряне.

В днешния урок ще го направим малко, като включим безжичен контролер PS2 за управление на роботизираната ръка. За този проект ще използваме 4 серво.

Стъпка 1: Преглед на проекта

Ниво на трудност:

Зио Падаван

Полезни ресурси:

Трябва да имате основно разбиране за това как да инсталирате дъските за разработка на Zio. В този урок приемаме, че вашата платка за разработка вече е конфигурирана и е готова за настройка. Ако все още не сте конфигурирали дъската си, разгледайте нашия урок за стартиране на Zio Qwiic по -долу, за да започнете:

Zio Zuino M UNO Qwiic Начално ръководство

Стъпка 2: Схеми

Схеми
Схеми

Ето схемата на окабеляване на проекта Robotic Arm Part 2, както и схемата на PS2 контролера, необходима за разбиране за вашата кодираща част.

Стъпка 3: Диаграма на контролера на PS2

Схема на контролера за PS2
Схема на контролера за PS2

Стъпка 4: Настройка на връзката с модули Zio

По -долу е връзката на нашите модули Zio, които ще бъдат настроени с роботизираната ръка. Свързването на всички модули заедно е доста лесно и няма да отнеме повече от 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 Servo към DC/DC Booster и го настройте на 6.0V

Свържете вашия 16 Servo към DC/DC Booster и го настройте на 6.0V
Свържете вашия 16 Servo към DC/DC Booster и го настройте на 6.0V

Използваме DC/DC Booster за усилване и регулиране на захранващото напрежение на батерията до 6,0.

Използвайте потенциометъра на DC Booster, за да регулирате напрежението, докато получите 6.0. Натискайте бутона In/Out, докато на дисплея се покаже 6.0. Трябва първо да захранвате (3.7V батерия) към вашия DC/DC Booster, за да регулирате напрежението.

Стъпка 7: Свържете Zuino M Uno към серво контролера Zio 16

Свържете Zuino M Uno към серво контролера Zio 16
Свържете Zuino M Uno към серво контролера Zio 16

Qwiic свържете Zuino M Uno към Zio Servo контролера с qwiic кабел.

Стъпка 8: Свързване на Uno към PS2 приемника

Свързване на Uno към PS2 приемник
Свързване на Uno към PS2 приемник

Ето щифтова диаграма на връзките. За тази част се нуждаете от 5 проводника от мъжки към женски.

Стъпка 9: Код за роботизирана ръка

Ще използваме библиотеката PS2 Arduino, за да кодираме нашия безжичен контролер PS2 за работа с нашата роботизирана ръка. Можете да намерите и изтеглите изходния код за този проект Robotic Arm Part 2 на нашата страница Github.

Изтеглете и инсталирайте следните библиотеки и ги запазете във вашата локална библиотека на Arduino IDE библиотеки:

  • Библиотека за серво драйвери на Adafruit PWM
  • Библиотека PS2 Arduino

За да инсталирате библиотеките, отворете вашата Arduino IDE, отидете в раздела Sketch, изберете Include Library -> Add. Zip Library. Изберете горните библиотеки, които да бъдат включени във вашата IDE.

Arduino има удобно ръководство за това как да инсталирате библиотеки към вашата Arduino IDE. Вижте ги тук!

Стъпка 10: Изпълнете вашия код

Изпълнете вашия код
Изпълнете вашия код

Отворете Arduino IDE. Под Файлове> Примери> PS2_Arduino_Library изберете PS2X_Servo

Забележка: Преди да можете да управлявате вашата роботизирана ръка с PS2 контролера, проверете следните стъпки: Включете вашия PS2 контролер. Проверете дали светодиодът за режим свети. Ако това не стане, натиснете бутона Mode на вашия контролер. След като направите горното, трябва да натиснете бутона за нулиране на вашия Zuino M Uno, за да прочете настройките на вашия контролер. Трябва да натиснете L1 и джойстика, за да преместите роботизираната си ръка.

  • Лявият джойстик контролира огъването на ръката нагоре или надолу
  • Десният джойстик контролира нокътя или да отваря или затваря и да завърта нокътя наляво или надясно.

Стъпка 11: Обяснение на кода

Използването на библиотеката PS2X Arduino е просто, изисква само инициализация, настройка и след това команда за четене.

За да настроите връзката за вашия PS2 контролер с вашия Uno, по -долу са изводите, които трябва да дефинирате във вашия код:

/************************************************* ****************задайте щифтове, свързани към PS2 контролера:* - 1e колона: оригинална* - 2e colmun: Stef? *заменете пиновите номера с тези, които използвате **************************************** **********************/#определи PS2_DAT 13 // 14#дефинирай PS2_CMD 11 // 15#дефинирай PS2_SEL 10 // 16#дефинирай PS2_CLK 12 // 17

Заменихме щифтовете с тези, които използваме за свързване към нашия Uno, както е посочено на диаграмата Pin.

/************************************************* ************ ************************************************** ************///#дефиниране на налягането true#дефиниране на налягането false //#дефиниране на rumble true#дефиниране на rumble false

Тук дефинирахме PS2 режим за натиск и бучене като невярно. Коментирахме тези, които не използваме.

Ще използваме само командата на джойстика на контролера и L1, за да контролираме движението на нашата роботизирана ръка.

void loop () {/* Трябва да прочетете Gamepad, за да получите нови стойности и да зададете стойности на вибрации ps2x.read_gamepad (малък мотор за включване/изключване, по-голяма сила на двигателя от 0-255), ако не активирате грохота, използвайте ps2x.read_gamepad (); без стойности Трябва да извикате това поне веднъж в секунда*/if (грешка == 1) // пропускане на цикъл, ако не е намерен контролер връщане; else {// DualShock Controller ps2x.read_gamepad (невярно, вибрира); // прочетете контролера и настройте големия двигател да се върти със скорост на „вибрация“, ако (ps2x. Button (PSB_START)) // ще бъде ИСТИНА, стига бутонът да е натиснат Serial.println ("Стартът се задържа"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Избирането се задържа"); вибрация = ps2x. Analog (PSAB_CROSS); // това ще зададе голямата скорост на вибриране на двигателя в зависимост от това колко силно натискате синия бутон (X), ако (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// стойностите на щампата за печат, ако някоя от тях е TRUE RY_Value = ps2x. Analog (PSS_RY); RX_Value = ps2x. Analog (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Стойности на стика:"); 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 заедно с джойстика, за да управлявате вашата роботизирана ръка.

Левият джойстик управлява сервомоторите 2 и 3 за частта на ръката - контролират съответно огъването нагоре и надолу на ръката, докато десният джойстик управлява сервомоторите 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);

Препоръчано: