Cuprins:

Braț robotizat cu module Zio Partea 2: 11 pași
Braț robotizat cu module Zio Partea 2: 11 pași

Video: Braț robotizat cu module Zio Partea 2: 11 pași

Video: Braț robotizat cu module Zio Partea 2: 11 pași
Video: Trucul pentru a face o persoana sa se îndragosteasca de tine 2024, Noiembrie
Anonim
Braț robotizat cu module Zio partea 2
Braț robotizat cu module Zio partea 2

În tutorialul de astăzi, vom utiliza toate cele 4 servouri și un controler wireless PS2 pentru a controla brațul robotizat.

Această postare de blog face parte din seria Zio Robotics.

Introducere

În blogul nostru anterior, am postat partea 1 tutorial despre cum să controlați un braț robotizat utilizând modulele Zio. Partea 1 se concentra în cea mai mare parte pe controlul automat al ghearelor brațului robotic pentru a se deschide și închide.

În tutorialul de astăzi, îl vom crește puțin prin includerea unui controler wireless PS2 pentru a controla brațul robotizat. Pentru acest proiect, vom folosi 4 servouri.

Pasul 1: Prezentare generală a proiectului

Nivel de dificultate:

Zio Padawan

Resurse utile:

Ar trebui să aveți o înțelegere de bază despre cum să instalați plăcile de dezvoltare Zio. În acest tutorial, presupunem că placa dvs. de dezvoltare este deja configurată și este gata de configurare. Dacă nu ați configurat încă placa dvs., consultați mai jos tutorialul nostru Zio Qwiic Start Guide pentru a începe:

Zio Zuino M UNO Qwiic Start Guide

Pasul 2: Scheme

Scheme
Scheme

Iată schemele de cablare ale proiectului Robotic Arm Part 2, precum și diagrama controlerului PS2 necesară pentru a înțelege partea de codare.

Pasul 3: Diagrama controlerului PS2

Diagrama controlerului PS2
Diagrama controlerului PS2

Pasul 4: Configurarea conexiunii modulelor Zio

Mai jos este conexiunea modulelor noastre Zio care urmează să fie configurate cu brațul robotizat. Conectarea tuturor modulelor împreună este destul de ușoară și nu va dura mai mult de 10 minute pentru a configura.

Pasul 5: Conectați robotul braț servo la controlerul servo Zio 16

Conectați robotul brațului servo la controlerul servo Zio 16
Conectați robotul brațului servo la controlerul servo Zio 16

Pasul 6: Conectați-vă 16 Servo la DC / DC Booster și setați-l la 6,0V

Conectați-vă 16 Servo la DC / DC Booster și setați-l la 6,0V
Conectați-vă 16 Servo la DC / DC Booster și setați-l la 6,0V

Folosim un Booster DC / DC pentru a crește și regla tensiunea de alimentare a bateriei la 6,0.

Folosiți potențiometrul de pe DC Booster pentru a regla tensiunea până când obțineți 6,0. Apăsați butonul In / Out până când pe afișaj apare 6.0. Pentru a regla tensiunea, trebuie să furnizați mai întâi energie (baterie de 3,7 V) la amplificatorul DC / DC.

Pasul 7: Conectați Zuino M Uno la controlerul servo Zio 16

Conectați Zuino M Uno la controlerul servo Zio 16
Conectați Zuino M Uno la controlerul servo Zio 16

Qwiic conectați Zuino M Uno la controlerul Zio Servo cu cablu qwiic.

Pasul 8: Conectarea Uno la receptorul PS2

Conectarea Uno la receptorul PS2
Conectarea Uno la receptorul PS2

Iată o diagramă Pin a conexiunilor. Aveți nevoie de 5 fire jumper pentru bărbați până la femei pentru această parte.

Pasul 9: Cod pentru brațul robotizat

Vom folosi biblioteca Arduino PS2 pentru a codifica controlerul nostru wireless PS2 pentru a lucra cu brațul nostru robotizat. Puteți găsi și descărca codul sursă pentru acest proiect Robotic Arm Part 2 pe pagina noastră Github.

Descărcați și instalați următoarele biblioteci și salvați-le în folderul local Arduino IDE biblioteci:

  • Biblioteca de drivere servo Adafruit PWM
  • Biblioteca Arduino PS2

Pentru a instala bibliotecile, deschideți ID-ul dvs. Arduino, accesați fila Sketch, selectați Includeți biblioteca -> Adăugați biblioteca Zip. Selectați bibliotecile de mai sus pentru a fi incluse în IDE.

Arduino are un ghid la îndemână despre cum să instalați biblioteci pe ID-ul dvs. Arduino. Verificați-le aici!

Pasul 10: Rulați codul

Rulați codul
Rulați codul

Deschideți Arduino IDE. Sub Fișiere> Exemple> PS2_Arduino_Library, selectați PS2X_Servo

Notă: Înainte de a vă putea controla brațul robotizat cu controlerul PS2, verificați următorii pași: Porniți controlerul PS2. Verificați dacă LED-ul Mode se aprinde. În caz contrar, apăsați butonul Mode de pe controler. După ce ați făcut cele de mai sus, trebuie să apăsați butonul de resetare de pe Zuino M Uno pentru ca acesta să citească setările controlerului. Trebuie să apăsați L1 și joystick-ul pentru a vă deplasa brațul robotizat.

  • Joystick-ul stânga controlează îndoirea brațului în sus sau în jos
  • Joystick-ul din dreapta controlează gheara pentru a se deschide sau închide și rotind gheara spre stânga sau spre dreapta.

Pasul 11: Explicarea codului

Utilizarea bibliotecii Arduino PS2X este simplă, necesitând doar o inițializare, o configurare și apoi o comandă de citire.

Pentru a seta conexiunea pentru controlerul PS2 cu Uno, mai jos sunt pinii pe care trebuie să îi definiți în cod:

/ ************************************************** *************** * setează pinii conectați la controlerul PS2: * - 1e coloană: original * - 2e colmun: Stef? * înlocuiți numerele PIN cu cele pe care le utilizați ******************************************* ********************** / # define PS2_DAT 13 // 14 #define PS2_CMD 11 // 15 # define PS2_SEL 10 // 16 # define PS2_CLK 12 // 17

Am înlocuit pinii cu cei pe care îi folosim pentru a ne conecta la Uno, așa cum este prezentat în Diagrama Pin de mai sus.

/ ************************************************** **************** selectați modurile controlerului PS2: * - presiuni = citire analogică a butoanelor push * - ronțăit = ronțăit motor * descomentați 1 dintre liniile pentru fiecare selecție de mod ** *************************************************** ************ / // # define presions true # define presions false // # define rumble true # define rumble false

Aici am definit modul PS2 pentru presiuni și rumble ca fiind fals. Le-am comentat pe cele pe care nu le folosim.

Vom folosi doar comanda Joystick a controlerului și L1 pentru a controla mișcarea brațului nostru robotizat.

void loop () {/ * Trebuie să citiți Gamepad pentru a obține valori noi și pentru a seta valorile vibrațiilor ps2x.read_gamepad (motor mic pornit / oprit, putere mai mare a motorului de la 0 la 255) dacă nu activați zgomotul, utilizați ps2x.read_gamepad (); fără valori Ar trebui să o apelați cel puțin o dată pe secundă * / if (eroare == 1) // skip loop dacă nu a fost găsit niciun controler; else {// DualShock Controller ps2x.read_gamepad (fals, vibrează); // citiți controlerul și setați motorul mare să se învârtă la viteza „vibrați” dacă (ps2x. Button (PSB_START)) // va fi ADEVĂRAT atâta timp cât este apăsat butonul Serial.println („Start este ținut”); if (ps2x. Button (PSB_SELECT)) Serial.println ("Selectarea este în așteptare"); vibrează = ps2x. Analog (PSAB_CROSS); // aceasta va seta viteza mare de vibrație a motorului în funcție de cât de tare apăsați butonul albastru (X) dacă (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// tipăriți valorile stickului dacă oricare este 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 Values:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

Codul de mai jos este locul în care codificăm serviciile noastre care ne controlează brațul robotizat pe care le includem în apelul de funcție sub ps2x.button (PSB_L1) || butonul ps2x. (PSB_R1).

Trebuie să apăsați butonul L1 sau R1 împreună cu joystick-ul pentru a vă controla brațul robotizat.

Joystick-ul stânga controlează servomotoarele 2 și 3 pentru partea brațului - controlează îndoirea în sus și în jos a brațului, în timp ce joystick-ul drept controlează servomotoarele 0 și 1 din gheara brațului robotizat pentru a se deschide sau închide și pentru a se roti la stânga sau la dreapta.

SERVO 0, 1 - Gheara SERVO 2, 3 - Arm

Puteți aduce modificări valorilor în această secțiune pentru a controla gradul unghiului brațului robotizat:

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

Recomandat: