Obsah:
Video: Hra Arduino Space Rocks: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Bez ohľadu na to, či sa hrajú na počítači, telefóne, hernej konzole alebo v samostatnom boxe, mnohé videohry obsahujú prvok vyhýbania sa prekážkam. Iste, body môžu byť udelené za zbieranie žetónov alebo nájdenie cesty bludiskom, ale buďte si istí, že v hre je pravdepodobne niečo, čo má za cieľ zabrániť vám v tom. Prvá videohra bola Pong, ale potom boli najobľúbenejšími hrami ako „Asteroids“alebo „Pac-Man“. Novšou variáciou by bola jednoduchá, ale návyková hra „Flappy Birds“.
Nedávno som videl, že niekto vytvoril jednoduchú dvojúrovňovú verziu hry „Flappy Bird“, ktorá sa hrala na bežnom displeji LCD 1602. Myslel som si, že to bude niečo, čo by sa vnúčatám mohlo páčiť, a tak som sa rozhodol urobiť vlastnú variáciu od začiatku. Verzia 1602 má iba dve úrovne, takže som sa namiesto toho rozhodol použiť LCD 2004 (20x4) z roku 2004, aby som mierne zvýšil obtiažnosť hry. Tiež som sa rozhodol urobiť to viac ako „asteroidy“tým, že hráč prevedie „loď“bludiskom „vesmírnych skál“. Aj keď nemáte záujem stavať hru, môžu existovať niektoré prvky softvéru, ktoré môžete použiť v jednom z vašich vlastných projektov.
Krok 1: Hardvér
Hardvér môže byť založený na takmer akejkoľvek verzii Arduino. Urobil som prototyp pomocou Nano a potom som kód napálil na čip ATMega328. Je to ten istý čip používaný v Nano, ale jeho použitie umožňuje kompaktnejšie zostavenie a nižšiu spotrebu energie. Ako vidíte, obvod som postavil na malom breadboarde, ktorý sa pripája na LCD modul. Ďalším aspektom, ktorý sa líši, je to, že Nano beží na 16 MHz pomocou externého kryštálu, ale rozhodol som sa použiť vstavaný 8 MHz oscilátor pre čip ATMega328. To šetrí diely a energiu.
LCD displej z roku 2004 je prepojený s Arduino rovnako ako 1602 LCD. Zaujímavý rozdiel je v adresovaní miest zobrazenia. Je zrejmé, že existuje rozdiel, pretože namiesto dvoch sú štyri riadky, ale v roku 2004 je tretí riadok predĺžením prvého riadku a štvrtý riadok je predĺžením druhého riadku. Inými slovami, ak ste mali testovací program, ktorý práve odoslal reťazec znakov na LCD, 21. znak by sa zobrazil na začiatku tretieho riadka a 41. znak by sa zalomil späť na začiatok prvého riadka. Túto charakteristiku používam v softvéri na efektívne zdvojnásobenie dĺžky bludiska.
Rozhodol som sa, že moju verziu budem napájať batériou, takže som použil bežnú lítium-iónovú batériu 18650, 3,6 voltov. To si vyžiadalo, aby som pridal malú dosku, ktorá umožní nabíjanie cez USB, a ďalšiu malú dosku na zvýšenie napätia batérie na 5 voltov pre LCD a čip ATMega. Obrázky ukazujú moduly, ktoré som použil, ale existujú aj moduly typu všetko v jednom, ktoré vykonávajú obe funkcie.
Krok 2: Softvér
Softvér je rovnaký pre čip Nano aj ATMega328. Jediný rozdiel je v metóde programovania. Používam svoju vlastnú barebones verziu softvéru 1602 LCD a softvér LCD v tomto projekte je na tom založený. Potreboval som pridať možnosti na riešenie ďalších riadkov displeja z roku 2004 a tiež pridať rutiny na posúvanie displeja. Posun displeja poskytuje pohybový efekt „skál“za „loď“.
Ako už bolo spomenuté, riadky 1 a 3 tvoria kruhový front a riadky 2 a 4 tiež. To znamená, že po 20 smenách sa prehodia riadky 1 a 3 a riadky 2 a 4. Po 40 smenách sa čiary vrátia do svojich pôvodných polôh. Vďaka tomuto správaniu sa pôvodné 20-znakové bludisko stane úplne iným, keď sa čiary vymenia. Vďaka tomu bol život zaujímavý, keď som sa pokúsil vytvoriť bludisko. Nakoniec som práve otvoril tabuľku programu Excel, aby som mohol zmapovať cestu bez toho, aby som musel neustále meniť softvér. Tu poskytovaný softvér má dve verzie bludiska (jedna je komentovaná), takže si môžete vybrať, ktorú chcete, alebo si vytvoriť vlastnú.
Pôvodne som chcel, aby to bolo také jednoduché, že by to mohli hrať mladé vnúčatá, ale tiež som chcel, aby to malo nejakú extra výzvu, ak sa v tom (alebo niekto iný) príliš zlepší. Hra sa začína rýchlosťou posunu nastavenou na 1 sekundu. Interná frekvencia tikov je 50 ms, čo znamená, že existuje 20 intervalov, počas ktorých je možné stlačiť tlačidlá hore/dole. V skutočnosti stlačené tlačidlo spotrebuje 2 tiky, pretože na detekciu stlačenia sa používa 50 ms interval a na čakanie na uvoľnenie sa používa ďalší 50 ms interval. V predvolenom bludisku sú maximálny počet stlačení požadovaný pred ďalšou zmenou tri. Jednoduchý spôsob, ako zvýšiť obtiažnosť hry, je skrátiť čas medzi zmenami, takže pár riadkov kódu to robí iba so zvyšovaním skóre. Rýchlosť posunu je nastavená tak, aby sa zrýchľovala o 50 ms každých 20 zmien, pričom minimálna rýchlosť je obmedzená na 500 ms. Tieto parametre je ľahké zmeniť.
Okrem zmeny rýchlosti posunu je primárnou logikou softvéru pohyb „lode“a určenie, či „loď“narazila do „skaly“. Tieto funkcie využívajú definované pole „rock/space“a tiež pole, ktoré definuje miesta pamäte na displeji. Počet posunov zodpovedá dĺžke riadka LCD (0-19) a používa sa ako index do týchto polí. Logiku trochu komplikuje skutočnosť, že riadky sa prehodia každých 20 zmien. Podobná logika sa používa na určenie polohy „lode“, ktorá môže byť na ktoromkoľvek zo štyroch riadkov.
Skóre pre každú hru je jednoducho súčet počtu posunov, ku ktorým došlo a najvyššie skóre sa uloží do vnútornej EEROM mikrokontroléra. Na čítanie a zápis do tejto pamäte sa používa knižnica EEPROM. Dostupné rutiny umožňujú jednobajtové čítanie/zápis a čítanie/zápis hodnôt s pohyblivou rádovou čiarkou. Na prvom mieste EEROM je uložená hodnota 0xA5, ktorá označuje, že bolo uložené vysoké skóre. Ak je táto hodnota prítomná pri zapnutí, načíta sa a zobrazí sa hodnota s pohyblivou rádovou čiarkou pre najvyššie skóre. Ak nie je prítomná hodnota 0xA5, zavolá sa rutina na inicializáciu najvyššieho skóre na hodnotu 1. Rovnaká rutina sa vyvolá, ak je požadované vynulovanie vysokého skóre. Vysoké skóre sa nastaví späť na hodnotu 1 podržaním jedného z tlačidiel hore/dole a následným stlačením tlačidla reset.
Krok 3: Hranie hry
Po zapnutí napájania sa zobrazí aktuálne najvyššie skóre. Po zobrazení vysokého skóre sa zobrazí bludisko „skál“a „lode“a hra sa začne o niekoľko sekúnd neskôr. Keď „loď“narazí na „kameň“, pred zobrazením skóre hry niekoľkokrát zabliká správa „PORUŠENIE A PÁLENIE“. Ak sa dosiahne nové najvyššie skóre, zobrazí sa táto správa. Nová hra sa spustí stlačením tlačidla reset.
Odporúča:
DIY 37 ruletová hra s ruletou Arduino: 3 kroky (s obrázkami)
DIY 37 Leds Arduino Roulette Game: Roulette je kasínová hra pomenovaná podľa francúzskeho slova, ktoré znamená malé koliesko
Hra Arduino Sorta Sudoku: 3 kroky (s obrázkami)
Hra Arduino Sorta Sudoku: Mnoho ľudí rád hrá sudoku a vnúčatá, ako je hádanie, a tak som sa rozhodol vytvoriť prenosnú hru „Sorta Sudoku“. V mojej verzii je hra mriežkou 4x4, ale je k dispozícii iba jedno číslo. Cieľom je uhádnuť ostatné čísla v
Hra „Space Impact“s gyroskopickým senzorom a displejom Nokia 5110 LCD: 3 kroky
Hra „Space Impact“so snímačom gyroskopu a displejom Nokia 5110 LCD: Potom, čo mi zomrel Tamagotchi (posledný projekt), som začal hľadať nový spôsob, ako strácať čas. Rozhodol som sa naprogramovať klasickú hru „Space Impact“na Arduino. Aby bola hra o niečo zaujímavejšia a zábavnejšia, použil som gyroskopický senzor, ktorý som mal
Hra Crack the Code, logická hra založená na Arduine: 4 kroky (s obrázkami)
Hra Crack the Code, logická škatuľka založená na Arduine: V tomto návode vám ukážem, ako si vytvoriť vlastnú crackovú hru, v ktorej pomocou otočného voliča uhádnete náhodne vygenerovaný kód do sejfu. Na prednej strane trezoru je 8 LED diód, ktoré vám informujú, koľko z
Aruduino LED hra Rýchle kliknutie Hra pre dvoch hráčov: 8 krokov
Aruduino LED hra Rýchle kliknutie Hra pre dvoch hráčov: Tento projekt je inšpirovaný @HassonAlkeim. Ak ste ochotní sa podrobne pozrieť, tu je odkaz, ktorý si môžete pozrieť https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Táto hra je vylepšenou verziou hry Alkeim's. Jedná sa o