Interaktionen mellem Arduino og en PlayStation 2-controller er utrolig interessant for robotteknologi og automatiseringsprojekter. Den trådløse PS2-controller er en alsidig og meget overkommelig controller, der kan tilbyde en række analoge og digitale indgange. Selvom det i princippet kan virke som en kompleks opgave, er integrationen af disse to systemer ganske overkommelig takket være forskellige biblioteker og værktøjer, der allerede er udviklet til at lette processen.
En trådløs PS2-controller er en ergonomisk og økonomisk mulighed for at styre robotter, 4×4-køretøjer eller enhver form for projekt, hvor der kræves en flydende og praktisk fjernbetjening. At bruge denne controller med Arduino er en løsning, som mange hobbyfolk vælger, da den ikke kun er billig, men giver en højpræcision kontroloplevelse takket være dens to analoge sticks og et sæt med 14 knapper.
Fordele ved at bruge en PS2-controller med Arduino
En af de vigtigste fordele ved ps2 controller er, at det er trådløs, som giver dig mulighed for at give dine projekter mobilitet uden begrænsning af kabler. Derudover er den meget behagelig at bruge takket være dens ergonomiske design, der er optimeret til lange spilsessioner, hvilket gør den perfekt til at styre robotter eller andre enheder i længere perioder uden at påvirke præcisionen eller reaktionsevnen.
Et andet vigtigt aspekt er omkostningerne. En klon PS2-controller kan findes for mindre end €10. Til denne pris får du en controller med et stort antal knapper og analoge indgange, hvilket gør den til en enormt attraktiv mulighed for fjernbetjeningsprojekter.
For at integrere denne controller med Arduino er det ud over selve controlleren og modtageren almindeligt at bruge en logisk niveau konverter der gør det muligt at justere 3,3V-signalerne fra PS2-controlleren til de 5V, som Arduino arbejder med i de fleste af dens versioner.
Nødvendige materialer
- Trådløs PS2 controller. En klon af denne controller koster mellem €9 og €10.
- trådløs modtager til controlleren, normalt inkluderet i pakken.
- Logisk niveau konverter. Dette er nødvendigt, da Arduino fungerer ved 5V og PS2-controlleren fungerer med 3,3V-signaler.
- Arduino. Du kan bruge enhver model, som f.eks Arduino Uno, Mega eller Mini.
- Brødbræt og kabler til at lave forbindelser mellem modtageren og Arduino.
Tilslutninger og montering
Den trådløse modtager, der følger med PS2-controlleren, er nøglen til kommunikationen mellem de to. Denne komponent forbindes til Arduino gennem en række stifter, som varierer afhængigt af modtageren, men som generelt omfatter strøm (5V og GND), data, ur og andre hjælpemidler såsom opmærksomheds- eller vibrationsstiften.
En vigtig anbefaling er ikke at stole på kablernes farvekode, da denne kan variere afhængigt af producenten. Det er bedst at bruge et multimeter til at verificere funktionen af hver af dem, hvilket vil undgå mulige fejl i forbindelsen.
Når du har identificeret stifterne korrekt, kan du bruge en brødbræt til at lodde eller tilslutte de forskellige signaler til Arduinoen, eller hvis du foretrækker at montere det hele kompakt, kan du også lodde kablerne direkte til modtageren, og altid sikre dig at tilslutningerne er korrekte.
Det er meget vigtigt at bruge en logisk niveau konverter da PS2-controlleren som nævnt arbejder på 3,3V, mens de fleste Arduino-kort kører på 5V. Denne konverter giver begge systemer mulighed for at "tale" med hinanden uden at forårsage skade.
Konfiguration og bibliotek til PS2-controlleren
For at styre PS2-controlleren med Arduino er der en grundlæggende bibliotek kaldet PS2X_lib, skabt af Bill Porter, hvilket i høj grad letter brugen af denne type kontroller. Denne software giver dig mulighed for at administrere alle de signaler, som controlleren sender gennem sin trådløse modtager.
Installationen af dette bibliotek er meget enkel, og du kan finde det på GitHub. Når det er downloadet og installeret i dit Arduino-udviklingsmiljø, kan du begynde at arbejde med det.
Det næste trin vil være at konfigurere stifterne i Arduino-koden. Du skal sørge for at definere stifterne korrekt. ur, kommando, data y opmærksomhed der svarer til input og output fra din Arduino. Dette er vigtigt, da forkert pin-tildeling kan forårsage, at controlleren ikke reagerer korrekt.
Følgende kodestykke viser, hvordan man konfigurerer disse pins:
#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);
Når stifterne er konfigureret, kan du begynde at læse de signaler, som controlleren sender gennem koden. Biblioteket tilbyder specifikke metoder til at kontrollere, om en knap er blevet trykket, samt for at få værdierne analog af controllerens joysticks.
Knaplæsning
El ps2 controller har op til 14 knapper, fordelt mellem betjeningens forreste og bageste del. For at læse for- og bagknapperne kan du bruge følgende kode:
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");
}
Udover retningsknapperne kan du læse aktiveringen af handlingsknapper som f.eks Cirkel, X, Firkant og Trekant, tilsvarende.
Joystick læsning
masse analoge joysticks PS2-controlleren giver kontinuerlige værdier, som du for eksempel kan bruge til at flytte motorer eller styre retningen og hastigheden af en robot. Værdierne spænder fra 0 til 255, hvor 127 er midterværdien, når joystickets er i ro.
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);
Med disse værdier kan du styre motorernes hastighed afhængigt af, hvor meget tryk der udøves på kontrolhåndtagene.
Praktiske eksempler
Kontrol a 4x4 rover robot med en PS2-controller er et klassisk eksempel på applikationerne af denne type controller. Denne montering bliver særlig nem med en Mega Arduino, da det giver flere ben og mere hukommelse, hvilket giver dig mulighed for at styre flere motorer og sensorer på samme tid.
Følgende kode viser et grundlæggende eksempel på, hvordan man styrer en rover ved hjælp af retningsknapperne på controlleren:
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();
}
}
Dette er et simpelt eksempel på, hvordan de forskellige knapper på controlleren kan styre køretøjets bevægelse, men brugen af joystick ville give mulighed for jævnere og mere præcise bevægelser, der styrer både retningen og hastigheden af robotten.
Med korrekt integration og konfiguration bliver denne controller et meget kraftfuldt værktøj til at styre næsten ethvert Arduino-baseret elektronisk projekt.
kombinere a playstation 2 controller Med Arduino åbner det op for en bred vifte af muligheder for at styre robotprojekter, automatiserede systemer eller endda simplere systemer såsom robotarme. Det store antal knapper og præcision af joysticks gør denne controller til et fremragende valg for dem, der ønsker at tilføje fjernbetjening til deres builds med en velkendt, ergonomisk grænseflade.