INHOUDSOPGAWE:

Vinnige reaksiespel: Afstandweergawe: 5 stappe (met foto's)
Vinnige reaksiespel: Afstandweergawe: 5 stappe (met foto's)

Video: Vinnige reaksiespel: Afstandweergawe: 5 stappe (met foto's)

Video: Vinnige reaksiespel: Afstandweergawe: 5 stappe (met foto's)
Video: Official video! Винтаж, ТРАВМА, SKIDRI, DVRKLXGHT - Плохая Девочка (phonk) 2024, Julie
Anonim
Vinnige reaksiespel: Afstandweergawe
Vinnige reaksiespel: Afstandweergawe

Hi. Dit is 'n instruksie hoe u 'n speletjie kan skep wat u reaksietyd en gevoel van afstand toets. Hierdie projek is gebaseer op 'n ou projek waarby twee spelers deelgeneem het om te sien wie 'n vinniger reaksietyd gehad het deur op 'n knoppie te klik wanneer 'n lig groen word. Hierdie een het 'n soortgelyke doel, behalwe dat dit 'n enkelspeler is, en eerder as 'n lig wat afgaan, kry die speler 'n tydsraamwerk om hul hand 'n sekere spasie van 'n afstandsensor af te distansieer.

Soos alle Arduino -projekte, benodig hierdie spel talle elektriese komponente in die Arduino -kring. Die belangrikste komponente, behalwe die bedrading en die Arduino self, sluit in die broodbord, 'n servomotor, 'n LCD -skerm, 'n RGB LED en 'n afstandsensor.

Met behulp van https://abra-electronics.com is die prys sonder die drade en Arduino $ 32,12 CAD.

Stap 1: Stap 1: Afstandsensor

Stap 1: Afstandsensor
Stap 1: Afstandsensor

Die eerste stap is om die ultrasoniese afstandsensor op die broodbord op te stel en na die Arduino te dra. Die presiese posisie van die sensor maak nie eintlik saak nie, maar ideaal is dit naby aan 'n rand sodat daar ruimte is vir die ander komponente, soos in die prent hierbo getoon. Daar is vier penne op die sensor; GND, VCC, TRIG en ECHO. GND en VCC moet onderskeidelik in die grond- en kragrails gekoppel word en die ander twee penne in twee penne op die Arduino ingebind word. Die twee penne wat ek gebruik het, was 12 vir ECHO en 11 vir TRIG. Gebruik twee ander drade om die kragrail aan te dryf en die grondrail te aard deur die kragrail aan die 5V -pen en die grondrail aan 'n GND -pen te koppel.

Stap 2: Stap 2: Servomotor

Stap 2: Servomotor
Stap 2: Servomotor

Die volgende stap is om die servomotor op te stel. In hierdie projek funksioneer die servomotor as 'n timer. Dit begin by 1 graad, en oor die tydperk waarin die gebruiker sy hande moet verwyder, draai dit tot 180 grade. Ek het 2 sekondes gebruik toe die gebruiker uitvind hoe ver hulle hande moet afstand, sodat die servo 179 grade oor 'n periode van 2 sekondes draai, met 'n kort tussenpose. Die servomotor het drie drade; gewoonlik geel, rooi en bruin. Die rooi gaan in die kragrail wat reeds in 5V bedraad is, en die bruin in die grondrail wat reeds in GND aangeslote is. Die laaste draad word in 'n Arduino -pen ingeprop. Ek het pin #9 gekies vir hierdie een. Dan benodig u 'n kondensator wat dieselfde spoor verbind waarmee die servomotor se krag- en aarddrade verbind is, soos in die prent hierbo gesien.

Stap 3: Stap 3: RGB LED

Stap 3: RGB LED
Stap 3: RGB LED

Die funksie van die LED hierin is om op te tree as 'n skaal vir die telling. As die speler se telling ongeveer 0 is, sal die LED wit wees en sal dit meer rooi word as die speler se telling daal en groen as die speler se telling styg. Hierdie LED het vier bene; 'n rooi lig been, 'n blou lig been, 'n groen lig been en 'n gemeenskaplike katode wat tussen die ander drie bene gedeel word. Die gewone katode, die langste been, word aan die kragrail gekoppel sodat dit 5 volt ontvang. Koppel 330 ohm -weerstande aan die ander drie kleurbene en heg die ander ente van die weerstande aan die digitale penne van PWM op die Arduino. Die een wat ek gebruik het, was digitale penne 3, 5 en 6 vir onderskeidelik die rooi, groen en blou bene.

Stap 4: Stap 4: LCD

Stap 4: LCD
Stap 4: LCD

Die laaste komponent is die LCD, wat staan vir vloeibare kristalvertoning. Die doel hiervan is om die speler sy huidige telling sowel as die afstand wat hulle nodig het om hul hande van die sensor af weg te sit, aan die speler te vertel. Hier is vier penne; GND, VCC, SDA en SCL. GND en VCC sal onderskeidelik in die grond- en kragrails van die broodbord gekoppel word. Die SDA -pen moet in die analoog pen A4 gekoppel word, en die SCL -pen in die analoog pen A5. Anders as die ander komponente, moet u die SDA- en SCL -penne op A4 en A5 aansluit.

Stap 5: Stap 5: die kode

Noudat ons al die komponente ingebind het, kan ons die kode skryf. Die eerste deel van die kode is om die nodige biblioteke in te voer en ons veranderlikes te verklaar en in watter penne die komponente verbind is. Ons moet die Wire-, LiquidCrystal_I2C- en Servo -biblioteke vir hierdie kode invoer.

#insluit

#insluit

#insluit

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int telling = 0;

int tim = 500;

int stroom = ewekansig (8, 16); // ewekansige waarde waar die gebruiker sy hand van die sensor moet verwyder

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

Nou moet ons die leemte -opstelling () gebruik om ons pinnetipes te verklaar en ander nodige komponente op te stel.

ongeldige opstelling () {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 -opstelling}

Nou moet ons die RGB LED -kode opstel met behulp van 'n funksie en PWM:

void setColor (int rooi, int groen, int blou) {

rooi = 255 - rooi;

groen = 255 - groen;

blou = 255 - blou;

analogWrite (redPin, rooi);

analogWrite (greenPin, groen);

analogWrite (blouPin, blou);

}

Nou moet ons die leemte -lus () byvoeg. Hier gaan ons ewekansige heelgetalle genereer en 'n reeks if -stellings gebruik om die spel vir die speler te beheer. Die huidige veranderlike, hierbo opgestel, is vir die huidige afstand wat die speler van die sensor moet distansieer.

Omdat die kode in die leemte -lus () baie lank is, plak ek 'n skakel na 'n dokument met die kode:

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

Uiteindelik moet ons die werklike berekeninge doen om die waardes van die ultrasoniese afstandsensor in duim om te skakel. Die ultrasoniese afstandsensor meet nie direk die afstand nie; dit maak klank vry en teken die tyd aan wat die sensor neem om die geluid terug te kry van die voorwerp waaruit dit weerkaats.

lang mikrosekondesToInches (lang mikrosekondes) {

gee mikrosekondes terug / 74 /2;

}

Nou steek ons die bedrade Arduino in die rekenaar met die kode, stel die poorte op en voer dit uit! Daar is twee maniere vir hierdie speletjie. U kan slegs die LCD -skerm, servomotor, sensor en die RGB LED gebruik, en u weet slegs die afstand wat u van die sensor moet wees, wat die moeiliker modus is. Die makliker modus behels die gebruik van die seriële monitor in Tools> Serial Monitor, wat u elke sekonde op hoogte sal hou van hoe ver u van die sensor af is, sodat u die nodige aanpassings kan aanbring.

Dankie vir die lees!

Aanbeveel: