Innholdsfortegnelse:

Quick Reaction Game: Distance Version: 5 Steps (med bilder)
Quick Reaction Game: Distance Version: 5 Steps (med bilder)

Video: Quick Reaction Game: Distance Version: 5 Steps (med bilder)

Video: Quick Reaction Game: Distance Version: 5 Steps (med bilder)
Video: It's not badminton, It's a smashminton #shorts 2024, Juli
Anonim
Quick Reaction Game: Distance Version
Quick Reaction Game: Distance Version

Hei. Dette er en instruks om hvordan du lager et spill som tester både din reaksjonstid og følelse av avstand. Dette prosjektet er basert på et gammelt prosjekt jeg involverte to spillere som konkurrerte om hvem som hadde en raskere reaksjonstid ved å klikke på en knapp når lyset ble grønt. Denne har et lignende formål, bortsett fra at den er single-player, og i stedet for at et lys slukker, får spilleren en tidsramme for å distanse hånden en bestemt plass fra en distansesensor.

Som alle Arduino -prosjekter, vil dette spillet kreve mange elektriske komponenter i Arduino -kretsen. Hovedkomponentene, bortsett fra ledningene og selve Arduino, inkluderer brødbrettet, en servomotor, en LCD -skjerm, en RGB LED og en avstandssensor.

Ved å bruke https://abra-electronics.com er prisen eksklusive ledninger og Arduino $ 32,12 CAD.

Trinn 1: Trinn 1: Avstandssensor

Trinn 1: Avstandssensor
Trinn 1: Avstandssensor

Det første trinnet er å sette opp ultralydavstandssensoren på brødbrettet og koble den til Arduino. Sensorens nøyaktige posisjon spiller egentlig ingen rolle, men ideelt sett er den nær en kant, slik at det er plass til de andre komponentene, som vist på bildet ovenfor. Det er fire pinner på sensoren; GND, VCC, TRIG og ECHO. GND og VCC skal kobles til henholdsvis bakken og strømskinnene, og koble de to andre pinnene til to pinner på Arduino. De to pinnene jeg brukte var 12 for ECHO og 11 for TRIG. Bruk to andre ledninger til å drive kraftskinnen og jordet jordskinnen ved å koble kraftskinnen til 5V -pinnen og jordskinnen til en GND -pinne.

Trinn 2: Trinn 2: Servomotor

Trinn 2: Servomotor
Trinn 2: Servomotor

Det neste trinnet er å sette opp servomotoren. I dette prosjektet fungerer servomotoren som en timer. Den starter med 1 grad, og i løpet av tiden brukeren må distanse hendene, vil den rotere til 180 grader. Jeg brukte 2 sekunder på når brukeren finner ut hvor langt de må distanse hendene, så servoen roterer 179 grader over en periode på 2 sekunder, roterer i korte intervaller. Servomotoren har tre ledninger; vanligvis en gul, en rød og en brun. Den røde går inn i kraftskinnen som allerede er koblet til 5V, og den brune går inn i jordskinnen som allerede er koblet til GND. Den siste ledningen kobles til en Arduino -pinne. Jeg valgte pin #9 for denne. Deretter trenger du en kondensator som kobler den samme skinnen som servomotorens strøm- og jordledninger er koblet til, som vist på bildet ovenfor.

Trinn 3: Trinn 3: RGB LED

Trinn 3: RGB LED
Trinn 3: RGB LED

LED -funksjonen i denne er å fungere som en skala for poengsummen. Når spillerens poengsum er rundt 0, vil lysdioden være hvit, og den vil bli mer rød hvis spillerens poengsum går ned og grønt hvis spillerens poengsum går opp. Denne LED -en har fire ben; et rødt bein, et blått ben, et grønt lysben og en felles katode delt mellom de tre andre bena. Den vanlige katoden, det lengste benet, er koblet til kraftskinnen, slik at den mottar 5 volt. Fest 330 ohm motstander til de tre andre fargebenene, og fest de andre endene av disse motstandene til PWM digitale pinner på Arduino. De jeg brukte var digitale pinner 3, 5 og 6 for henholdsvis de røde, grønne og blå bena.

Trinn 4: Trinn 4: LCD

Trinn 4: LCD
Trinn 4: LCD

Den siste komponenten er LCD, som står for LCD -skjerm. Formålet med dette er å fortelle spilleren sin nåværende poengsum, så vel som avstanden de trenger for å legge hendene vekk fra sensoren. Det er fire pins her; GND, VCC, SDA og SCL. GND og VCC vil bli koblet til henholdsvis bakken og strømskinnene på brødbrettet. SDA -pinnen må kobles til den analoge pinnen A4, og SCL -pinnen må kobles til den analoge pinnen A5. I motsetning til de andre komponentene, må du koble SDA- og SCL -pinnene til A4 og A5.

Trinn 5: Trinn 5: Koden

Nå som vi har koblet til alle komponentene, kan vi skrive koden. Den første delen av koden er å importere de nødvendige bibliotekene og deklarere våre variabler og hvilke pinner komponentene er koblet til. Vi må importere Wire-, LiquidCrystal_I2C- og Servobibliotekene for denne koden.

#inkludere

#inkludere

#inkludere

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 strøm = tilfeldig (8, 16); // tilfeldig verdi der brukeren må distanse hånden fra sensoren

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

Nå må vi bruke void -oppsettet () til å deklarere våre pin -typer og konfigurere andre nødvendige komponenter.

ugyldig oppsett () {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 -oppsett}

Nå må vi sette opp RGB LED -koden ved hjelp av en funksjon og PWM:

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

rød = 255 - rød;

grønn = 255 - grønn;

blå = 255 - blå;

analogWrite (redPin, rød);

analogWrite (greenPin, grønn);

analogWrite (bluePin, blå);

}

Nå må vi legge til hulrommet (). Her skal vi generere tilfeldige heltall og bruke en rekke if -setninger for å kontrollere spillet for spilleren. Den nåværende variabelen, oppsettet ovenfor, er for den nåværende avstanden spilleren må distansere seg fra sensoren.

Fordi koden i void loop () er veldig lang, skal jeg lime inn en lenke til et dokument som har den koden:

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

Til slutt må vi gjøre de faktiske beregningene for å konvertere ultralydavstandssensorens verdier til tommer. Ultralydavstandssensoren måler ikke direkte avstand; den slipper lyd og registrerer tiden det tar for sensoren å få lyden tilbake fra det objektet den hopper av.

long microsecondsToInches (long microseconds) {

returner mikrosekunder / 74 /2;

}

Nå kobler vi den kablede Arduino til datamaskinen med koden, setter opp portene og kjører den! Det er to moduser for dette spillet. Enten kan du bare bruke LCD -skjermen, servomotoren, sensoren og RGB -LED -en, og du vet bare avstanden du må være fra sensoren, som er den vanskeligere modusen. Den enklere modusen innebærer å bruke den serielle skjermen i Verktøy> Seriell skjerm, som oppdaterer deg hvert sekund om hvor langt du er fra sensoren, slik at du kan gjøre nødvendige justeringer.

Takk for at du leste!

Anbefalt: