Мазмуну:

Zio Modules менен роботтук кол 2 -бөлүк: 11 кадам
Zio Modules менен роботтук кол 2 -бөлүк: 11 кадам

Video: Zio Modules менен роботтук кол 2 -бөлүк: 11 кадам

Video: Zio Modules менен роботтук кол 2 -бөлүк: 11 кадам
Video: Как управлять двигателями постоянного тока с помощью ESP32 и L298N через Wi-Fi 2024, Июль
Anonim
Zio модулдары бар роботтук кол 2 -бөлүк
Zio модулдары бар роботтук кол 2 -бөлүк

Бүгүнкү окуу куралында, биз робот колун башкаруу үчүн бардык 4 сервосун жана PS2 зымсыз контроллерин колдонобуз.

Бул блог посту Zio Robotics сериясынын бир бөлүгү.

Киришүү

Мурунку блогубузда, биз Zio модулдарын колдонуп робот колун кантип башкарууга болорун үйрөткөн 1 -бөлүктү жайгаштырганбыз. 1 -бөлүк негизинен робот колуңуздун тырмагын автоматтык түрдө башкарууга багытталган жана ачылат.

Бүгүнкү окуу куралыбызда, биз робот колун башкарууга PS2 зымсыз контроллерин кошуп, бир аз жакшыртабыз. Бул долбоор үчүн биз 4 сервону колдонобуз.

1 -кадам: Долбоорго сереп

Кыйынчылык деңгээли:

Зио Падаван

Пайдалуу булактар:

Сиз Zio өнүктүрүү такталарын орнотуу боюнча негизги түшүнүккө ээ болушуңуз керек. Бул окуу куралы, биз сиздин өнүктүрүү тактасы мурунтан эле конфигурацияланган жана орнотууга даяр деп ойлойбуз. Эгерде сиз тактаңызды конфигурациялай элек болсоңуз, анда баштоо үчүн төмөнкү Zio Qwiic Start Guide окуу куралыбызды карап көрүңүз:

Zio Zuino M UNO Qwiic Start Guide

2 -кадам: схемалар

Схемалар
Схемалар

Бул жерде роботтоштурулган куралдын 2 -бөлүкчөсүнүн схемалары, ошондой эле коддоо бөлүгүн түшүнүү үчүн керектүү болгон PS2 контроллеринин диаграммасы.

3 -кадам: PS2 Controller диаграммасы

PS2 Controller диаграммасы
PS2 Controller диаграммасы

4 -кадам: Zio Modules туташуусун орнотуу

Төмөндө Robot Arm менен орнотула турган Zio модулдарыбыздын байланышы келтирилген. Бардык модулдарды бириктирүү абдан оңой жана орнотууга 10 мүнөттөн ашык убакыт кетпейт.

5 -кадам: Robot Arm Servo кызматын Zio 16 Servo Controller менен туташтырыңыз

Robot Arm Servo Zio 16 Servo Controller менен туташтырыңыз
Robot Arm Servo Zio 16 Servo Controller менен туташтырыңыз

6 -кадам: DC/DC Booster'ге 16 Сервону туташтырып, аны 6.0Вге коюңуз

16 Сервону DC/DC Booster'ге туташтырып, аны 6.0Vге коюңуз
16 Сервону DC/DC Booster'ге туташтырып, аны 6.0Vге коюңуз

Биз DC/DC Booster'ди колдонобуз жана батареянын кубаттуулугун 6.0ге чейин тууралайбыз.

DC Boosterдеги потенциометрди колдонуп, чыңалууңузду 6.0 алганга чейин тууралаңыз. Кирүү/Чыкуу баскычын дисплейде 6.0 көрүнгөнгө чейин басыңыз. Чыңалууну тууралоо үчүн биринчи кезекте DC/DC Booster'иңизге кубат берүү керек (3.7V батарея).

7 -кадам: Zuino M Uno Zio 16 Servo Controller менен туташыңыз

Zuino M Uno Zio 16 Servo Controller менен туташыңыз
Zuino M Uno Zio 16 Servo Controller менен туташыңыз

Qwiic Zuino M Uno Zw Servo контроллерине qwiic кабели менен туташат.

8 -кадам: PS2 алуучуга Uno туташуу

PS2 алуучусуна Uno туташуу
PS2 алуучусуна Uno туташуу

Бул жерде туташуулардын пин диаграммасы. Бул бөлүк үчүн сизге 5 Эркектен Аялга секирүүчү зымдар керек.

9 -кадам: Роботтук кол үчүн код

Биз PS2 Arduino китепканасын PS2 зымсыз контроллерибизди роботтук колубуз менен иштөө үчүн коддоо үчүн колдонобуз. Сиз таба аласыз жана бул Robotic Arm Part 2 долбоорунун баштапкы кодун биздин Github баракчабыздан жүктөп алсаңыз болот.

Төмөнкү китепканаларды жүктөп алып, жергиликтүү Arduino IDE китепканалар папкасына сактаңыз:

  • Adafruit PWM Servo Driver Library
  • PS2 Arduino китепканасы

Китепканаларды орнотуу үчүн Arduino IDE ачыңыз, Sketch өтмөгүнө өтүңүз, Китепкананы кошуу -> Add. Zip китепканасын тандаңыз. Сиздин IDEге киргизиле турган жогорудагы китепканаларды тандаңыз.

Arduino китепканаларын Arduino IDEге кантип орнотуу керектиги боюнча колдо бар. Аларды бул жерден текшериңиз!

10 -кадам: Кодуңузду иштетиңиз

Сиздин кодду иштетүү
Сиздин кодду иштетүү

Arduino IDE ачуу. Файлдар> Мисалдар> PS2_Arduino_Library астында PS2X_Servo тандаңыз

Эскертүү: PS2 Controller менен робот колуңузду башкараардан мурун төмөнкү кадамдарды текшериңиз: PS2 Controller'иңизди күйгүзүңүз. Режимдин LED күйүп турганын текшериңиз. Эгер андай болбосо, контроллериңиздеги Mode баскычын басыңыз. Жогорудагыларды кылгандан кийин, контролердин жөндөөлөрүн окуу үчүн Zuino M Unoдогу баштапкы абалга келтирүү баскычын басуу керек. Робот колуңузду жылдыруу үчүн L1 жана Джойстикти басыңыз.

  • Сол Джойстик колдун өйдө же ылдый ийилишин көзөмөлдөйт
  • Оң джойстик тырмакты ачууну же жабууну жана тырмакты солго же оңго бурууну көзөмөлдөйт.

11 -кадам: Коддун түшүндүрмөсү

PS2X Arduino китепканасын колдонуу жөнөкөй, инициализацияны, орнотууну, анан окуу буйругун талап кылат.

PS2 Controller'иңизге Uno менен туташуу үчүн, төмөндө кодуңузда аныктоо керек болгон казыктар бар:

/*********************************************** ****************PS2 контроллерине туташтырылган казыктар:* - 1e мамыча: оригинал* - 2e колмун: Stef? *пин номерлерин сиз колдонгондорго алмаштырыңыз ************************************** **********************/#аныктоо PS2_DAT 13 // 14#аныктоо PS2_CMD 11 // 15#аныктоо PS2_SEL 10 // 16#аныктоо PS2_CLK 12 // 17

Биз төөнөгүчтөрдү жогорудагы пин диаграммада көрсөтүлгөндөй Uno менен туташуу үчүн колдонгондорго алмаштырдык.

/*********************************************** **************** PS2 контроллеринин режимдерин тандаңыз:* - басым = баскычтардын аналогдук окулушу* - шуулдоо = мотордун шуулдаганы*ар бир режимди тандоо үчүн линиялардын бирин комментарийлебе ** ************************************************ ************///#басымдын аныктыгын#кысымдын туура эместигин аныкта

Бул жерде биз PS2 режимин кысым жана ызылдоо үчүн жалган деп аныктадык. Биз колдонбогондорго комментарий бердик.

Биз робот колубуздун кыймылын көзөмөлдөө үчүн контролердин джойстик командасын жана L1ди гана колдонобуз.

void loop () {/* Сиз жаңы баалуулуктарды алуу жана вибрация маанилерин орнотуу үчүн Gamepadти окушуңуз керек ps2x.read_gamepad (кичинекей моторду күйгүзүү/өчүрүү, 0-255тен чоңураак мотор күчү), эгер сиз ызы-чууну иштетпесеңиз, ps2x.read_gamepad колдонуңуз (); эч кандай мааниси жок Сиз муну жок дегенде секундасына бир жолу чакырышыңыз керек*/if (error == 1) // эч кандай контролер кайтып келбесе, циклди өткөрүп жиберүү; else {// DualShock Controller ps2x.read_gamepad (жалган, дирилдөө); // контроллерди окуңуз жана чоң моторду "вибрация" ылдамдыгында айландырыңыз, эгерде (ps2x. Button (PSB_START)) // баскыч басылса, TRUE болот 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 ("Stick баалуулуктары:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

Төмөндөгү код, биз роботтук колубузду башкарган биздин servoлорду коддойбуз, биз аларды ps2x.button (PSB_L1) астындагы функционалдык чалууга киргизебиз || ps2x.button (PSB_R1).

Робот колуңузду башкаруу үчүн L1 же R1 баскычын Джойстик менен бирге басууңуз керек.

Кол джойстиктин 2 жана 3 колунун бөлүгү - колдун өйдө жана ылдый ийилүүсүн көзөмөлдөйт, ал эми оң джойстик робот колунун тырмакчасынын 0 жана 1 серволорун ачуу же жабуу, солго же оңго бурууну көзөмөлдөйт.

SERVO 0, 1 - Claw SERVO 2, 3 - Кол

Бул бөлүмдөгү баалуулуктарга Robotic Arm бурчуңуздун деңгээлин көзөмөлдөө үчүн өзгөртүүлөрдү киргизе аласыз:

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);

Сунушталууда: