Sisällysluettelo:

Pikareaktiopeli: Etäisyysversio: 5 vaihetta (kuvilla)
Pikareaktiopeli: Etäisyysversio: 5 vaihetta (kuvilla)

Video: Pikareaktiopeli: Etäisyysversio: 5 vaihetta (kuvilla)

Video: Pikareaktiopeli: Etäisyysversio: 5 vaihetta (kuvilla)
Video: 🚀 AMAZON 2.0 - ИНТЕРНЕТ МАГАЗИН с нуля за 6 часов [Next / React / Nest / PostgreSQL / Prisma / TS] 2024, Marraskuu
Anonim
Pikareaktiopeli: Etäisyysversio
Pikareaktiopeli: Etäisyysversio

Hei. Tämä on ohje, jolla voit luoda pelin, joka testaa sekä reaktioajan että etäisyyden. Tämä projekti perustuu vanhaan projektiin, jonka tein ja jossa kaksi pelaajaa kilpaili nähdäkseen, kenellä oli nopeampi reaktioaika napsauttamalla painiketta, kun valo muuttui vihreäksi. Tällä on samanlainen tarkoitus, paitsi että se on yksinpeli ja valon syttymisen sijasta pelaajalle annetaan aikakehys etäisyyden pitämiseksi kätensä tietyn tilan päässä etäisyysanturista.

Kuten kaikki Arduino -projektit, tämä peli vaatii lukuisia sähkökomponentteja Arduino -piirissä. Pääkomponentit, paitsi johdotus ja Arduino, sisältävät leipälevyn, servomoottorin, LCD -näytön, RGB -LEDin ja etäisyysanturin.

Käyttämällä https://abra-electronics.com, hinta ilman johtoja ja Arduinoa on 32,12 dollaria CAD.

Vaihe 1: Vaihe 1: Etäisyysanturi

Vaihe 1: Etäisyysanturi
Vaihe 1: Etäisyysanturi

Ensimmäinen askel on asentaa ultraäänietäisyysanturi leipälevylle ja kytkeä se Arduinoon. Anturin tarkalla sijainnilla ei oikeastaan ole väliä, mutta mieluiten se on lähellä reunaa, jotta muille komponenteille jää tilaa, kuten yllä olevassa kuvassa näkyy. Anturissa on neljä nastaa; GND, VCC, TRIG ja ECHO. GND ja VCC on kytkettävä vastaavasti maahan ja sähkökiskoihin ja johdotettava kahdessa muussa nastassa kahteen nastaan Arduinossa. Käyttämäni kaksi nastaa olivat 12 ECHO: lle ja 11 TRIG: lle. Käytä kahta muuta johtoa virtalähteen virtalähteeksi ja maadoita maadoituskisko yhdistämällä virtakisko 5 V: n napaan ja maadoituskisko GND -nastaan.

Vaihe 2: Vaihe 2: Servomoottori

Vaihe 2: Servomoottori
Vaihe 2: Servomoottori

Seuraava vaihe on servomoottorin asentaminen. Tässä projektissa servomoottori toimii ajastimena. Se alkaa 1 asteesta ja kääntyy 180 asteeseen ajan kuluessa, jona käyttäjän on etäistettävä kätensä. Käytin 2 sekuntia, kun käyttäjä sai selville, kuinka pitkälle heidän täytyy etäyttää kätensä, joten servo pyörii 179 astetta 2 sekunnin aikana ja pyörii lyhyin väliajoin. Servomoottorissa on kolme johtoa; yleensä keltainen, punainen ja ruskea. Punainen kulkee virtakiskoon, joka on jo kytketty 5 V: iin, ja ruskea maadoituskiskoon, joka on jo kytketty GND: hen. Viimeinen johto kytketään Arduino -nastaan. Valitsin nastan #9 tähän. Sitten tarvitset kondensaattorin, joka yhdistää saman kiskon, johon on kytketty servomoottorin virta- ja maadoitusjohdot, kuten yllä olevassa kuvassa näkyy.

Vaihe 3: Vaihe 3: RGB -LED

Vaihe 3: RGB -LED
Vaihe 3: RGB -LED

LED -valon tehtävänä tässä on toimia asteikolla asteikolla. Kun pelaajan pisteet ovat noin 0, LED on valkoinen ja muuttuu punaisemmaksi, jos pelaajan pisteet laskevat, ja vihreäksi, jos pelaajan pisteet nousevat. Tässä LED -valossa on neljä jalkaa; punaisen valon jalka, sinisen valon jalka, vihreän valon jalka ja yhteinen katodi, joka on jaettu kolmen muun jalan välillä. Yhteinen katodi, pisin jalka, on kytketty sähkökiskoon, joten se saa 5 volttia. Kiinnitä 330 ohmin vastukset muihin kolmeen värijalkaan ja kiinnitä näiden vastusten muut päät PWM -digitaalisiin nastoihin Arduinossa. Käytin digitaalisia nastoja 3, 5 ja 6 punaisille, vihreille ja sinisille jaloille.

Vaihe 4: Vaihe 4: LCD

Vaihe 4: Nestekidenäyttö
Vaihe 4: Nestekidenäyttö

Viimeinen komponentti on nestekidenäyttö, joka tarkoittaa nestekidenäyttöä. Tämän tarkoituksena on kertoa pelaajalle tämänhetkinen pisteet sekä etäisyys, jonka he tarvitsevat laittaa kätensä pois anturista. Täällä on neljä nastaa; GND, VCC, SDA ja SCL. GND ja VCC kytketään leipälevyn maahan ja virtakiskoihin. SDA -nasta on kytkettävä analogiseen nastaan A4 ja SCL -nasta analogiseen nastaan A5. Toisin kuin muut komponentit, sinun on kytkettävä SDA- ja SCL -nastat A4- ja A5 -liittimiin.

Vaihe 5: Vaihe 5: koodi

Nyt kun olemme yhdistäneet kaikki komponentit, voimme kirjoittaa koodin. Koodin ensimmäinen osa on tuoda tarvittavat kirjastot ja ilmoittaa muuttujamme ja mihin nastat komponentit on kytketty. Meidän on tuotava lanka-, LiquidCrystal_I2C- ja servokirjastot tälle koodille.

#sisältää

#sisältää

#sisältää

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int pisteet = 0;

int tim = 500;

int virta = satunnainen (8, 16); // satunnainen arvo, jossa käyttäjän täytyy etäyttää kätensä pois anturista

LiquidCrystal_I2C lcd (0x27, 16, 2); // LCD -asetukset

Nyt meidän on käytettävä void -asetusta () ilmoittaaksemme pin -tyyppejämme ja asettaaksemme muut tarvittavat komponentit.

void setup () {myServo.attach (9); Sarja.alku (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); lcd.init (); lcd.taustavalo (); lcd. alku (16, 2); lcd.clear (); // LCD -asetus}

Nyt meidän on asetettava RGB -LED -koodi toiminnolla ja PWM: llä:

void setColor (int punainen, int vihreä, int sininen) {

punainen = 255 - punainen;

vihreä = 255 - vihreä;

sininen = 255 - sininen;

analogWrite (punainenPin, punainen);

analogWrite (vihreäPin, vihreä);

analogWrite (sininenPin, sininen);

}

Nyt meidän on lisättävä tyhjä silmukka (). Täällä aiomme luoda satunnaisia kokonaislukuja ja käyttää sarjan if -lausekkeita pelaajan pelin hallintaan. Nykyinen muuttuja, yllä oleva asetus, koskee senhetkistä etäisyyttä, jonka pelaajan on etäisyydellä anturista.

Koska mitätöintisilmukan () koodi on hyvin pitkä, liitän linkin dokumenttiin, jossa on kyseinen koodi:

docs.google.com/document/d/1DufS0wuX0N6gpv…

Lopuksi meidän on tehtävä todelliset laskelmat ultraäänietäisyysanturin arvojen muuntamiseksi tuumiksi. Ultraääni -etäisyysanturi ei mittaa suoraan etäisyyttä; se vapauttaa äänen ja tallentaa ajan, joka kuluu anturilta, jotta se saisi äänen takaisin mistä tahansa kohdasta, josta se poistuu.

pitkät mikrosekunnitToInches (pitkät mikrosekunnit) {

paluu mikrosekuntia / 74 /2;

}

Liitämme nyt langallisen Arduinon tietokoneeseen koodilla, määritämme portit ja suoritamme sen! Tässä pelissä on kaksi tilaa. Voit joko käyttää vain nestekidenäyttöä, servomoottoria, anturia ja RGB -LEDiä ja tiedät vain etäisyyden, joka sinun on oltava anturista, mikä on vaikeampi tila. Helpompaan tilaan kuuluu sarjamittarin käyttö kohdassa Työkalut> Sarjamonitori, joka päivittää sinulle joka sekunti etäisyyden anturista, jotta voit tehdä tarvittavat säädöt.

Kiitos lukemisesta!

Suositeltava: