Obsah:

Bitevní loď Arduino: 3 kroky
Bitevní loď Arduino: 3 kroky

Video: Bitevní loď Arduino: 3 kroky

Video: Bitevní loď Arduino: 3 kroky
Video: Minecraft Live 2022 2024, Listopad
Anonim
Bitevní hra Arduino
Bitevní hra Arduino

Pamatuji si, že jsem v dětství hrával papírovou a tužkovou verzi hry Battleship. Ve skutečnosti je to asi od 1. světové války. Také jsem měl na začátku 60. let „elektronickou“variantu s názvem „Sonar Sub Hunt“, která měla světla a zvuky a skryté miny. Podle dnešních standardů videoher je Bitevní loď docela nudná, ale říkal jsem si, že si ji stejně udělám, abych viděl, co si o tom myslí vnoučata. Přeci jen někdy může být retro cool.

Existují kousky tohoto projektu, které by byly užitečné jinde, i když nemáte zájem o hru Battleship. Má jednoduché 4bitové rozhraní 1602 LCD, které obsahuje rutinu pro nastavení umístění konkrétního znaku. K dispozici je také rozhraní pro dekódování matice přepínačů 4x4. Tato dvě rozhraní jsou k dispozici jako samostatné soubory pro zahrnutí, takže je lze snadno přenášet. Hra má také různé rutiny zvukových efektů a jednoduchý obvod zesilovače zvuku s jedním tranzistorem.

Krok 1: Hardware

Hardware
Hardware
Hardware
Hardware

Zde uvedené schéma je pro jednoho hráče, takže je třeba vyrobit dvě jednotky. Jednotky komunikují pomocí 3vodičového rozhraní, které zahrnuje linky UART TX a RX a zemnící vodič. Rozhodl jsem se použít standardní 1/8 palcový stereofonní konektor pro sluchátka a standardní kabel s konektorem na obou koncích. RX z jednoho boxu jde do TX druhého boxu a naopak. Můžete to udělat záměnou vodičů připájených ke konektoru pro sluchátka uvnitř krabice nebo jejich výměnou na desce s obvody, když ji stavíte.

Klasická hra byla vyložena jako matice, ale rozhodl jsem se udělat jednoduchou implementaci pomocí displeje 1602 LCD. První řádek ukazuje umístění lodi hráče a výstřely soupeře. Druhý řádek zobrazuje střely hráče a všechny zásahy na soupeřovy lodě. To poskytuje 16 možných míst pro lodě. Počet lodí je nastaven v softwaru a já jsem libovolně vybral 5.

16 umístění lodi odpovídá požadavkům přepínačů, protože umožňuje matici 4x4. K dispozici jsou maticové přepínače 4x4, ale rozhodl jsem se použít jednotlivé přepínače v jednom řádku, aby odpovídaly lineárnímu zobrazení. Přepínače jsem však zapojil jako matici 4x4, takže je potřeba pouze osm pinů Arduino. Správná zapojení najdete ve schématu zapojení spínače a schématu.

LCD displej je zapojen do 4bitového rozhraní. Také jsem přidal externí LED na pin D13, která indikuje, který hráč by měl střílet. Zpočátku se hráči rozhodnou, kdo provede první výstřel, a poté software automaticky ovládá tam a zpět ve hře.

Chtěl jsem přidat jednoduché zvukové efekty pro výstřel, výbuchy, připravenou hru a vítěze/poraženého. Zkoušel jsem použít jednoduchý piezo bzučák, ale místo toho jsem skončil s malým reproduktorem. Proud požadovaný reproduktorem přesahuje to, co Arduino zvládne, takže byl přidán jednoduchý tranzistorový zesilovač. Zvuk stále není skvělý, ale je lepší než s bzučákem. Můj reproduktor má 4 ohmy, ale pokud máte 8 ohmový, změňte schematicky odpor z 39 ohmů na 33 ohmů. Pokud používáte piezo bzučák, měli byste jej ovládat přímo z kolíku Arduino s druhou stranou bzučáku připojenou k zemi.

Součástí je také externí resetovací spínač, který je zapojen přímo mezi kostru a pin „reset“na Arduinu. To poskytuje prostředky pro restart hry.

Krok 2: Software

Software má soubor zahrnutí pro mé rozhraní LCD a také jsem vytvořil soubor pro zahrnutí pro skenování matice přepínače 4x4. Inicializace vyzve hráče, aby vybral umístění svých lodí, a poté přejde do stavu „Připraveno“. Když jsou oba hráči připraveni, jeden z nich zahájí hru stisknutím spínače.

Místo výstřelu je přeneseno přes UART druhému hráči a příslušný výsledek je přenesen zpět hráči, který výstřel vystřelil. Jak již bylo zmíněno dříve, po pořízení prvního snímku software ovládá, kdo pořídí další snímek. Před odesláním je snímek zkontrolován podle umístění předchozích výstřelů. Pokud již bylo toto místo použito, snímek nebude přenesen. LED „My_Shot“určuje, kdo je na řadě. K dispozici je také zvuk výstřelu generovaný pro platný výběr a zvuk výbuchu, pokud je zasažena loď. Zvukové efekty jsou odvozeny z příkladů nalezených online s úpravami, které vyhovují hře.

Jakmile jsou všechny soupeřovy lodě zasaženy, na každém LCD se zobrazí zpráva - jedna jako vítěz a jedna jako poražený. Zpráva také uvádí, že hru lze restartovat stisknutím tlačítka reset. Existují také samostatné zvukové efekty pro vítěze a poražené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

Zde jsou některé snímky obrazovky ze hry. To je k tomuto příspěvku. Podívejte se na mé další pokyny a také na mé webové stránky na adrese: www.boomerrules.wordpress.com

Doporučuje: