Sadržaj:

Robotska ruka sa Zio modulima Dio 2: 11 koraka
Robotska ruka sa Zio modulima Dio 2: 11 koraka

Video: Robotska ruka sa Zio modulima Dio 2: 11 koraka

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

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 prethodnom blogu objavili smo prvi dio vodiča o tome kako upravljati robotskom rukom pomoću Zio modula. Prvi dio se uglavnom 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

Nivo teškoće:

Zio Padawan

Korisni izvori:

Trebali biste imati osnovno razumijevanje o tome kako instalirati Zio razvojne ploče. U ovom vodiču pretpostavljamo da je vaša razvojna ploča već konfigurirana i spremna za postavljanje. Ako još niste konfigurirali svoju ploču, za početak pogledajte naš vodič Zio Qwiic Start Guide 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

U nastavku 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 kontrolerom Zio 16

Spojite Robotic Arm Servo na Zio 16 Servo Controller
Spojite Robotic Arm Servo na Zio 16 Servo Controller

Korak 6: Povežite 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 pojačivač 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 dugme za ulaz/izlaz sve dok se na ekranu ne prikaže 6.0. Morate prvo napajati DC/DC pojačivač napajanjem (baterija od 3,7 V) kako biste podesili napon.

Korak 7: Povežite Zuino M Uno sa Zio 16 servo kontrolerom

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

Qwiic povežite Zuino M Uno sa Zio Servo kontrolerom pomoću qwiic kabela.

Korak 8: Povežite Uno sa PS2 prijemnikom

Povezivanje Uno -a sa PS2 prijemnikom
Povezivanje Uno -a sa PS2 prijemnikom

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 biblioteku 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 biblioteke i spremite ih u lokalnu mapu Arduino IDE biblioteka:

  • Biblioteka Adafruit PWM servo upravljačkih programa
  • Biblioteka PS2 Arduino

Da biste instalirali biblioteke, 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 praktičan vodič o tome kako instalirati biblioteke na vaš Arduino IDE. Provjerite ih ovdje!

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 PS2 kontroler. Proverite da li LED lampica režima svetli. Ako se to ne dogodi, pritisnite tipku Mode na kontroleru. Nakon što ste učinili gore navedeno, trebate 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 okretanje kandže nalijevo ili nadesno.

Korak 11: Objašnjenje koda

Korištenje PS2X Arduino biblioteke je jednostavno, samo zahtijeva 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 povezane sa PS2 kontrolerom:* - 1e kolona: 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 povezivanje s našim Uno -om, kako je navedeno na Pin -dijagramu gore.

/************************************************* **************** 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 ručice 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, koristite 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, vibrira); // čitač kontrolera i postavljanje velikog motora da se okreće brzinom 'vibriranja' ako (ps2x. Button (PSB_START)) // bude TRUE sve dok je dugme pritisnuto 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 osnovu toga koliko jako pritisnete plavo (X) dugme 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 sisteme koji kontrolišu našu robotsku ruku koju uključujemo u poziv funkcije pod ps2x.button (PSB_L1) || dugme ps2x. (PSB_R1).

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

Lijevi joystick kontrolira servo upravljače 2 i 3 za dio ruke - kontrolira savijanje gore i dolje ruke, dok desni joystick kontrolira servo upravljače 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 - Arm

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

pulselen0 = map (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = mapa (RX_Vrednost, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = mapa (LY_Vrednost, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = mapa (LX_Vrednost, 0, 255, SERVOMIN3, SERVOMAX3);

Preporučuje se: