Obsah:

Bitová loď Arduino: 3 kroky
Bitová loď Arduino: 3 kroky

Video: Bitová loď Arduino: 3 kroky

Video: Bitová loď Arduino: 3 kroky
Video: Pomocí Arduino změřte až 500A stejnosměrný proud pomocí zkratového rezistoru 2024, Júl
Anonim
Bojová hra Arduino
Bojová hra Arduino

Pamätám si, ako som ako dieťa hrával papierovú a ceruzkovú verziu hry Battleship. V skutočnosti to bolo asi od 1. svetovej vojny. Tiež som mal na začiatku šesťdesiatych rokov „elektronický“variant s názvom „Sonar Sub Hunt“, ktorý mal svetlá a zvuky a skryté míny. Podľa dnešných štandardov videohier je bojová loď dosť nudná, ale myslel som si, že si ju aj tak vyrobím, aby som zistil, čo si o tom myslia vnúčatá. Koniec koncov, niekedy môže byť retro cool.

Existujú kúsky tohto projektu, ktoré by boli užitočné inde, aj keď nemáte záujem o hru Battleship. Má jednoduché 4-bitové rozhranie 1602 LCD, ktoré obsahuje rutinu na nastavenie konkrétneho umiestnenia znaku. K dispozícii je tiež rozhranie na dekódovanie matice prepínačov 4x4. Tieto dve rozhrania sú k dispozícii ako samostatné zahrňovacie súbory, takže sú ľahko prenosné. Hra má tiež rôzne rutiny zvukových efektov a jednoduchý obvod s jedným tranzistorovým zosilňovačom zvuku.

Krok 1: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér

Tu uvedená schéma je pre jedného hráča, takže je potrebné vytvoriť dve jednotky. Jednotky komunikujú pomocou 3-vodičového rozhrania, ktoré obsahuje vedenia UART TX a RX a uzemňovací vodič. Rozhodol som sa použiť štandardný 1/8 palcový stereofónny konektor pre slúchadlá a štandardný kábel s konektormi na oboch koncoch. RX z jedného boxu ide do TX druhého boxu a naopak. Môžete to urobiť tak, že pri montáži zameníte vodiče spájkované do konektora pre slúchadlá vo vnútri škatule alebo ich zameníte na doske plošných spojov.

Klasická hra bola usporiadaná ako matica, ale rozhodol som sa urobiť jednoduchú implementáciu pomocou displeja 1602 LCD. Prvý riadok zobrazuje umiestnenie hráčovej lode a súperove strely. Druhý riadok zobrazuje strely hráča a všetky zásahy na súperove lode. To poskytuje 16 možných miest pre lode. Počet lodí je nastavený v softvéri a ja som svojvoľne vybral 5.

16 miest lode dobre vyhovuje požiadavkám na prepínač, pretože umožňuje maticu 4x4. K dispozícii sú maticové prepínače 4x4, ale rozhodol som sa použiť jednotlivé prepínače v jednom riadku, aby zodpovedali lineárnemu zobrazeniu. Prepínače som však zapojil ako maticu 4x4, takže je potrebných iba osem pinov Arduino. Správne zapojenie nájdete v schéme zapojenia spínača a schéme.

LCD displej je zapojený do 4-bitového rozhrania. Tiež som pridal externú LED na pin D13, aby som naznačil, ktorý hráč by mal strieľať. Spočiatku sa hráči rozhodnú, kto urobí prvý výstrel, a potom softvér automaticky ovláda tam a späť v hre.

Chcel som pridať jednoduché zvukové efekty pre výstrel, výbuchy, pripravenú hru a víťaza/porazeného. Skúsil som použiť jednoduchý piezo bzučiak, ale skončil som s malým reproduktorom. Prúd požadovaný reproduktorom presahuje to, čo Arduino zvládne, takže bol pridaný jednoduchý tranzistorový zosilňovač. Zvuk stále nie je vynikajúci, ale je lepší ako s bzučiakom. Môj reproduktor má 4 ohmy, ale ak máte 8-ohmový, zmeňte schematicky odpor z 39 ohmov na 33 ohmov. Ak používate piezo bzučiak, mali by ste byť schopní ovládať ho priamo z kolíka Arduino s druhou stranou bzučiaka spojenou so zemou.

K dispozícii je tiež externý resetovací spínač, ktorý je zapojený priamo medzi zem a kolík „reset“na Arduine. To poskytuje prostriedky na reštartovanie hry.

Krok 2: Softvér

Softvér má súbor zahrnutia pre moje rozhranie LCD a tiež som vytvoril súbor pre zahrnutie pre skenovanie matice prepínača 4x4. Inicializácia vyzve hráča, aby vybral miesta pre svoje lode, a potom prejde do stavu „Pripravený“. Keď sú obaja hráči pripravení, jeden z nich začne hru stlačením vypínača.

Miesto výstrelu je odoslané prostredníctvom UART druhému hráčovi a príslušný výsledok je odoslaný späť hráčovi, ktorý vystrelil. Ako už bolo spomenuté, po nasnímaní prvého záberu softvér ovláda, kto urobí ďalší záber. Pred odoslaním záberu sa skontroluje umiestnenie predchádzajúcich záberov. Ak už bolo toto miesto použité, záber sa neodošle. LED dióda „My_Shot“určuje, kto je na rade. Pre platný výber sa generuje aj zvuk výstrelu a pri zásahu lode zvuk výbuchu. Zvukové efekty sú odvodené z príkladov nájdených na internete s úpravami, ktoré vyhovujú hre.

Keď sú všetky súperove lode zasiahnuté, na každom LCD displeji sa zobrazí správa - jedna ako víťaz a jedna ako porazený. Správa tiež uvádza, že hru je možné reštartovať stlačením tlačidla reset. K dispozícii sú tiež oddelené zvukové efekty pre víťaza a porazeného.

Krok 3: Snímky obrazovky

Snímky obrazovky
Snímky obrazovky
Snímky obrazovky
Snímky obrazovky
Snímky obrazovky
Snímky obrazovky
Snímky obrazovky
Snímky obrazovky

Tu je niekoľko snímok obrazovky z hry. To je k tomuto príspevku všetko. Pozrite sa na moje ďalšie pokyny a tiež na moju webovú stránku na adrese: www.boomerrules.wordpress.com

Odporúča: