Kā vadīt Arduino ar bezvadu PS2 kontrolieri

  • PS2 kontrolieris ir ekonomiska un ergonomiska opcija robotu vadīšanai.
  • Lai savienotu PS2 kontrolieri ar Arduino, jums ir nepieciešams loģiskā līmeņa pārveidotājs.
  • PS2X bibliotēka ļauj viegli integrēt PS2 kontrolieri ar Arduino.
  • Kontrolierim ir 14 pogas un divas analogās sviras precīzai vadībai.

grāmatas par arduino

Mijiedarbība starp Arduino un PlayStation 2 kontrolieri ir neticami interesanta robotikas un automatizācijas projektiem. PS2 bezvadu kontrolieris ir daudzpusīgs un ļoti lēts kontrolieris, kas spēj piedāvāt dažādas analogās un digitālās ieejas. Lai gan principā tas var šķist sarežģīts uzdevums, šo divu sistēmu integrācija ir diezgan pieņemama, pateicoties dažādām bibliotēkām un rīkiem, kas jau ir izstrādāti, lai atvieglotu procesu.

Bezvadu PS2 kontrolieris ir ergonomiska un ekonomiska iespēja vadīt robotus, 4×4 transportlīdzekļus vai jebkura veida projektus, kur nepieciešama plūstoša un praktiska tālvadības pults. Šī kontrollera lietošana kopā ar Arduino ir risinājums, ko izvēlas daudzi cienītāji, jo tas ir ne tikai lēts, bet arī nodrošina augstas precizitātes vadības pieredzi, pateicoties diviem analogajiem spieķiem un 14 pogu komplektam.

PS2 kontroliera izmantošanas priekšrocības ar Arduino

Viena no galvenajām ps2 kontrolieris vai tas tā ir bezvadu, kas ļauj nodrošināt jūsu projektiem mobilitāti bez kabeļu ierobežojumiem. Turklāt to ir ļoti ērti lietot, pateicoties tā ergonomiskajam dizainam, kas optimizēts ilgām spēļu sesijām, padarot to lieliski piemērotu robotu vai citu ierīču vadīšanai ilgstoši, neietekmējot precizitāti vai atsaucību.

Vēl viens svarīgs aspekts ir izmaksas. Klonu PS2 kontrolieri var atrast par mazāk nekā 10 eiro. Par šo cenu jūs saņemat kontrolieri ar lielu skaitu pogu un analogajām ieejām, padarot to par ārkārtīgi pievilcīgu iespēju tālvadības projektiem.

Lai integrētu šo kontrolieri ar Arduino, papildus pašam kontrollerim un uztvērējam parasti tiek izmantots loģikas līmeņa pārveidotājs kas ļauj PS3,3 kontrollera 2 V signālus pielāgot 5 V, ar ko Arduino darbojas lielākajā daļā tā versiju.

Nepieciešamie materiāli

  • Bezvadu PS2 kontrolieris. Šī kontrollera klons maksā no 9 līdz 10 eiro.
  • bezvadu uztvērējs kontrolierim, kas parasti ir iekļauts komplektā.
  • Loģiskā līmeņa pārveidotājs. Tas ir nepieciešams, jo Arduino darbojas ar 5 V spriegumu un PS2 kontrolieris darbojas ar 3,3 V signāliem.
  • Arduino. Varat izmantot jebkuru modeli, piemēram Arduino Uno, Mega vai Mini.
  • Maizes dēlis un kabeļi, lai izveidotu savienojumus starp uztvērēju un Arduino.

Savienojumi un montāža

Bezvadu uztvērējs, kas ir pievienots PS2 kontrollerim, ir galvenais saziņas elements starp abiem. Šis komponents savienojas ar Arduino izmantojot virkni tapu, kas atšķiras atkarībā no uztvērēja, bet parasti ietver jauda (5V un GND), dati, pulkstenis un citas palīgierīces, piemēram, uzmanības vai vibrācijas tapa.

Svarīgs ieteikums ir neuzticēties kabeļu krāsu kodam, jo ​​tas var atšķirties atkarībā no ražotāja. Vislabāk ir izmantot multimetru, lai pārbaudītu katra no tiem darbību, kas ļaus izvairīties no iespējamām savienojuma kļūdām.

Kad esat pareizi identificējis tapas, varat izmantot a maizes dēlis lodēt vai savienot dažādus signālus ar Arduino, vai arī, ja vēlaties visu uzstādīt kompakti, varat arī pielodēt kabeļus tieši uz uztvērēju, vienmēr pārliecinoties, ka savienojumi ir pareizi.

Ir ļoti svarīgi izmantot a loģikas līmeņa pārveidotājs jo, kā jau minēts, PS2 kontrolieris strādā pie 3,3 V, savukārt lielākā daļa Arduino plates darbojas ar 5 V. Šis pārveidotājs ļaus abām sistēmām “runāt” viena ar otru, neradot bojājumus.

PS2 kontrollera konfigurācija un bibliotēka

Lai kontrolētu PS2 kontrolieri ar Arduino, ir a fundamentālā bibliotēka ar nosaukumu PS2X_lib, ko izveidojis Bils Porters, kas ievērojami atvieglo šāda veida vadības ierīču izmantošanu. Šī programmatūra ļaus jums pārvaldīt visus signālus, ko kontrolieris sūta caur savu bezvadu uztvērēju.

Šīs bibliotēkas instalēšana ir ļoti vienkārša, un jūs to varat atrast vietnē GitHub. Kad tas ir lejupielādēts un instalēts Arduino izstrādes vidē, varat sākt ar to strādāt.

Nākamais solis būs konfigurēt tapas Arduino kodā. Jums būs jāpārliecinās, vai esat pareizi definējis tapas. pulkstenis, komanda, dati y uzmanība kas atbilst jūsu ieejām un izvadēm Arduino. Tas ir ļoti svarīgi, jo nepareiza tapu piešķiršana var izraisīt kontroliera nereaģēšanu.

Šis koda fragments parāda, kā konfigurēt šīs tapas:

#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);

Kad tapas ir konfigurētas, varat sākt nolasīt signālus, ko kontrolieris sūta caur kodu. Bibliotēka nodrošina īpašas metodes, lai pārbaudītu, vai a poga ir nospiests, kā arī iegūt vērtības analogs no kontrollera kursorsvirām.

Pogu lasīšana

El ps2 kontrolieris ir līdz 14 poga, sadalīts starp vadības ierīces priekšējo un aizmuguri. Lai lasītu priekšējās un aizmugurējās pogas, varat izmantot šādu kodu:

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");
}

Papildus virzienu pogām varat lasīt darbības pogu aktivizēšanu, piemēram, Aplis, X, kvadrāts un trīsstūris, līdzīgi.

Kursorsviras lasīšana

L analogās kursorsviras PS2 kontrolieris nodrošina nepārtrauktas vērtības, kuras varat izmantot, piemēram, motoru pārvietošanai vai robota virziena un ātruma kontrolei. Vērtības svārstās no 0 līdz 255, kur 127 ir centrālā vērtība, kad kursorsviras ir miera stāvoklī.

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);

Ar šīm vērtībām jūs varat kontrolēt motoru ātrumu atkarībā no tā, cik liels spiediens tiek iedarbināts uz vadības svirām.

Praktiski piemēri

Kontrole a 4x4 rover robots ar PS2 kontrolieri ir klasisks šāda veida kontroliera lietojumu piemērs. Šī montāža kļūst īpaši vienkārša ar a Mega Arduino, jo tas piedāvā vairāk tapu un vairāk atmiņas, kas ļauj pārvaldīt vairākus motorus un sensorus vienlaikus.

Šis kods parāda pamata piemēru, kā vadīt roveru, izmantojot vadības pults virzienu pogas:

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();
 }
}

Šis ir vienkāršs piemērs tam, kā dažādas pogas uz kontrollera var kontrolēt transportlīdzekļa kustību, bet kursorsviru izmantošana ļautu veikt vienmērīgākas un precīzākas kustības, kontrolējot gan robota virzienu, gan ātrumu.

Ar pareizu integrāciju un konfigurāciju šis kontrolieris kļūst par ļoti jaudīgu rīku, lai kontrolētu gandrīz jebkuru uz Arduino balstītu elektronisku projektu.

apvienot a Playstation 2 kontrolieris Ar Arduino tas paver plašas iespējas kontrolēt robotu projektus, automatizētas sistēmas vai pat vienkāršākas sistēmas, piemēram, robotu rokas. Lielais pogu skaits un kursorsviru precizitāte padara šo kontrolieri par lielisku izvēli tiem, kas vēlas pievienot tālvadības pulti savām konstrukcijām ar pazīstamu, ergonomisku saskarni.


Esi pirmais, kas komentārus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.