Kazalo:

Robotska roka z Zio moduli 2. del: 11 korakov
Robotska roka z Zio moduli 2. del: 11 korakov

Video: Robotska roka z Zio moduli 2. del: 11 korakov

Video: Robotska roka z Zio moduli 2. del: 11 korakov
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Julij
Anonim
Robotska roka z Zio moduli 2. del
Robotska roka z Zio moduli 2. del

V današnji vadnici bomo za krmiljenje robotske roke uporabili vse 4 servomotorje in brezžični krmilnik PS2.

Ta objava na spletnem dnevniku je del serije Zio Robotics.

Uvod

V našem prejšnjem blogu smo objavili 1. del vadnice o tem, kako upravljati robotsko roko z moduli Zio. Prvi del je večinoma osredotočen na samodejno krmiljenje odpiranja in zapiranja kremplja robotske roke.

V današnji vadnici ga bomo nekoliko zaokrožili z vključitvijo brezžičnega krmilnika PS2 za krmiljenje robotske roke. Za ta projekt bomo uporabili 4 servomotorje.

1. korak: Pregled projekta

Stopnja težavnosti:

Zio Padawan

Koristni viri:

Imeti morate osnovno razumevanje, kako namestiti razvojne plošče Zio. V tej vadnici predvidevamo, da je vaša razvojna plošča že konfigurirana in pripravljena za nastavitev. Če plošče še niste konfigurirali, si za začetek oglejte spodnji vodič Vodič za začetnike Zio Qwiic:

Zio Zuino M UNO Qwiic Start Guide

2. korak: Sheme

Sheme
Sheme

Tukaj je shema ožičenja projekta Robotic Arm Part 2, kot tudi shema krmilnika PS2, ki jo morate razumeti za svoj del kodiranja.

3. korak: Shema krmilnika PS2

Shema krmilnika PS2
Shema krmilnika PS2

4. korak: Nastavitev povezave z moduli Zio

Spodaj je povezava naših modulov Zio, ki jih je treba nastaviti z robotsko roko. Povezovanje vseh modulov skupaj je precej preprosto in nastavitev ne bo trajala več kot 10 minut.

5. korak: Povežite servo krmilnik robotske roke s servo krmilnikom Zio 16

Servo krmilnik Robotic Arm priključite na servo krmilnik Zio 16
Servo krmilnik Robotic Arm priključite na servo krmilnik Zio 16

Korak 6: Priključite svoj 16 servo na DC/DC ojačevalnik in ga nastavite na 6,0 V

Priključite svoj 16 servo na DC/DC ojačevalnik in ga nastavite na 6,0 V
Priključite svoj 16 servo na DC/DC ojačevalnik in ga nastavite na 6,0 V

Za povečanje in nastavitev napajalne napetosti akumulatorja na 6,0 uporabljamo DC/DC Booster.

Z potenciometrom na DC Boosterju nastavite napetost, dokler ne dobite 6,0. Pritiskajte gumb za vhod/izhod, dokler se na zaslonu ne prikaže 6.0. Če želite prilagoditi napetost, morate najprej priključiti napajalnik (baterija 3,7 V).

Korak 7: Priključite Zuino M Uno na servo krmilnik Zio 16

Priključite Zuino M Uno na servo krmilnik Zio 16
Priključite Zuino M Uno na servo krmilnik Zio 16

Qwiic povežite Zuino M Uno s krmilnikom Zio Servo s kablom qwiic.

8. korak: Povežite Uno s sprejemnikom PS2

Priključitev Uno na sprejemnik PS2
Priključitev Uno na sprejemnik PS2

Tukaj je pin diagram povezav. Za ta del potrebujete 5 moških in ženskih mostov.

9. korak: Koda za robotsko roko

Knjižnico PS2 Arduino bomo uporabljali za kodiranje našega brezžičnega krmilnika PS2 za delo z našo robotsko roko. Izvorno kodo za ta projekt Robotic Arm Part 2 najdete in naložite na naši strani Github.

Prenesite in namestite te knjižnice in jih shranite v lokalno mapo knjižnic Arduino IDE:

  • Knjižnica gonilnikov Adafruit PWM Servo
  • Knjižnica Arduino PS2

Če želite namestiti knjižnice, odprite svoj Arduino IDE, pojdite na zavihek Sketch, izberite Include Library -> Add. Zip Library. Izberite zgornje knjižnice, ki bodo vključene v vaš IDE.

Arduino ima priročen vodnik, kako namestiti knjižnice v svoj Arduino IDE. Preverite jih tukaj!

10. korak: Zaženite kodo

Zaženite svojo kodo
Zaženite svojo kodo

Odprite Arduino IDE. V razdelku Datoteke> Primeri> PS2_Arduino_Library izberite PS2X_Servo

Opomba: Preden lahko upravljate svojo robotsko roko s krmilnikom PS2, preverite naslednje korake: Vklopite krmilnik PS2. Preverite, ali LED za način delovanja zasveti. Če se to ne zgodi, pritisnite gumb Mode na krmilniku. Ko naredite zgoraj navedeno, morate pritisniti gumb za ponastavitev na vašem Zuino M Uno, da prebere nastavitve krmilnika. Če želite premakniti robotsko roko, pritisnite L1 in igralno palico.

  • Leva krmilna palica nadzoruje upogibanje roke navzgor ali navzdol
  • Desna krmilna palica nadzoruje kremplje tako, da se odpre ali zapre in obrača kremplje v levo ali desno.

11. korak: Pojasnilo kode

Uporaba knjižnice PS2X Arduino je preprosta, zahteva le inicializacijo, nastavitev in nato ukaz za branje.

Če želite nastaviti povezavo za krmilnik PS2 z vašim Uno, spodaj so zatiči, ki jih morate določiti v kodi:

/*********************************************** ****************nastavite zatiče, povezane s krmilnikom PS2:* - 1e stolpec: original* - 2e colmun: Stef? *številke pin zamenjajte s tistimi, ki jih uporabljate **************************************** **********************/#define PS2_DAT 13 // 14 #define PS2_CMD 11 // 15#define PS2_SEL 10 // 16#define PS2_CLK 12 // 17

Zatiče smo zamenjali s tistimi, ki jih uporabljamo za povezavo z našim Uno, kot je opisano na zgornjem diagramu pin.

/*********************************************** **************** izberite načine krmiljenja PS2:* - pritiski = analogno odčitavanje gumbov* - ropotanje = ropotanje motorja*odkomentirajte 1 vrstico za vsako izbiro načina ** ************************************************ ************///#definiraj pritiske true#definiraj pritiske false //#definiraj rumble true#definiraj rumble false

Tu smo definirali način PS2 za pritiske in ropotanje kot napačno. Komentirali smo tiste, ki jih ne uporabljamo.

Ukaz krmilnika Joystick in L1 bomo uporabljali samo za nadzor gibanja naše robotske roke.

void loop () {/* Morate prebrati Gamepad, da dobite nove vrednosti in nastavite vrednosti vibracij ps2x.read_gamepad (majhen vklop/izklop motorja, večja moč motorja od 0-255), če ne omogočite ropotanja, uporabite ps2x.read_gamepad (); brez vrednosti To morate poklicati vsaj enkrat na sekundo*/if (error == 1) // preskočite zanko, če krmilnik ni bil najden; else {// Krmilnik DualShock ps2x.read_gamepad (false, vibriranje); // preberemo krmilnik in nastavimo, da se velik motor vrti s hitrostjo 'vibriranja', če (ps2x. Button (PSB_START)) // bo TRUE, dokler je pritisnjen gumb Serial.println ("Start je zadržan"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Izbira je zadržana"); vibriranje = ps2x. Analog (PSAB_CROSS); // to bo nastavilo veliko hitrost vibriranja motorja glede na to, kako močno pritisnete modri gumb (X), če (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// vrednosti tiskalne palice, če je ena 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 ("Vrednosti palic:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

Spodnja koda kodira naše servomotorje, ki upravljajo našo robotsko roko, ki jih vključimo v klic funkcije pod gumbom ps2x. (PSB_L1) || gumb ps2x. (PSB_R1).

Za krmiljenje robotske roke morate pritisniti gumb L1 ali R1 skupaj z igralno palico.

Leva krmilna ročica krmilita servomotorja 2 in 3 za del roke - nadzorujeta upogibanje gor in dol roke, desna krmilna ročica pa krmiljenje 0 in 1 kremplja robotske roke za odpiranje ali zapiranje ter vrtenje levo ali desno.

SERVO 0, 1 - Kremplje SERVO 2, 3 - Roka

V tem razdelku lahko spremenite vrednosti za nadzor stopnje kota robotske roke:

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

Priporočena: