Turinys:

Greito reagavimo žaidimas: atstumo versija: 5 žingsniai (su paveikslėliais)
Greito reagavimo žaidimas: atstumo versija: 5 žingsniai (su paveikslėliais)

Video: Greito reagavimo žaidimas: atstumo versija: 5 žingsniai (su paveikslėliais)

Video: Greito reagavimo žaidimas: atstumo versija: 5 žingsniai (su paveikslėliais)
Video: Internet Technologies - Computer Science for Business Leaders 2016 2024, Lapkritis
Anonim
Greito reagavimo žaidimas: atstumo versija
Greito reagavimo žaidimas: atstumo versija

Sveiki. Tai yra instrukcija, kaip sukurti žaidimą, kuris patikrintų jūsų reakcijos laiką ir atstumo jausmą. Šis projektas yra paremtas senu projektu, kuriame dalyvavau du žaidėjai, kurie varžėsi, norėdami sužinoti, kas greičiau reaguoja spustelėję mygtuką, kai užsidega žalia lemputė. Šis turi panašų tikslą, išskyrus tai, kad jis yra vienas žaidėjas, o ne užgesianti šviesa, žaidėjui suteikiamas laiko tarpas, kad ranka būtų atitolinta tam tikra erdve nuo atstumo jutiklio.

Šiam žaidimui, kaip ir visiems „Arduino“projektams, reikės daug elektrinių komponentų „Arduino“grandinėje. Pagrindiniai komponentai, išskyrus laidus ir patį „Arduino“, yra duonos lenta, servo variklis, LCD ekranas, RGB šviesos diodas ir atstumo jutiklis.

Naudojant https://abra-electronics.com, kaina be laidų ir „Arduino“yra 32,12 USD.

1 žingsnis: 1 žingsnis: atstumo jutiklis

1 žingsnis: atstumo jutiklis
1 žingsnis: atstumo jutiklis

Pirmasis žingsnis yra nustatyti ultragarsinį atstumo jutiklį ant duonos lentos ir prijungti prie „Arduino“. Tiksli jutiklio padėtis iš tikrųjų neturi reikšmės, tačiau idealiu atveju jis yra arti krašto, kad būtų vietos kitiems komponentams, kaip parodyta aukščiau esančiame paveikslėlyje. Ant jutiklio yra keturi kaiščiai; GND, VCC, TRIG ir ECHO. GND ir VCC turi būti prijungti atitinkamai prie žemės ir maitinimo bėgių, o kiti du kištukai - į du „Arduino“kaiščius. Du mano naudojami kaiščiai buvo 12 ECHO ir 11 TRIG. Naudokite du kitus laidus, kad maitintumėte maitinimo bėgį, ir įžeminkite įžeminimo bėgelį, prijungdami maitinimo bėgelį prie 5 V kaiščio, o įžeminimo bėgelį - prie GND kaiščio.

2 žingsnis: 2 žingsnis: servo variklis

2 žingsnis: Servo variklis
2 žingsnis: Servo variklis

Kitas žingsnis yra servo variklio nustatymas. Šiame projekte servo variklis veikia kaip laikmatis. Jis prasidės nuo 1 laipsnio ir per tą laiką, per kurį vartotojas turės nutolinti rankas, pasuks iki 180 laipsnių. Naudojau 2 sekundes, kai vartotojas sužino, kiek toli turi nutolti rankas, todėl servo sistema per 2 sekundes sukasi 179 laipsniais, sukdamasi trumpais intervalais. Servo variklis turi tris laidus; paprastai geltona, raudona ir ruda. Raudonasis eina į maitinimo bėgelį, kuris jau prijungtas prie 5 V, o rudas - į įžeminimo bėgelį, jau prijungtą prie GND. Galutinis laidas prijungiamas prie „Arduino“kaiščio. Aš pasirinkau kaištį #9. Tada jums reikia kondensatoriaus, jungiančio tą patį bėgelį, prie kurio prijungti servo variklio maitinimo ir įžeminimo laidai, kaip parodyta aukščiau esančiame paveikslėlyje.

3 veiksmas: 3 žingsnis: RGB šviesos diodas

3 žingsnis: RGB šviesos diodas
3 žingsnis: RGB šviesos diodas

Šviesos diodo funkcija yra veikti kaip balo skalė. Kai žaidėjo rezultatas yra maždaug 0, šviesos diodas bus baltas ir raudonos spalvos, jei žaidėjo rezultatas sumažės, o žalias, jei žaidėjo rezultatas pakils. Šis šviesos diodas turi keturias kojas; raudona šviesa, mėlyna šviesa, žalia šviesa ir bendras katodas, dalijamasi tarp kitų trijų kojų. Bendras katodas, ilgiausia koja, yra prijungtas prie maitinimo bėgio, todėl gauna 5 voltų įtampą. Prie kitų trijų spalvų kojelių pritvirtinkite 330 omų rezistorius, o kitus šių rezistorių galus pritvirtinkite prie „Arduino“skaitmeninių PWM kaiščių. Naudojau skaitmeninius 3, 5 ir 6 kaiščius, skirtus atitinkamai raudonai, žaliai ir mėlynai.

4 žingsnis: 4 žingsnis: LCD

4 žingsnis: LCD
4 žingsnis: LCD

Paskutinis komponentas yra skystųjų kristalų ekranas. Tikslas yra pasakyti žaidėjui savo dabartinį rezultatą ir atstumą, kurio reikia, kad rankos būtų nutolusios nuo jutiklio. Čia yra keturi kaiščiai; GND, VCC, SDA ir SCL. GND ir VCC bus prijungti atitinkamai prie duonos lentos žemės ir maitinimo bėgių. SDA kaištis turi būti prijungtas prie analoginio kaiščio A4, o SCL - į analoginį kaištį A5. Skirtingai nuo kitų komponentų, SDA ir SCL kaiščius turite prijungti prie A4 ir A5.

5 žingsnis: 5 žingsnis: kodas

Dabar, kai prijungėme visus komponentus, galime parašyti kodą. Pirmoji kodo dalis yra importuoti reikiamas bibliotekas ir deklaruoti mūsų kintamuosius bei tai, į kuriuos kaiščius komponentai prijungti. Šiam kodui turime importuoti „Wire“, „LiquidCrystal_I2C“ir „Servo“bibliotekas.

#įtraukti

#įtraukti

#įtraukti

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int rezultatas = 0;

int tim = 500;

int srovė = atsitiktinė (8, 16); // atsitiktinė vertė, kai vartotojas turi atitraukti ranką nuo jutiklio

LiquidCrystal_I2C LCD (0x27, 16, 2); // LCD sąranka

Dabar turime naudoti void setup (), kad paskelbtume savo kaiščių tipus ir nustatytume kitus reikalingus komponentus.

void setup () {myServo.attach (9); Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); „pinMode“(žalias „Pin“, OUTPUT); pinMode („bluePin“, OUTPUT); lcd.init (); lcd.backlight (); LCD. pradžia (16, 2); lcd.clear (); // LCD sąranka}

Dabar turime nustatyti RGB LED kodą naudodami funkciją ir PWM:

void setColor (int raudona, int žalia, int mėlyna) {

raudona = 255 - raudona;

žalia = 255 - žalia;

mėlyna = 255 - mėlyna;

analogWrite (redPin, raudona);

analogWrite (žaliasPin, žalia);

analogWrite („bluePin“, mėlyna);

}

Dabar turime pridėti tuštumos kilpą (). Čia mes sugeneruosime atsitiktinius sveikuosius skaičius ir naudosime keletą teiginių, kad galėtume valdyti žaidėjo žaidimą. Dabartinis kintamasis, nustatytas aukščiau, yra skirtas dabartiniam atstumui, kurį žaidėjas turi atsiriboti nuo jutiklio.

Kadangi kodas tuštumos cikle () yra labai ilgas, įklijuosiu nuorodą į dokumentą, kuriame yra šis kodas:

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

Galiausiai turime atlikti faktinius skaičiavimus, kad ultragarso atstumo jutiklio reikšmes paverstų coliais. Ultragarsinis atstumo jutiklis tiesiogiai nematuoja atstumo; jis skleidžia garsą ir įrašo laiką, per kurį jutiklis atgauna garsą iš bet kokio objekto, nuo kurio jis atšoka.

ilgos mikrosekundėsToInches (ilgos mikrosekundės) {

grąžinimo mikrosekundės / 74 /2;

}

Dabar prijungiame laidinį „Arduino“prie kompiuterio su kodu, nustatome prievadus ir paleiskite! Šiame žaidime yra du režimai. Galite naudoti tik skystųjų kristalų ekraną, servo variklį, jutiklį ir RGB šviesos diodą ir žinote tik atstumą, kuriuo turite būti nuo jutiklio, kuris yra sunkesnis režimas. Lengvesnis režimas apima serijinio monitoriaus naudojimą skiltyje „Įrankiai“> „Serijinis monitorius“, kuris kas sekundę informuos, kiek toli esate nuo jutiklio, kad galėtumėte atlikti reikiamus pakeitimus.

Ačiū, kad skaitote!

Rekomenduojamas: