Sadržaj:

Igra brze reakcije: Verzija na daljinu: 5 koraka (sa slikama)
Igra brze reakcije: Verzija na daljinu: 5 koraka (sa slikama)

Video: Igra brze reakcije: Verzija na daljinu: 5 koraka (sa slikama)

Video: Igra brze reakcije: Verzija na daljinu: 5 koraka (sa slikama)
Video: Greška u filmu Toma koju je malo ko primetio 2024, Juli
Anonim
Igra za brzu reakciju: Verzija na daljinu
Igra za brzu reakciju: Verzija na daljinu

Ćao. Ovo je Instrukcija o tome kako stvoriti igru koja testira i vaše vrijeme reakcije i osjećaj udaljenosti. Ovaj projekat je zasnovan na starom projektu koji sam radio, a koji je uključivao dva igrača koji su se takmičili da vide ko je brže reagovao pritiskom na dugme kada se upali zeleno svetlo. Ovaj ima sličnu namjenu, osim što je za jednog igrača i umjesto svjetla koje se gasi, igraču se daje vremenski okvir da udalje svoju ruku na određeni prostor od senzora udaljenosti.

Kao i svi Arduino projekti, ova igra će zahtijevati brojne električne komponente u Arduino kolu. Glavne komponente, osim ožičenja i samog Arduina, uključuju matičnu ploču, servo motor, LCD zaslon, RGB LED i senzor udaljenosti.

Koristeći https://abra-electronics.com, cijena bez žica i Arduina je 32,12 USD CAD.

Korak 1: Korak 1: Senzor udaljenosti

Korak 1: Senzor udaljenosti
Korak 1: Senzor udaljenosti

Prvi korak je postavljanje ultrazvučnog senzora udaljenosti na matičnu ploču i njegovo povezivanje s Arduinom. Tačan položaj senzora zapravo nije bitan, ali idealno je da je blizu ivice tako da ima mjesta za ostale komponente, kao što je prikazano na gornjoj slici. Na senzoru postoje četiri pina; GND, VCC, TRIG i ECHO. GND i VCC trebaju biti spojeni u tlo i strujne šine, a druga dva pina u dva pina na Arduinu. Dvije igle koje sam koristio bile su 12 za ECHO i 11 za TRIG. Za napajanje razvodnika upotrijebite dvije druge žice i uzemljite uzemljenu šinu spajanjem razvodnika za napajanje na 5V pin i uzemljenja na GND pin.

Korak 2: Korak 2: Servo motor

Korak 2: Servo motor
Korak 2: Servo motor

Sljedeći korak je postavljanje servo motora. U ovom projektu, servo motor funkcionira kao mjerač vremena. Počet će na 1 stepen, a tokom vremena u kojem korisnik mora da distancira ruke, rotiraće se na 180 stepeni. Koristio sam 2 sekunde kada korisnik sazna koliko udaljeni moraju imati ruke, pa se servo okreće za 179 stepeni u periodu od 2 sekunde, rotirajući u kratkim intervalima. Servo motor ima tri žice; obično žuta, crvena i smeđa. Crvena ulazi u razvodnik koji je već ožičen na 5V, a smeđi ide u uzemljenje već spojen u GND. Posljednja žica se priključuje na Arduino pin. Za ovaj sam odabrao pin #9. Zatim vam je potreban kondenzator koji povezuje istu šinu na koju su priključene žice napajanja servo motora i uzemljenje, kao što se vidi na gornjoj slici.

Korak 3: Korak 3: RGB LED

Korak 3: RGB LED
Korak 3: RGB LED

Funkcija LED diode u ovoj funkciji je da djeluje kao skala za bodovanje. Kada je rezultat igrača oko 0, LED dioda će biti bijela i postat će sve crvena ako se rezultat igrača smanji, a zelena ako rezultat igrača raste. Ova LED dioda ima četiri noge; noga crvenog svjetla, noga plavog svjetla, noga zelenog svjetla i zajednička katoda podijeljena između ostale tri noge. Uobičajena katoda, najduža noga, spojena je na razvodnik tako da prima 5 volti. Priključite otpornike od 330 ohma na ostale tri boje nogu, a druge krajeve tih otpornika pričvrstite na PWM digitalne pinove na Arduinu. Ja sam koristio digitalne iglice 3, 5 i 6 za crvene, zelene i plave noge.

Korak 4: Korak 4: LCD

Korak 4: LCD
Korak 4: LCD

Konačna komponenta je LCD, što znači ekran sa tečnim kristalima. Svrha ovoga je reći igraču njihov trenutni rezultat, kao i udaljenost koju trebaju odmaknuti ruke od senzora. Ovdje postoje četiri igle; GND, VCC, SDA i SCL. GND i VCC bit će spojeni u tlo, odnosno u ograde za električnu ploču. SDA pin mora biti spojen na analogni pin A4, a SCL pin na analogni pin A5. Za razliku od ostalih komponenti, morate priključiti pinove SDA i SCL na A4 i A5.

Korak 5: Korak 5: Kôd

Sada kada smo spojili sve komponente, možemo napisati kôd. Prvi dio koda je uvoz potrebnih biblioteka i deklaracija naših varijabli i u koje pinove su komponente povezane. Moramo uvesti Wire, LiquidCrystal_I2C i Servo biblioteke za ovaj kod.

#include

#include

#include

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int rezultat = 0;

int tim = 500;

int struja = slučajno (8, 16); // slučajna vrijednost pri kojoj korisnik mora udaljiti ruku od senzora

LiquidCrystal_I2C LCD (0x27, 16, 2); // LCD podešavanje

Sada moramo koristiti void setup () za deklaraciju naših tipova pinova i postavljanje drugih potrebnih komponenti.

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 podešavanje}

Sada moramo postaviti RGB LED kôd pomoću funkcije i PWM -a:

void setColor (int crvena, int zelena, int plava) {

crvena = 255 - crvena;

zelena = 255 - zelena;

plava = 255 - plava;

analogWrite (redPin, crveno);

analogWrite (greenPin, zeleno);

analogWrite (bluePin, plavo);

}

Sada moramo dodati void petlju (). Ovdje ćemo generirati nasumične cijele brojeve i koristiti niz if naredbi za kontrolu igre za igrača. Trenutna varijabla, gore postavljena, služi za trenutnu udaljenost koju igrač mora distancirati od senzora.

Budući da je kod u void loop () vrlo dugačak, zalijepit ću vezu na dokument koji ima taj kod:

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

Na kraju, moramo napraviti stvarne proračune kako bismo pretvorili vrijednosti ultrazvučnog senzora udaljenosti u inče. Ultrazvučni senzor udaljenosti ne mjeri direktno udaljenost; ispušta zvuk i bilježi vrijeme potrebno senzoru da vrati zvuk s bilo kojeg predmeta od kojeg se odbija.

long microsecondsToInches (duge mikrosekunde) {

povratne mikrosekunde / 74 /2;

}

Sada priključujemo ožičeni Arduino u računalo s kodom, postavljamo portove i pokrećemo ga! Postoje dva načina igre. Ili možete koristiti samo LCD ekran, servo motor, senzor i RGB LED i samo znate udaljenost koju morate imati od senzora, što je teži način rada. Lakši način uključuje korištenje serijskog monitora u Tools> Serial Monitor, koji će vas svake sekunde ažurirati koliko ste udaljeni od senzora, tako da možete izvršiti potrebna prilagođavanja.

Hvala na čitanju!

Preporučuje se: