Obsah:

Rýchla reakčná hra: Verzia na diaľku: 5 krokov (s obrázkami)
Rýchla reakčná hra: Verzia na diaľku: 5 krokov (s obrázkami)

Video: Rýchla reakčná hra: Verzia na diaľku: 5 krokov (s obrázkami)

Video: Rýchla reakčná hra: Verzia na diaľku: 5 krokov (s obrázkami)
Video: Человек-паук Marvel: Майлз Моралес (фильм) 2024, Júl
Anonim
Rýchla reakčná hra: Verzia na diaľku
Rýchla reakčná hra: Verzia na diaľku

Ahoj. Toto je návod, ako vytvoriť hru, ktorá testuje váš reakčný čas a pocit vzdialenosti. Tento projekt je založený na starom projekte, do ktorého som zapojil dvoch hráčov a súťažili o to, kto rýchlejšie zareaguje kliknutím na tlačidlo, keď sa svetlo rozsvieti nazeleno. Tento má podobný účel, okrem toho, že je pre jedného hráča a namiesto zhasnutia svetla dostane hráč časový rámec na vzdialenie ruky určitému priestoru od snímača vzdialenosti.

Rovnako ako všetky projekty Arduino, aj táto hra bude vyžadovať množstvo elektrických komponentov v obvode Arduino. Medzi hlavné komponenty, okrem zapojenia a samotného Arduina, patrí nepájivá doska, servomotor, LCD displej, RGB LED a snímač vzdialenosti.

Na stránke https://abra-electronics.com je cena bez káblov a Arduina 32,12 USD.

Krok 1: Krok 1: Snímač vzdialenosti

Krok 1: Snímač vzdialenosti
Krok 1: Snímač vzdialenosti

Prvým krokom je nastavenie ultrazvukového snímača vzdialenosti na doske a jeho zapojenie do Arduina. Na presnej polohe senzora vlastne nezáleží, ale v ideálnom prípade je blízko okraja, takže je tu priestor pre ostatné komponenty, ako je znázornené na obrázku vyššie. Na snímači sú štyri kolíky; GND, VCC, TRIG a ECHO. GND a VCC majú byť zapojené do uzemňovacích a napájacích koľajníc a v ostatných dvoch kolíkoch zapojené do dvoch kolíkov na Arduine. Dva kolíky, ktoré som použil, boli 12 pre ECHO a 11 pre TRIG. Na napájanie napájacej lišty a uzemnenie uzemňovacej lišty použite ďalšie dva vodiče pripojením napájacej lišty k kolíku 5 V a uzemňovacej lišty k kolíku GND.

Krok 2: Krok 2: Servomotor

Krok 2: Servomotor
Krok 2: Servomotor

Ďalším krokom je nastavenie servomotora. V tomto projekte funguje servomotor ako časovač. Začína sa to na 1 stupni a za čas, počas ktorého si používateľ musí oddialiť ruky, sa otočí na 180 stupňov. Použil som 2 sekundy, keď používateľ zistil, ako ďaleko majú od svojich rúk vzdialenosť, takže servo sa otáča o 179 stupňov v priebehu 2 -sekundového obdobia a otáča sa v krátkych intervaloch. Servomotor má tri vodiče; zvyčajne žltá, červená a hnedá. Červená ide do napájacej lišty, ktorá je už zapojená do 5V, a hnedá ide do uzemňovacej lišty už zapojenej do GND. Konečný vodič sa zapojí do kolíka Arduino. Pre tento som vybral pin #9. Potom budete potrebovať kondenzátor spájajúci rovnakú koľajnicu, ku ktorej sú pripojené napájacie a uzemňovacie vodiče servomotora, ako je vidieť na obrázku vyššie.

Krok 3: Krok 3: RGB LED

Krok 3: RGB LED
Krok 3: RGB LED

Funkcia LED v tomto prípade slúži ako stupnica skóre. Keď je skóre hráča okolo 0, LED dióda bude biela a bude svietiť viac červeno, ak sa skóre hráča zníži, a nazeleno, ak sa skóre hráča zvýši. Táto dióda LED má štyri nohy; noha červeného svetla, noha modrého svetla, noha zeleného svetla a spoločná katóda zdieľaná medzi ostatnými tromi nohami. Spoločná katóda, najdlhšia noha, je zapojená do napájacej lišty, takže prijíma 5 voltov. Pripojte odpory 330 ohmov k ďalším trom farebným nohám a ostatné konce týchto rezistorov pripevnite k digitálnym kolíkom PWM na Arduine. Tie, ktoré som použil, boli digitálne kolíky 3, 5 a 6 pre červené, zelené a modré nohy.

Krok 4: Krok 4: LCD

Krok 4: LCD
Krok 4: LCD

Poslednou súčasťou je LCD displej, ktorý predstavuje displej z tekutých kryštálov. Účelom je povedať hráčovi ich aktuálne skóre a vzdialenosť, ktorú potrebujú na to, aby dali ruky preč od senzora. Tu sú štyri kolíky; GND, VCC, SDA a SCL. GND a VCC budú zapojené do uzemňovacej a napájacej lišty nepájivého poľa. Kolík SDA musí byť zapojený do analógového kolíka A4 a kolík SCL musí byť zapojený do analógového kolíka A5. Na rozdiel od ostatných komponentov musíte kolíky SDA a SCL zapojiť do formátu A4 a A5.

Krok 5: Krok 5: Kód

Teraz, keď sme zapojili všetky komponenty, môžeme napísať kód. Prvá časť kódu je importovať potrebné knižnice a deklarovať naše premenné a kolíky, do ktorých sú komponenty zapojené. Pre tento kód musíme importovať knižnice Wire, LiquidCrystal_I2C a Servo.

#zahrnúť

#zahrnúť

#zahrnúť

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int skóre = 0;

int tim = 500;

int prúd = náhodný (8, 16); // náhodná hodnota, pri ktorej sa používateľ musí vzdialiť od senzora

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

Teraz musíme použiť void setup () na deklarovanie našich typov pinov a nastavenie ďalších potrebných komponentov.

neplatné nastavenie () {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 (); // nastavenie LCD}

Teraz musíme nastaviť kód RGB LED pomocou funkcie a PWM:

void setColor (int červená, int zelená, int modrá) {

červená = 255 - červená;

zelená = 255 - zelená;

modrá = 255 - modrá;

analogWrite (redPin, červený);

analogWrite (greenPin, zelený);

analogWrite (bluePin, modrý);

}

Teraz musíme pridať prázdnu slučku (). Tu budeme generovať náhodné celé čísla a pomocou série príkazov if ovládať hru pre hráča. Aktuálna premenná, nastavená vyššie, je pre aktuálnu vzdialenosť, od ktorej sa musí hráč vzdialiť od senzora.

Pretože kód v prázdnej slučke () je veľmi dlhý, prilepím odkaz na dokument, ktorý má tento kód:

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

Nakoniec musíme urobiť skutočné výpočty na konverziu hodnôt ultrazvukového senzora vzdialenosti na palce. Ultrazvukový snímač vzdialenosti nemeria priamo vzdialenosť; vydáva zvuk a zaznamenáva čas, ktorý snímač potrebuje na to, aby získal zvuk z akéhokoľvek predmetu, od ktorého sa odrazí.

dlhé mikrosekundyToInches (dlhé mikrosekundy) {

návratové mikrosekundy / 74 /2;

}

Teraz zapojíme káblové Arduino do počítača pomocou kódu, nastavíme porty a spustíme ho! Táto hra má dva režimy. Buď môžete používať iba LCD displej, servomotor, senzor a RGB LED diódu, a poznáte iba vzdialenosť, v ktorej sa musíte nachádzať od snímača, čo je ťažší režim. Jednoduchší režim zahŕňa použitie sériového monitora v ponuke Nástroje> Sériový monitor, ktorý vás bude každú sekundu informovať o tom, ako ďaleko ste od senzora, aby ste mohli vykonať potrebné úpravy.

Vďaka za prečítanie!

Odporúča: