Kaip valdyti Arduino su belaidžiu PS2 valdikliu

  • PS2 valdiklis yra ekonomiškas ir ergonomiškas robotų valdymo variantas.
  • Norint prijungti PS2 valdiklį prie Arduino, jums reikia loginio lygio keitiklio.
  • PS2X biblioteka leidžia lengvai integruoti PS2 valdiklį su Arduino.
  • Valdiklis turi 14 mygtukų ir dvi analogines lazdeles, kad būtų galima tiksliai valdyti.

knygos apie arduino

„Arduino“ ir „PlayStation 2“ valdiklio sąveika yra neįtikėtinai įdomi robotikos ir automatikos projektams. PS2 belaidis valdiklis yra universalus ir labai prieinamas valdiklis, galintis pasiūlyti įvairius analoginius ir skaitmeninius įėjimus. Nors iš esmės tai gali atrodyti sudėtinga užduotis, šių dviejų sistemų integravimas yra gana prieinamas dėl skirtingų bibliotekų ir įrankių, kurie jau buvo sukurti palengvinti procesą.

Belaidis PS2 valdiklis yra ergonomiška ir ekonomiška galimybė valdyti robotus, 4×4 transporto priemones ar bet kokio tipo projektus, kur reikalingas sklandus ir praktiškas nuotolinio valdymo pultas. Šio valdiklio naudojimas su Arduino yra sprendimas, kurį renkasi daugelis mėgėjų, nes jis ne tik pigus, bet ir užtikrina itin tikslų valdymą dėl dviejų analoginių lazdelių ir 14 mygtukų rinkinio.

PS2 valdiklio naudojimo su Arduino pranašumai

Vienas iš pagrindinių ps2 valdiklis yra tai, kad yra belaidis, kuri leidžia suteikti savo projektams mobilumo be kabelių apribojimų. Be to, jį labai patogu naudoti dėl ergonomiško dizaino, optimizuoto ilgoms žaidimų sesijoms, todėl puikiai tinka valdyti robotus ar kitus įrenginius ilgą laiką, nepakenkiant tikslumui ar reagavimui.

Kitas svarbus aspektas yra kaina. Kloninį PS2 valdiklį galima rasti už mažiau nei 10 eurų. Už šią kainą gausite valdiklį su daugybe mygtukų ir analoginių įėjimų, todėl tai nepaprastai patraukli galimybė nuotolinio valdymo projektams.

Norint integruoti šį valdiklį su Arduino, be paties valdiklio ir imtuvo, įprasta naudoti loginio lygio keitiklis Tai leidžia PS3,3 valdiklio 2 V signalus sureguliuoti iki 5 V, su kuriuo Arduino veikia daugelyje savo versijų.

Būtinos medžiagos

  • Belaidis PS2 valdiklis. Šio valdiklio klonas kainuoja nuo 9 iki 10 eurų.
  • belaidis imtuvas valdikliui, kuris paprastai yra pakuotėje.
  • Loginio lygio keitiklis. Tai būtina, nes „Arduino“ veikia esant 5 V įtampai, o PS2 valdiklis veikia su 3,3 V signalais.
  • Arduino. Galite naudoti bet kokį modelį, pvz Arduino Uno, Mega arba Mini.
  • Bandomoji Lenta ir kabeliai, skirti jungtims tarp imtuvo ir „Arduino“.

Jungtys ir surinkimas

Belaidis imtuvas, esantis kartu su PS2 valdikliu, yra pagrindinė komunikacijos dalis tarp jų. Šis komponentas jungiasi prie Arduino per keletą kaiščių, kurios skiriasi priklausomai nuo imtuvo, bet paprastai apima galia (5V ir GND), duomenys, laikrodis ir kitos pagalbinės priemonės, tokios kaip dėmesio arba vibracijos kaištis.

Svarbi rekomendacija – nepasitikėti laidų spalvų kodu, nes tai gali skirtis priklausomai nuo gamintojo. Geriausia naudoti multimetrą, kad patikrintumėte kiekvieno iš jų funkciją, taip išvengsite galimų ryšio klaidų.

Teisingai identifikavę kaiščius, galite naudoti a Bandomoji Lenta Lituoti arba prijungti skirtingus signalus prie Arduino, arba jei norite viską montuoti kompaktiškai, taip pat galite lituoti laidus tiesiai prie imtuvo, visada įsitikindami, kad jungtys yra teisingos.

Labai svarbu naudoti a loginio lygio keitiklis nes, kaip minėta, PS2 valdiklis veikia 3,3 V, o dauguma Arduino plokščių veikia 5 V. Šis keitiklis leis abiem sistemoms „kalbėtis“ viena su kita, nesukeliant žalos.

PS2 valdiklio konfigūracija ir biblioteka

Norėdami valdyti PS2 valdiklį su Arduino, yra a pagrindinė biblioteka, vadinama PS2X_lib, kurį sukūrė Billas Porteris, kuris labai palengvina tokio tipo valdiklių naudojimą. Ši programinė įranga leis valdyti visus signalus, kuriuos valdiklis siunčia per savo belaidį imtuvą.

Šią biblioteką įdiegti labai paprasta ir ją rasite adresu GitHub. Atsisiuntę ir įdiegę „Arduino“ kūrimo aplinką, galite pradėti dirbti su ja.

Kitas žingsnis bus sukonfigūruoti kaiščius Arduino kode. Turėsite įsitikinti, kad tinkamai apibrėžėte kaiščius. laikrodis, komanda, duomenys y dėmesys kurie atitinka jūsų įvestis ir išvestis Arduino. Tai labai svarbu, nes dėl neteisingo kaiščio priskyrimo valdiklis gali netinkamai reaguoti.

Šis kodo fragmentas parodo, kaip sukonfigūruoti šiuos kaiščius:

#include 
PS2X ps2x; // crear la clase para el mando PS2
int error; // variable para errores
#define PS2_CLK 34
#define PS2_CMD 24
#define PS2_ATT 32
#define PS2_DAT 22
// Configuramos los pines para el mando
error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_ATT, PS2_DAT, true, true);

Kai kaiščiai sukonfigūruoti, galite pradėti skaityti signalus, kuriuos valdiklis siunčia per kodą. Biblioteka pateikia konkrečius metodus, kaip patikrinti, ar a mygtukas buvo paspaustas, taip pat gauti vertes analoginis valdiklio vairasvirtėms.

Mygtukų skaitymas

El ps2 valdiklis turi iki 14 mygtukas, paskirstytas tarp valdiklio priekio ir galo. Norėdami perskaityti priekinius ir galinius mygtukus, galite naudoti šį kodą:

if (ps2x.Button(PSB_PAD_UP)) {
   Serial.println("Arriba");
} else if (ps2x.Button(PSB_PAD_DOWN)) {
  Serial.println("Abajo");
} else if (ps2x.Button(PSB_PAD_LEFT)) {
  Serial.println("Izquierda");
} else if (ps2x.Button(PSB_PAD_RIGHT)) {
  Serial.println("Derecha");
}

Be nuorodų mygtukų, galite perskaityti veiksmo mygtukų, pvz., suaktyvinimą Apskritimas, X, kvadratas ir trikampis, panašiai.

Vairasvirtės skaitymas

Los analoginės vairasvirtės PS2 valdiklis pateikia nuolatines vertes, kurias galite naudoti, pavyzdžiui, varikliui judėti arba valdyti roboto kryptį ir greitį. Reikšmės svyruoja nuo 0 iki 255, o 127 yra centrinė reikšmė, kai vairasvirtės yra ramybėje.

int LX = ps2x.Analog(PSS_LX);
int LY = ps2x.Analog(PSS_LY);
int RX = ps2x.Analog(PSS_RX);
int RY = ps2x.Analog(PSS_RY);
Serial.print("Stick Values: ");
Serial.print(LX);Serial.print(",");
Serial.print(LY);Serial.print(",");
Serial.print(RX);Serial.print(",");
Serial.println(RY);

Naudodami šias vertes galite reguliuoti variklių greitį, priklausomai nuo to, koks slėgis yra veikiamas valdymo svirtis.

Praktiniai pavyzdžiai

Kontrolė a 4x4 rover robotas su PS2 valdikliu yra klasikinis šio tipo valdiklio pritaikymo pavyzdys. Šis surinkimas tampa ypač lengvas naudojant a „Arduino Mega“, nes jame yra daugiau kaiščių ir daugiau atminties, o tai leidžia vienu metu valdyti kelis variklius ir jutiklius.

Šis kodas rodo pagrindinį pavyzdį, kaip valdyti roverį naudojant valdiklio krypties mygtukus:

void loop() {
 ps2x.read_gamepad();
 if (ps2x.Button(PSB_PAD_UP)) {
  avance();
 } else if (ps2x.Button(PSB_PAD_DOWN)) {
  retroceso();
 } else if (ps2x.Button(PSB_PAD_LEFT)) {
  giroIzquierda();
 } else if (ps2x.Button(PSB_PAD_RIGHT)) {
  giroDerecha();
} else {
  paro();
 }
}

Tai paprastas pavyzdys, kaip skirtingais valdiklio mygtukais galima valdyti transporto priemonės judėjimą, tačiau vairasvirčių naudojimas leistų atlikti sklandesnius ir tikslesnius judesius, valdant tiek roboto kryptį, tiek greitį.

Tinkamai sujungus ir sukonfigūravus, šis valdiklis tampa labai galingu įrankiu valdyti beveik bet kurį Arduino pagrįstą elektroninį projektą.

sujungti a Playstation 2 valdiklis Su Arduino jis atveria plačias galimybes valdyti robotų projektus, automatizuotas sistemas ar dar paprastesnes sistemas, tokias kaip robotų rankos. Dėl didelio mygtukų skaičiaus ir vairasvirčių tikslumo šis valdiklis yra puikus pasirinkimas tiems, kurie nori pridėti nuotolinio valdymo pultą į savo konstrukcijas su pažįstama, ergonomiška sąsaja.


Būkite pirmas, kuris pakomentuos

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.