Мазмұны:

Zio модульдері бар робот қолы 2 бөлім: 11 қадам
Zio модульдері бар робот қолы 2 бөлім: 11 қадам

Бейне: Zio модульдері бар робот қолы 2 бөлім: 11 қадам

Бейне: Zio модульдері бар робот қолы 2 бөлім: 11 қадам
Бейне: Лучшие 15 часов Casio G Shock до $ 500 | Лучшие часы G-Shock ниже $ 500... 2024, Шілде
Anonim
Zio модульдері бар робот қолы 2 -бөлім
Zio модульдері бар робот қолы 2 -бөлім

Бүгінгі оқулықта біз робот қолын басқару үшін барлық 4 серво мен PS2 сымсыз контроллерін қолданамыз.

Бұл блог Zio Robotics сериясының бөлігі.

Кіріспе

Алдыңғы блогымызда біз Zio модульдерін қолдана отырып, роботтық қолды басқаруға арналған 1 -бөлім оқулығын орналастырдық. 1 -бөлім көбінесе сіздің робот қолыңыздың тырнағын ашуға және жабуға автоматты түрде басқаруға бағытталған.

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

1 -қадам: Жобаға шолу

Күрделілік деңгейі:

Зио Падаван

Пайдалы ресурстар:

Сіз Zio дамыту тақталарын қалай орнату керектігін білуіңіз керек. Бұл оқулықта біз сіздің даму тақтасы конфигурацияланған және орнатуға дайын деп есептейміз. Егер сіз тақтаны әлі конфигурацияламаған болсаңыз, бастау үшін төмендегі Zio Qwiic бастау нұсқаулығын оқыңыз.

Zio Zuino M UNO Qwiic бастау нұсқаулығы

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

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

Міне, роботтық қолдың 2 -бөлімінің сымдар схемасы, сонымен қатар сіздің кодтау бөлігін түсіну үшін қажет PS2 контроллерінің диаграммасы.

3 -қадам: PS2 контроллерінің диаграммасы

PS2 контроллерінің диаграммасы
PS2 контроллерінің диаграммасы

4 -қадам: Zio модульдерінің қосылымын орнату

Төменде 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 -қадам: 16 сервоңызды DC/DC күшейткішіне қосыңыз және оны 6.0 В -қа орнатыңыз

16 сервоңызды DC/DC күшейткішіне қосыңыз және оны 6.0 В кернеуіне қойыңыз
16 сервоңызды DC/DC күшейткішіне қосыңыз және оны 6.0 В кернеуіне қойыңыз

Біз аккумулятордың кернеуін 6.0 -ге дейін арттыру және реттеу үшін DC/DC Booster қолданамыз.

Тұрақты ток күшейткішіндегі потенциометрді қолданып, кернеуді 6.0 алғанға дейін реттеңіз. Кіріс/Шығу түймесін дисплейде 6.0 көрсетілгенше басыңыз. Кернеуді реттеу үшін алдымен DC/DC Booster құрылғысына қуат беру керек (3,7В батарея).

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 -ны qwiic кабелі арқылы Zio Servo контроллеріне қосады.

8 -қадам: Uno -ны PS2 қабылдағышына қосу

PS2 қабылдағышына Uno қосылу
PS2 қабылдағышына Uno қосылу

Міне, байланыстардың пин диаграммасы. Бұл бөлік үшін сізге ерлер мен әйелдер арасындағы 5 сым қажет.

9 -қадам: Роботтық қолдың коды

Біз PS2 Arduino кітапханасын PS2 сымсыз контроллерін роботтық қолмен жұмыс істеу үшін кодтау үшін қолданатын боламыз. Сіз бұл роботтық қолдың 2 -бөлімінің бастапқы кодын біздің Github бетінде таба және жүктей аласыз.

Келесі кітапханаларды жүктеңіз және орнатыңыз және оны жергілікті Arduino IDE кітапханалары қалтасына сақтаңыз:

  • Adafruit PWM сервистік драйвер кітапханасы
  • PS2 Arduino кітапханасы

Кітапханаларды орнату үшін Arduino IDE ашыңыз, эскиз қойындысына өтіңіз, Кітапхананы қосу -> Add. Zip кітапханасын таңдаңыз. 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 баған: түпнұсқа* - 2е колмун: Stef? *пин нөмірлерін сіз қолданатындарға ауыстырыңыз ************************************** **********************/#PS2_DAT 13 анықтаңыз // 14#PS2_CMD 11 // 15 анықтаңыз PS2_SEL 10 // 16#PS2_CLK 12 анықтаңыз // 17

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

/************************************************* **************** PS2 контроллерінің режимдерін таңдау:* - қысым = басу түймелерінің аналогты оқылуы* - шуыл = мотордың дыбысы*әр режимді таңдау үшін сызықтардың 1 -ін өшіру ** ************************************************ ************///#қысымды анықтайық

Мұнда біз қысым мен шу үшін PS2 режимін жалған деп анықтадық. Біз қолданбайтындарға түсініктеме бердік.

Біз роботтық қолымыздың қозғалысын басқару үшін Controller's Joystick командасын және L1 -ді қолданамыз.

void loop () {/* Сіз жаңа мәндерді алу және діріл мәндерін орнату үшін геймпадты оқуыңыз керек ps2x.read_gamepad (кіші қозғалтқышты қосу/өшіру, 0-255-тен үлкен қозғалтқыш күші), егер сіз шуылды қоспасаңыз, ps2x.read_gamepad пайдаланыңыз. (); мәндері жоқ Сіз мұны секундына кемінде бір рет шақыруыңыз керек*/if (error == 1) // егер контроллер қайтарылмаса, циклды өткізіп жіберіңіз; else {// DualShock контроллері ps2x.read_gamepad (жалған, діріл); // контроллерді оқыңыз және үлкен моторды «дірілдеу» жылдамдығында айналдыруды орнатыңыз, егер (ps2x. Button (PSB_START)) // түйме басылғанша TRUE болады, Serial.println («Старт ұсталып тұр»); if (ps2x. Button (PSB_SELECT)) Serial.println («Таңдау өткізілуде»); діріл = ps2x. Analog (PSAB_CROSS); // бұл үлкен мотор дірілінің жылдамдығын көк (X) батырмасын басуыңызға байланысты орнатады, егер = ps2x аналогы (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);

Төмендегі код - біз роботтық қолды басқаратын біздің сервистерді кодтайтын жерде, біз оларды ps2x.button (PSB_L1) астындағы функционалдық қоңырауға қосамыз || ps2x. түймесі (PSB_R1).

Робот қолды басқару үшін джойстикпен бірге L1 немесе R1 түймесін басу керек.

Қол бөлігінің 2 және 3 сол жақ джойстикті басқару сервалары - қолдың жоғары және төмен иілуін басқарады, ал Оң джойстик робот қолының тырнағының 0 және 1 сервосын ашады немесе жабады, солға немесе оңға бұрады.

SERVO 0, 1 - Claw 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);

Ұсынылған: