Quick Reaction Game: Distance Version: 5 steg (med bilder)
Quick Reaction Game: Distance Version: 5 steg (med bilder)
Anonim
Quick Reaction Game: Distance Version
Quick Reaction Game: Distance Version

Hej. Detta är en instruktion om hur du skapar ett spel som testar både din reaktionstid och känsla av avstånd. Detta projekt är baserat på ett gammalt projekt som jag gjorde där två spelare tävlade om vem som hade en snabbare reaktionstid genom att klicka på en knapp när en lampa blev grön. Den här har ett liknande syfte, förutom att den är enspelare och snarare än att ett ljus släcks, får spelaren en tidsram för att distansera sin hand ett visst utrymme från en avståndssensor.

Liksom alla Arduino -projekt kommer detta spel att kräva många elektriska komponenter i Arduino -kretsen. Huvudkomponenterna, förutom ledningarna och själva Arduino, inkluderar brödbrädan, en servomotor, en LCD -display, en RGB -LED och en avståndssensor.

Med https://abra-electronics.com är priset exklusive ledningar och Arduino $ 32,12 CAD.

Steg 1: Steg 1: Avståndssensor

Steg 1: Avståndssensor
Steg 1: Avståndssensor

Det första steget är att installera ultraljudsavståndssensorn på brödbrädan och dra den till Arduino. Sensorns exakta position spelar egentligen ingen roll, men helst är den nära en kant så att det finns plats för de andra komponenterna, som visas på bilden ovan. Det finns fyra stift på sensorn; GND, VCC, TRIG och ECHO. GND och VCC ska kopplas in i marken respektive kraftskenorna och sätta in de andra två stiften i två stift på Arduino. De två stiften jag använde var 12 för ECHO och 11 för TRIG. Använd två andra ledningar för att driva kraftskenan och jorda jordskenan genom att ansluta kraftskenan till 5V -stiftet och jordskenan till en GND -stift.

Steg 2: Steg 2: Servomotor

Steg 2: Servomotor
Steg 2: Servomotor

Nästa steg är att ställa in servomotorn. I detta projekt fungerar servomotorn som en timer. Det börjar med 1 grad, och under den tid då användaren måste avstånda sina händer roterar det till 180 grader. Jag använde 2 sekunder för när användaren får reda på hur långt de måste avstånda sina händer, så servon roterar 179 grader under en period på 2 sekunder och roterar med korta intervall. Servomotorn har tre ledningar; vanligtvis en gul, en röd och en brun. Den röda går in i kraftskenan som redan är ansluten till 5V, och den bruna går in i markskenan som redan är ansluten till GND. Den sista ledningen ansluts till en Arduino -stift. Jag valde pin #9 för den här. Sedan behöver du en kondensator som ansluter samma skena som servomotorns ström- och jordledningar är anslutna till, som visas på bilden ovan.

Steg 3: Steg 3: RGB LED

Steg 3: RGB LED
Steg 3: RGB LED

Lysdiodens funktion i detta är att fungera som en skala för poängen. När spelarens poäng är runt 0 blir lysdioden vit och blir mer röd om spelarens poäng går ner och grönt om spelarens poäng stiger. Denna LED har fyra ben; ett ben med rött ljus, ett blått ben, ett grönt ljusben och en gemensam katod som delas mellan de tre andra benen. Den vanliga katoden, det längsta benet, är ansluten till kraftskenan så att den tar emot 5 volt. Fäst 330 ohm motstånd på de andra tre färgbenen och fäst de andra ändarna av dessa motstånd på PWM digitala stift på Arduino. De jag använde var digitala stift 3, 5 och 6 för de röda, gröna respektive blåa benen.

Steg 4: Steg 4: LCD

Steg 4: LCD
Steg 4: LCD

Den sista komponenten är LCD, som står för LCD -skärm. Syftet med detta är att berätta för spelaren deras nuvarande poäng samt avståndet de behöver för att hålla händerna borta från sensorn. Det finns fyra stift här; GND, VCC, SDA och SCL. GND och VCC kommer att kopplas in i jord- och strömskenorna på brödbrädan. SDA -stiftet måste anslutas till den analoga stiftet A4 och SCL -stiftet måste anslutas till det analoga stiftet A5. Till skillnad från de andra komponenterna måste du ansluta SDA- och SCL -stiften till A4 och A5.

Steg 5: Steg 5: Koden

Nu när vi har anslutit alla komponenter kan vi skriva koden. Den första delen av koden är att importera nödvändiga bibliotek och deklarera våra variabler och vilka stift som komponenterna är anslutna till. Vi måste importera Wire-, LiquidCrystal_I2C- och Servobiblioteken för den här koden.

#omfatta

#omfatta

#omfatta

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int poäng = 0;

int tim = 500;

int ström = slumpmässig (8, 16); // slumpmässigt värde där användaren måste avlägsna handen från sensorn

LiquidCrystal_I2C lcd (0x27, 16, 2); // LCD -inställning

Nu måste vi använda void setup () för att deklarera våra stifttyper och konfigurera andra nödvändiga komponenter.

void setup () {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 -inställning}

Nu måste vi ställa in RGB LED -koden med en funktion och 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, blue);

}

Nu måste vi lägga till void loop (). Här kommer vi att generera slumpmässiga heltal och använda en serie if -uttalanden för att styra spelet för spelaren. Den aktuella variabeln, inställningen ovan, är för det aktuella avstånd som spelaren måste distansera sig från sensorn.

Eftersom koden i void loop () är väldigt lång kommer jag att klistra in en länk till ett dokument som har den koden:

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

Slutligen måste vi göra de faktiska beräkningarna för att konvertera ultraljudsavståndssensorns värden till tum. Ultraljudsavståndssensorn mäter inte direkt avståndet; det släpper ut ljud och registrerar den tid det tar för sensorn att få tillbaka ljudet från vilket föremål det än studsar av.

långa mikrosekunderToInches (långa mikrosekunder) {

returmikrosekunder / 74 /2;

}

Nu ansluter vi den trådbundna Arduino till datorn med koden, konfigurerar portarna och kör den! Det finns två lägen för det här spelet. Antingen kan du bara använda LCD -skärmen, servomotorn, sensorn och RGB -lysdioden och du vet bara avståndet du måste vara från sensorn, vilket är det hårdare läget. Det enklare läget innebär att du använder den seriella bildskärmen i Verktyg> Seriell bildskärm, som uppdaterar dig varje sekund om hur långt du är från sensorn, så att du kan göra nödvändiga justeringar.

Tack för att du läser!

Rekommenderad: