Sadržaj:

Robotska ruka sa Zio modulima 2. dio: 11 koraka
Robotska ruka sa Zio modulima 2. dio: 11 koraka

Video: Robotska ruka sa Zio modulima 2. dio: 11 koraka

Video: Robotska ruka sa Zio modulima 2. dio: 11 koraka
Video: Five Amazing Humanoid Encounters 2024, Studeni
Anonim
Robotska ruka sa Zio modulima 2. dio
Robotska ruka sa Zio modulima 2. dio

U današnjem vodiču koristit ćemo sva 4 servo servera i PS2 bežični kontroler za upravljanje robotskom rukom.

Ovaj blog je dio Zio Robotics serije.

Uvod

U našem smo prethodnom blogu objavili 1. dio vodiča o tome kako upravljati robotskom rukom pomoću Zio modula. Dio 1 uglavnom se koncentrirao na automatsko upravljanje otvaranjem i zatvaranjem kandže robotske ruke.

U današnjem vodiču ćemo to malo poboljšati uključivanjem bežičnog kontrolera PS2 za upravljanje robotskom rukom. Za ovaj projekt koristit ćemo 4 serva.

Korak 1: Pregled projekta

Razina težine:

Zio Padawan

Korisni izvori:

Trebali biste imati osnovno razumijevanje o tome kako instalirati razvojne ploče Zio. U ovom vodiču pretpostavljamo da je vaša razvojna ploča već konfigurirana i spremna za postavljanje. Ako još niste konfigurirali ploču, za početak pogledajte naš vodič Vodič za Zio Qwiic ispod:

Zio Zuino M UNO Qwiic Vodič za početak

Korak 2: Sheme

Sheme
Sheme

Ovdje su sheme ožičenja projekta Robotic Arm Part 2, kao i dijagram PS2 kontrolera koji su potrebni za razumijevanje vašeg kodiranja.

Korak 3: Dijagram kontrolera PS2

Dijagram kontrolera PS2
Dijagram kontrolera PS2

Korak 4: Postavljanje povezivanja Zio modula

Dolje je prikazana veza naših Zio modula za postavljanje s robotskom rukom. Povezivanje svih modula zajedno prilično je jednostavno i neće vam trebati više od 10 minuta za postavljanje.

Korak 5: Povežite servo upravljač robotske ruke sa servo upravljačem Zio 16

Spojite robotski servo upravljač na servo upravljač Zio 16
Spojite robotski servo upravljač na servo upravljač Zio 16

Korak 6: Spojite svoj 16 servo na DC/DC pojačivač i postavite ga na 6,0 V

Spojite svoj 16 servo na DC/DC pojačivač i postavite ga na 6,0V
Spojite svoj 16 servo na DC/DC pojačivač i postavite ga na 6,0V

Koristimo DC/DC Booster za pojačavanje i podešavanje napona napajanja baterije na 6,0.

Pomoću potenciometra na DC Boosteru podesite napon dok ne dobijete 6,0. Pritiskajte tipku za ulaz/izlaz sve dok se na zaslonu ne prikaže 6.0. Najprije morate napajati (3.7V baterija) svoj DC/DC pojačivač kako biste podesili napon.

Korak 7: Spojite Zuino M Uno na servo upravljač Zio 16

Spojite Zuino M Uno na Zio 16 servo upravljač
Spojite Zuino M Uno na Zio 16 servo upravljač

Qwiic spojite Zuino M Uno sa Zio Servo kontrolerom pomoću qwiic kabela.

Korak 8: Spajanje Uno -a na PS2 prijemnik

Spajanje Uno -a na PS2 prijemnik
Spajanje Uno -a na PS2 prijemnik

Ovdje je pin dijagram veza. Za ovaj dio vam je potrebno 5 žica kratkospojnika muško - žensko.

Korak 9: Kôd za robotsku ruku

Koristit ćemo PS2 Arduino knjižnicu za kodiranje našeg PS2 bežičnog kontrolera za rad s našim robotskim rukavom. Izvorni kod za ovaj projekt Robotic Arm Part 2 možete pronaći i preuzeti na našoj stranici Github.

Preuzmite i instalirajte sljedeće knjižnice i spremite ih u svoju lokalnu mapu Arduino IDE knjižnica:

  • Knjižnica Adafruit PWM servo upravljačkih programa
  • Biblioteka PS2 Arduino

Da biste instalirali knjižnice, otvorite svoj Arduino IDE, idite na karticu Sketch, odaberite Include Library -> Add. Zip Library. Odaberite gornje biblioteke koje ćete uključiti u svoj IDE.

Arduino ima zgodan vodič o tome kako instalirati knjižnice na vaš Arduino IDE. Ovdje ih provjerite!

Korak 10: Pokrenite svoj kôd

Pokrenite svoj kôd
Pokrenite svoj kôd

Otvorite Arduino IDE. U odjeljku Datoteke> Primjeri> PS2_Arduino_Library odaberite PS2X_Servo

Napomena: Prije nego što možete upravljati svojom robotskom rukom pomoću PS2 kontrolera provjerite sljedeće korake: Uključite svoj PS2 kontroler. Provjerite svijetli li LED način rada. Ako se to ne dogodi, pritisnite tipku Mode na svom kontroleru. Nakon što ste učinili gore navedeno, morate pritisnuti gumb za poništavanje na vašem Zuino M Uno kako bi pročitao postavke vašeg kontrolera. Morate pritisnuti L1 i joystick za pomicanje robotske ruke.

  • Lijevi joystick kontrolira savijanje ruke prema gore ili prema dolje
  • Desni joystick kontrolira kandžu za otvaranje ili zatvaranje i zakretanje kandže ulijevo ili udesno.

Korak 11: Objašnjenje koda

Korištenje knjižnice PS2X Arduino jednostavno je, zahtijeva samo inicijalizaciju, postavljanje, a zatim naredbu za čitanje.

Za postavljanje veze za vaš PS2 kontroler s vašim Uno -om, u nastavku se nalaze pinovi koje morate definirati u svom kodu:

/*********************************************** ****************postavite pinove spojene na PS2 kontroler:* - 1e stupac: original* - 2e colmun: Stef? *zamijenite PIN brojeve onima koje koristite **************************************** **********************/#define PS2_DAT 13 // 14 #define PS2_CMD 11 // 15#define PS2_SEL 10 // 16#definiraj PS2_CLK 12 // 17

Zamijenili smo pinove onima koje koristimo za spajanje na naš Uno, kako je navedeno na gornjoj shemi pinova.

/************************************************* **************** odabir načina rada PS2 kontrolera:* - pritisci = analogno očitavanje tipki* - tutnjava = tutnjava motora*raskomentirajte 1 redak za svaki odabir načina rada ** ************************************************ ************///#definiraj pritiske true#definiraj pritiske false //#definiraj rumble true#definiraj rumble false

Ovdje smo definirali PS2 način rada za pritiske i tutnjavu kao lažne. Komentirali smo one koje ne koristimo.

Koristit ćemo naredbu upravljačke palice i L1 za kontrolu kretanja naše robotske ruke.

void loop () {/* Morate pročitati Gamepad da biste dobili nove vrijednosti i postavili vrijednosti vibracija ps2x.read_gamepad (mali motor uključen/isključen, veća snaga motora od 0-255) ako ne omogućite tutnjavu, upotrijebite ps2x.read_gamepad (); bez vrijednosti Trebali biste to nazvati barem jednom u sekundi*/if (error == 1) // preskočite petlju ako nije pronađen kontroler return; else {// DualShock kontroler ps2x.read_gamepad (lažno, vibracija); // čitač kontrolera i postavljanje velikog motora da se okreće brzinom 'vibriranja' ako (ps2x. Button (PSB_START)) // bude TRUE sve dok je tipka pritisnuta Serial.println ("Start se drži"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Odabir se zadržava"); vibrirati = ps2x. Analog (PSAB_CROSS); // ovo će postaviti veliku brzinu vibriranja motora na temelju toga koliko jako pritisnete plavi (X) gumb ako (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// vrijednosti štapa za ispis ako je 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 ("Vrijednosti štapića:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

U donjem kodu kodiramo naše servo upravljače koji upravljaju našom robotskom rukom koje uključujemo u poziv funkcije pod gumbom ps2x. (PSB_L1) || gumb ps2x. (PSB_R1).

Morate pritisnuti tipku L1 ili R1 zajedno s joystickom za upravljanje vašim robotskim rukom.

Lijevi joystick kontrolira servo 2 i 3 za dio ruke - kontrolira savijanje gore i dolje ruke, dok desni joystick kontrolira servosisteme 0 i 1 kandže robotske ruke za otvaranje ili zatvaranje, te za rotiranje ulijevo ili udesno.

SERVO 0, 1 - Kandža SERVO 2, 3 - Ruka

Možete promijeniti vrijednosti u ovom odjeljku kako biste kontrolirali stupanj kuta robotske ruke:

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

Preporučeni: