Satura rādītājs:

Ātrās reakcijas spēle: Attāluma versija: 5 soļi (ar attēliem)
Ātrās reakcijas spēle: Attāluma versija: 5 soļi (ar attēliem)

Video: Ātrās reakcijas spēle: Attāluma versija: 5 soļi (ar attēliem)

Video: Ātrās reakcijas spēle: Attāluma versija: 5 soļi (ar attēliem)
Video: BERMUDU DIVSTŪRIS x APVEDCEĻŠ - Brāl' Ar Dzīvi Nekaulē 2024, Novembris
Anonim
Ātrās reakcijas spēle: attāluma versija
Ātrās reakcijas spēle: attāluma versija

Sveiki. Šī ir pamācība, kā izveidot spēli, kas pārbauda gan jūsu reakcijas laiku, gan attāluma sajūtu. Šis projekts ir balstīts uz vecu projektu, kurā es piedalījos, iesaistot divus spēlētājus, kuri sacentās, lai uzzinātu, kam bija ātrāks reakcijas laiks, noklikšķinot uz pogas, kad gaisma kļuva zaļa. Šim nolūkam ir līdzīgs mērķis, izņemot gadījumus, kad tas ir viens spēlētājs, un nevis iedegas gaisma, bet spēlētājam tiek dots laiks, lai attālinātu savu roku noteiktā attālumā no attāluma sensora.

Tāpat kā visiem Arduino projektiem, arī šai spēlei Arduino ķēdē būs nepieciešami daudzi elektriskie komponenti. Galvenās sastāvdaļas, izņemot elektroinstalāciju un pašu Arduino, ietver maizes dēli, servomotoru, LCD displeju, RGB LED un attāluma sensoru.

Izmantojot vietni https://abra-electronics.com, cena bez vadiem un Arduino ir 32,12 USD.

1. darbība: 1. darbība: attāluma sensors

1. darbība: attāluma sensors
1. darbība: attāluma sensors

Pirmais solis ir uzstādīt ultraskaņas attāluma sensoru uz maizes dēļa un pieslēgt to Arduino. Precīzam sensora stāvoklim faktiski nav nozīmes, bet ideālā gadījumā tas ir tuvu malai, lai būtu vietas citām sastāvdaļām, kā parādīts attēlā iepriekš. Uz sensora ir četras tapas; GND, VCC, TRIG un ECHO. GND un VCC ir jāpievieno attiecīgi zemei un strāvas sliedēm, un pārējās divās tapās jāpievieno divās Arduino tapās. Abas manis izmantotās tapas bija 12 ECHO un 11 - TRIG. Izmantojiet divus citus vadus, lai barotu strāvas sliedi un iezemētu sliedi, savienojot strāvas sliedi ar 5V tapu un zemējuma sliedi ar GND tapu.

2. darbība: 2. darbība: servomotors

2. solis: Servo motors
2. solis: Servo motors

Nākamais solis ir servomotora iestatīšana. Šajā projektā servomotors darbojas kā taimeris. Tas sāksies ar 1 grādu, un laika posmā, kurā lietotājam ir jānošķir rokas, tas pagriezīsies līdz 180 grādiem. Es izmantoju 2 sekundes, kad lietotājs uzzina, cik tālu viņiem ir jāatdala rokas, tāpēc servo 2 sekunžu laikā rotē 179 grādus, rotējot īsos intervālos. Servomotoram ir trīs vadi; parasti dzeltens, sarkans un brūns. Sarkanais nonāk barošanas sliedē, kas jau ir pievienota 5 V spriegumam, un brūnais - zemes sliedē, kas jau ir pievienota GND. Pēdējais vads tiek pievienots Arduino tapai. Šim es izvēlējos tapu #9. Tad jums ir nepieciešams kondensators, kas savieno to pašu sliedi, kurai ir pievienots servomotora barošanas un zemējuma vadi, kā redzams attēlā iepriekš.

3. darbība: 3. darbība: RGB gaismas diode

3. darbība: RGB gaismas diode
3. darbība: RGB gaismas diode

Gaismas diodes funkcija šajā gadījumā ir rādītāja skala. Ja spēlētāja rezultāts ir ap 0, gaismas diode būs balta un kļūs sarkanāka, ja spēlētāja rezultāts samazināsies, un zaļa, ja spēlētāja rezultāts palielinās. Šim LED ir četras kājas; sarkanās gaismas kāja, zilās gaismas kāja, zaļās gaismas kāja un kopējais katods, kas sadalīts starp pārējām trim kājām. Kopējais katods, garākā kāja, ir pievienots barošanas sliedei, lai tas saņemtu 5 voltus. Pārējām trim krāsu kājām piestipriniet 330 omu rezistorus un pārējos šo rezistoru galus pie PWM digitālajām tapām Arduino. Es izmantoju digitālās tapas 3, 5 un 6 attiecīgi sarkanajām, zaļajām un zilajām kājām.

4. darbība: 4. darbība: LCD

4. solis: LCD
4. solis: LCD

Pēdējais komponents ir LCD, kas apzīmē šķidro kristālu displeju. Tā mērķis ir pateikt spēlētājam savu pašreizējo rezultātu, kā arī attālumu, kas nepieciešams, lai rokas novirzītu no sensora. Šeit ir četras tapas; GND, VCC, SDA un SCL. GND un VCC tiks pievienoti attiecīgi maizes dēļa zemei un barošanas sliedēm. SDA tapa ir jāpievieno analogajai tapai A4, un SCL tapa jāpievieno analogajai tapai A5. Atšķirībā no citiem komponentiem, SDA un SCL tapas ir jāpievieno A4 un A5.

5. darbība: 5. darbība: kods

Tagad, kad esam pievienojuši visus komponentus, mēs varam uzrakstīt kodu. Pirmā koda daļa ir vajadzīgo bibliotēku importēšana un mūsu mainīgo deklarēšana un to kontaktu pieslēgšana. Šim kodam mums ir jāimportē Wire, LiquidCrystal_I2C un Servo bibliotēkas.

#iekļaut

#iekļaut

#iekļaut

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int rezultāts = 0;

int tim = 500;

int strāva = nejauša (8, 16); // nejauša vērtība, kur lietotājam ir jānovieto roka no sensora

LiquidCrystal_I2C LCD (0x27, 16, 2); // LCD iestatīšana

Tagad mums ir jāizmanto void setup (), lai deklarētu mūsu tapu veidus un iestatītu citus nepieciešamos komponentus.

void setup () {myServo.attach (9); Sērijas sākums (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); lcd.init (); lcd.fona apgaismojums (); lcd. sākums (16, 2); lcd.clear (); // LCD iestatīšana}

Tagad mums ir jāiestata RGB LED kods, izmantojot funkciju un PWM:

void setColor (int sarkans, int zaļš, int zils) {

sarkans = 255 - sarkans;

zaļš = 255 - zaļš;

zils = 255 - zils;

analogWrite (redPin, sarkans);

analogWrite (zaļšPin, zaļš);

analogWrite (zilsPin, zils);

}

Tagad mums jāpievieno tukšuma cilpa (). Šeit mēs ģenerēsim nejaušus veselus skaitļus un izmantosim virkni paziņojumu, lai kontrolētu spēlētāja spēli. Pašreizējais mainīgais, kas iestatīts iepriekš, attiecas uz pašreizējo attālumu, kas spēlētājam jāatrodas no sensora.

Tā kā kods tukšuma cilpā () ir ļoti garš, es ielīmēšu saiti uz dokumentu, kuram ir šis kods:

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

Visbeidzot, mums ir jāveic faktiskie aprēķini, lai ultraskaņas attāluma sensora vērtības pārvērstu collās. Ultraskaņas attāluma sensors tieši nemēra attālumu; tas izdala skaņu un reģistrē laiku, kas nepieciešams, lai sensors atgūtu skaņu no jebkura objekta, no kura tas atlec.

garas mikrosekundesToInches (garas mikrosekundes) {

atgriešanās mikrosekundes / 74 /2;

}

Tagad mēs pievienojam vadu Arduino datoram ar kodu, iestatām portus un palaižam to! Šai spēlei ir divi režīmi. Vai nu jūs varat izmantot tikai LCD displeju, servomotoru, sensoru un RGB LED, un jūs zināt tikai attālumu, kas jums jāatrodas no sensora, kas ir grūtāks režīms. Vienkāršākais režīms ietver seriālā monitora izmantošanu izvēlnē Rīki> Sērijas monitors, kas katru sekundi informēs par to, cik tālu esat no sensora, lai jūs varētu veikt nepieciešamos pielāgojumus.

Paldies, ka izlasījāt!

Ieteicams: