Indholdsfortegnelse:

Quick Reaction Game: Distance Version: 5 trin (med billeder)
Quick Reaction Game: Distance Version: 5 trin (med billeder)

Video: Quick Reaction Game: Distance Version: 5 trin (med billeder)

Video: Quick Reaction Game: Distance Version: 5 trin (med billeder)
Video: seeing wife face for first time #shorts 2024, Juli
Anonim
Hurtigt reaktionsspil: Afstandsversion
Hurtigt reaktionsspil: Afstandsversion

Hej. Dette er en instruktion om, hvordan du opretter et spil, der tester både din reaktionstid og følelse af afstand. Dette projekt er baseret på et gammelt projekt, hvor jeg deltog med to spillere, der konkurrerede om at se, hvem der havde en hurtigere reaktionstid ved at klikke på en knap, når en lampe blev grøn. Denne har et lignende formål, bortset fra at den er singleplayer, og i stedet for at et lys slukker, får spilleren en tidsramme til at distancere deres hånd et bestemt rum væk fra en distancesensor.

Som alle andre Arduino -projekter vil dette spil kræve mange elektriske komponenter i Arduino -kredsløbet. Hovedkomponenterne, bortset fra ledningerne og selve Arduino, omfatter brødbrættet, en servomotor, et LCD -display, en RGB LED og en afstandssensor.

Ved hjælp af https://abra-electronics.com er prisen eksklusive ledninger og Arduino $ 32,12 CAD.

Trin 1: Trin 1: Afstandssensor

Trin 1: Afstandssensor
Trin 1: Afstandssensor

Det første trin er at opsætte ultralydsafstandssensoren på brødbrættet og koble den til Arduino. Sensorens nøjagtige position er faktisk ligegyldig, men ideelt set er den tæt på en kant, så der er plads til de andre komponenter, som vist på billedet ovenfor. Der er fire ben på sensoren; GND, VCC, TRIG og ECHO. GND og VCC skal forbindes henholdsvis til jorden og strømskinner og tilslutte de to andre ben til to ben på Arduino. De to ben jeg brugte var 12 til ECHO og 11 til TRIG. Brug to andre ledninger til at drive strømskinnen og jordet jordskinnen ved at forbinde strømskinnen til 5V -stiften og jordskinnen til en GND -stift.

Trin 2: Trin 2: Servomotor

Trin 2: Servomotor
Trin 2: Servomotor

Det næste trin er at opsætte servomotoren. I dette projekt fungerer servomotoren som en timer. Den starter ved 1 grad, og i løbet af den periode, hvor brugeren skal distancere sine hænder, vil den rotere til 180 grader. Jeg brugte 2 sekunder til, når brugeren finder ud af, hvor langt de skal distancere deres hænder, så servoen roterer 179 grader over en periode på 2 sekunder og roterer med korte intervaller. Servomotoren har tre ledninger; normalt en gul, en rød og en brun. Den røde går ind i strømskinnen, der allerede er forbundet til 5V, og den brune går ind i jordskinnen, der allerede er forbundet til GND. Den sidste ledning sættes i en Arduino pin. Jeg valgte pin #9 til denne. Derefter har du brug for en kondensator, der forbinder den samme skinne, som servomotorens strøm- og jordledninger er forbundet til, som det ses på billedet ovenfor.

Trin 3: Trin 3: RGB LED

Trin 3: RGB LED
Trin 3: RGB LED

LED'ens funktion i dette er at fungere som en skala for scoren. Når spillerens score er omkring 0, vil LED'en være hvid og blive mere rød, hvis spillerens score falder og grønt, hvis spillerens score stiger. Denne LED har fire ben; et rødt lysben, et blålysben, et grønt lysben og en fælles katode delt mellem de tre andre ben. Den fælles katode, det længste ben, er forbundet til strømskinnen, så den modtager 5 volt. Fastgør 330 ohm modstande til de tre andre farveben, og fastgør de andre ender af disse modstande til PWM digitale stifter på Arduino. Dem, jeg brugte, var digitale stifter 3, 5 og 6 til henholdsvis de røde, grønne og blå ben.

Trin 4: Trin 4: LCD

Trin 4: LCD
Trin 4: LCD

Den sidste komponent er LCD, som står for liquid crystal display. Formålet med dette er at fortælle spilleren deres aktuelle score samt afstanden, de har brug for at lægge deres hænder væk fra sensoren. Der er fire pins her; GND, VCC, SDA og SCL. GND og VCC vil blive tilsluttet henholdsvis jorden og strømskinnerne på brødbrættet. SDA -stiften skal forbindes til den analoge pin A4, og SCL -stiften skal forbindes med den analoge pin A5. I modsætning til de andre komponenter skal du koble SDA- og SCL -benene til A4 og A5.

Trin 5: Trin 5: Koden

Nu hvor vi har tilsluttet alle komponenterne, kan vi skrive koden. Den første del af koden er at importere de nødvendige biblioteker og erklære vores variabler, og hvilke pins komponenterne er forbundet til. Vi er nødt til at importere Wire-, LiquidCrystal_I2C- og Servobibliotekerne til denne kode.

#omfatte

#omfatte

#omfatte

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int score = 0;

int tim = 500;

int nuværende = tilfældig (8, 16); // tilfældig værdi, hvor brugeren skal fjerne hånden fra sensoren

LiquidCrystal_I2C lcd (0x27, 16, 2); // LCD opsætning

Nu skal vi bruge void setup () til at deklarere vores pin -typer og opsætte andre nødvendige komponenter.

ugyldig opsætning () {myServo.attach (9); Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); lcd.init (); lcd.backlight (); lcd.begin (16, 2); lcd.clear (); // LCD -opsætning}

Nu skal vi konfigurere RGB LED -koden ved hjælp af en funktion og PWM:

void setColor (int rød, int grøn, int blå) {

rød = 255 - rød;

grøn = 255 - grøn;

blå = 255 - blå;

analogWrite (redPin, rød);

analogWrite (greenPin, grøn);

analogWrite (bluePin, blå);

}

Nu skal vi tilføje tomrumsløkken (). Her vil vi generere tilfældige heltal og bruge en række if -sætninger til at styre spillet for spilleren. Den aktuelle variabel, opsat ovenfor, er for den aktuelle afstand, spilleren skal distancere sig fra sensoren.

Fordi koden i tomrumsløkken () er meget lang, vil jeg indsætte et link til et dokument, der har den kode:

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

Endelig er vi nødt til at foretage de faktiske beregninger for at konvertere ultralydsafstandssensorens værdier til tommer. Ultralydsafstandssensoren måler ikke direkte afstanden; det frigiver lyd og registrerer den tid, det tager for sensoren at få lyden tilbage fra det objekt, den hopper af.

lange mikrosekunderToInches (lange mikrosekunder) {

returner mikrosekunder / 74 /2;

}

Nu tilslutter vi den kablede Arduino til computeren med koden, opsætter portene og kører den! Der er to tilstande til dette spil. Enten kan du kun bruge LCD -displayet, servomotoren, sensoren og RGB -LED'en, og du ved kun den afstand, du skal være fra sensoren, hvilket er den sværere tilstand. Den lettere tilstand indebærer at bruge den serielle skærm i Værktøjer> Seriel skærm, som hvert sekund opdaterer dig om, hvor langt du er fra sensoren, så du kan foretage nødvendige justeringer.

Tak fordi du læste!

Anbefalede: