Sisukord:

Kiire reageerimise mäng: Kaugversioon: 5 sammu (piltidega)
Kiire reageerimise mäng: Kaugversioon: 5 sammu (piltidega)

Video: Kiire reageerimise mäng: Kaugversioon: 5 sammu (piltidega)

Video: Kiire reageerimise mäng: Kaugversioon: 5 sammu (piltidega)
Video: Riigikogu 24.10.2022 2024, Juuli
Anonim
Kiire reageerimise mäng: kaugversioon
Kiire reageerimise mäng: kaugversioon

Tere. See on juhend, kuidas luua mängu, mis testib nii teie reaktsiooniaega kui ka kaugustunnet. See projekt põhineb minu tehtud vanal projektil, milles osalesid kaks mängijat, kes võistlesid, et näha, kellel oli kiirem reaktsiooniaeg, klõpsates nupul, kui tuli roheliseks muutus. Sellel on sarnane eesmärk, välja arvatud juhul, kui tegemist on ühe mängijaga, ja kui tuli kustub, antakse mängijale ajavahemik, et oma käsi teatud kaugusel kaugusandurist eemal hoida.

Nagu kõik Arduino projektid, nõuab see mäng Arduino vooluringis arvukalt elektrilisi komponente. Peamised komponendid, välja arvatud juhtmestik ja Arduino ise, hõlmavad leivaplaati, servomootorit, LCD -ekraani, RGB LED -d ja kaugusandurit.

Kasutades https://abra-electronics.com, on hind ilma juhtmete ja Arduino 32,12 USD.

1. samm: 1. samm: kaugusandur

Samm: kaugusandur
Samm: kaugusandur

Esimene samm on seadistada leivalauale ultraheli kaugusandur ja ühendada see Arduinoga. Anduri täpne asukoht pole tegelikult oluline, kuid ideaaljuhul on see serva lähedal, nii et seal on ruumi teistele komponentidele, nagu on näidatud ülaltoodud pildil. Anduril on neli tihvti; GND, VCC, TRIG ja ECHO. GND ja VCC tuleb ühendada vastavalt maandus- ja toitepiiretega ning ülejäänud kaks tihvti ühendada Arduino kahte tihvti. Kaks tihvti, mida kasutasin, olid ECHO jaoks 12 ja TRIG jaoks 11 tihvti. Kasutage kahte muud juhtmest toiteploki toiteks ja maandusrööpa maandamiseks, ühendades toiteliini 5V kontaktiga ja maandusliini GND tihvtiga.

2. samm: 2. samm: servomootor

Samm: servomootor
Samm: servomootor

Järgmine samm on servomootori seadistamine. Selles projektis toimib servomootor taimerina. See algab 1 kraadist ja selle aja jooksul, mil kasutaja peab oma käed distantseerima, pöörleb see 180 kraadini. Kasutasin 2 sekundit, kui kasutaja saab teada, kui kaugele nad peavad oma kätega distantseerima, nii et servo pöörleb 2 sekundi jooksul 179 kraadi, pöörates lühikeste intervallidega. Servomootoril on kolm juhtmest; tavaliselt kollane, punane ja pruun. Punane läheb vooluvõrku, mis on juba ühendatud 5 V pingega, ja pruun läheb juba GND -ga ühendatud maandusliinile. Viimane traat ühendatakse Arduino tihvtiga. Valisin selle jaoks tihvti nr 9. Seejärel vajate kondensaatorit, mis ühendab sama rööpa, millel on servomootori toite- ja maandusjuhtmed ühendatud, nagu ülaltoodud pildil näha.

3. samm: 3. samm: RGB LED

Samm: RGB LED
Samm: RGB LED

LED -i funktsioon selles on toimida skoori skaalana. Kui mängija skoor on umbes 0, on LED valge ja muutub punasemaks, kui mängija tulemus langeb, ja roheline, kui mängija skoor tõuseb. Sellel LED -il on neli jalga; punase tule jalg, sinise tule jalg, rohelise tule jalg ja ühine katood, mis on jagatud kolme ülejäänud jala vahel. Tavaline katood, pikim jalg, on ühendatud toitekaabliga, nii et see saab 5 volti. Kinnitage 330 oomi takistid ülejäänud kolme värvilise jala külge ja kinnitage nende takistite teised otsad Arduino PWM digitaalsete tihvtide külge. Kasutasin punaste, roheliste ja siniste jalgade jaoks digitaalseid tihvte 3, 5 ja 6.

4. samm: 4. samm: LCD

Samm: LCD
Samm: LCD

Viimane komponent on LCD, mis tähistab vedelkristallekraani. Selle eesmärk on öelda mängijale nende praegune tulemus ja kaugus, mida nad peavad käed andurist eemale hoidma. Siin on neli tihvti; GND, VCC, SDA ja SCL. GND ja VCC ühendatakse vastavalt leivaplaadi maapinnale ja toitepiiretele. SDA tihvt tuleb ühendada analoogtihvtiga A4 ja SCL tihvt analoogpistikuga A5. Erinevalt teistest komponentidest peate juhtmed SDA ja SCL ühendama A4 ja A5 külge.

Samm: samm 5: kood

Nüüd, kui oleme kõik komponendid ühendanud, saame koodi kirjutada. Koodi esimene osa on vajalike teekide importimine ja meie muutujate deklareerimine ning see, milliste tihvtidega komponendid on ühendatud. Selle koodi jaoks peame importima Wire, LiquidCrystal_I2C ja Servo teegid.

#kaasake

#kaasake

#kaasake

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int rohelinePin = 5;

int bluePin = 6;

int skoor = 0;

int tim = 500;

int praegune = juhuslik (8, 16); // juhuslik väärtus, kus kasutaja peab oma käe andurist eemale hoidma

LiquidCrystal_I2C LCD (0x27, 16, 2); // LCD seadistamine

Nüüd peame tühjade seadistuste () abil oma nööpnõelte tüüpe deklareerima ja muid vajalikke komponente seadistama.

void setup () {myServo.attach (9); Seriaalne algus (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode (rohelinePin, VÄLJUND); pinMode (bluePin, OUTPUT); lcd.init (); lcd.taustavalgus (); lcd.algus (16, 2); lcd.clear (); // LCD seadistamine}

Nüüd peame funktsiooni ja PWM abil seadistama RGB LED -koodi:

void setColor (int punane, int roheline, int sinine) {

punane = 255 - punane;

roheline = 255 - roheline;

sinine = 255 - sinine;

analogWrite (redPin, punane);

analogWrite (rohelinePin, roheline);

analogWrite (sininePin, sinine);

}

Nüüd peame tühjusringi () lisama. Siin genereerime juhuslikke täisarvu ja kasutame mängija jaoks mängu juhtimiseks rida if -lauseid. Praegune muutuja, ülaltoodud seadistus, on praeguse vahemaa jaoks, mille mängija peab andurist distantseerima.

Kuna void loopi () kood on väga pikk, kleepin lingi dokumendile, millel on see kood:

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

Lõpuks peame tegema tegelikud arvutused, et teisendada ultraheli kaugusanduri väärtused tollidesse. Ultraheli kaugusandur ei mõõda otseselt kaugust; see vabastab heli ja salvestab aja, mis kulub anduril, et saada heli tagasi mis tahes objektilt, millelt see põrkab.

pikad mikrosekundidToInches (pikad mikrosekundid) {

tagasituleku mikrosekundid / 74 /2;

}

Nüüd ühendame juhtmega Arduino koodiga arvutisse, seadistame pordid ja käivitame selle! Selles mängus on kaks režiimi. Võite kasutada ainult vedelkristallekraani, servomootorit, sensorit ja RGB LED -d ning teate ainult kaugust, mis peate andurist olema, mis on raskem režiim. Lihtsam režiim hõlmab seeriamonitori kasutamist menüüs Tools> Serial Monitor, mis värskendab teid iga sekundiga, kui kaugel olete andurist, et saaksite teha vajalikke kohandusi.

Täname lugemise eest!

Soovitan: