Spisu treści:

Gra pancerników Arduino: 3 kroki
Gra pancerników Arduino: 3 kroki

Wideo: Gra pancerników Arduino: 3 kroki

Wideo: Gra pancerników Arduino: 3 kroki
Wideo: Lattepanda МиниПК Gaming Arduino 2024, Listopad
Anonim
Gra w pancerniki Arduino
Gra w pancerniki Arduino

Pamiętam, że jako dziecko grałem w papierową i ołówkową wersję gry w pancerniki. W rzeczywistości istnieje od około pierwszej wojny światowej. Miałem również „elektroniczny” wariant na początku lat 60. o nazwie „Sonar Sub Hunt”, który miał światła, dźwięki i ukryte miny. Jak na dzisiejsze standardy gier wideo Battleship jest dość nudny, ale pomyślałem, że i tak zrobię taki, żeby zobaczyć, co myślą o nim wnuki. W końcu czasami retro może być fajny.

Są fragmenty tego projektu, które przydałyby się gdzie indziej, nawet jeśli nie jesteś zainteresowany tworzeniem gry Battleship. Posiada prosty 4-bitowy 1602 interfejs LCD, który zawiera procedurę ustawiania określonej lokalizacji znaku. Istnieje również interfejs do dekodowania matrycy przełączników 4x4. Te dwa interfejsy są dostępne jako oddzielne pliki dołączane, dzięki czemu można je łatwo przenosić. Gra ma również różne procedury efektów dźwiękowych i prosty obwód wzmacniacza audio z jednym tranzystorem.

Krok 1: Sprzęt

Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy

Przedstawiony tutaj schemat dotyczy jednego gracza, więc należałoby wykonać dwie jednostki. Jednostki komunikują się za pomocą 3-przewodowego interfejsu, który obejmuje linie UART TX i RX oraz przewód uziemiający. Wybrałem standardowe gniazdo słuchawkowe stereo 1/8 cala i standardowy kabel z męskimi wtykami na obu końcach. RX z jednego pudełka trafia do TX drugiego pudełka i odwrotnie. Możesz to zrobić, zamieniając przewody przylutowane do gniazda słuchawkowego w pudełku lub zamieniając je na płytce drukowanej podczas jej budowania.

Klasyczna gra została rozplanowana jako matryca, ale zdecydowałem się na prostą implementację z użyciem wyświetlacza LCD 1602. Pierwsza linia pokazuje lokalizacje statków gracza i strzały przeciwnika. Druga linia pokazuje strzały gracza i wszelkie trafienia w statki przeciwnika. Daje to 16 możliwych lokalizacji dla statków. Liczbę statków ustawiam w programie i arbitralnie wybrałem 5.

16 lokalizacji statków dobrze pasuje do wymagań przełącznika, ponieważ pozwala na macierz 4x4. Dostępne są pady przełączników matrycy 4x4, ale zdecydowałem się użyć pojedynczych przełączników w jednej linii, aby dopasować wyświetlacz liniowy. Zrobiłem jednak okablowanie przełączników jako matrycę 4x4, tak że potrzeba tylko ośmiu pinów Arduino. Prawidłowe połączenia znajdują się na schemacie okablowania przełącznika i schemacie.

Wyświetlacz LCD jest podłączony do interfejsu 4-bitowego. Dodałem również zewnętrzną diodę LED na pinie D13, aby wskazać, który gracz powinien oddawać strzał. Początkowo gracze decydują, kto odda pierwszy strzał, a następnie oprogramowanie automatycznie kontroluje przebieg gry.

Chciałem dodać proste efekty dźwiękowe do strzału, eksplozji, gotowej gry i zwycięzcy/przegranego. Próbowałem użyć prostego brzęczyka piezoelektrycznego, ale zamiast tego użyłem małego głośnika. Prąd wymagany przez głośnik przekracza to, co Arduino może obsłużyć, dlatego dodano prosty wzmacniacz tranzystorowy. Dźwięk nadal nie jest świetny, ale jest lepszy niż z brzęczykiem. Mój głośnik ma 4 omy, ale jeśli masz 8-omowy, to zmień rezystor na schemacie z 39 omów na 33 omów. Jeśli używasz brzęczyka piezo, powinieneś być w stanie wysterować go bezpośrednio z pinu Arduino z drugą stroną brzęczyka podłączoną do masy.

Dołączony jest również zewnętrzny przełącznik resetowania, który jest podłączony bezpośrednio między uziemieniem a pinem „reset” w Arduino. Zapewnia to możliwość ponownego uruchomienia gry.

Krok 2: Oprogramowanie

Oprogramowanie zawiera plik dołączany do mojego interfejsu LCD, a także stworzyłem plik dołączany do skanowania matrycy przełączników 4x4. Inicjalizacja skłania gracza do wybrania lokalizacji dla swoich statków, a następnie przechodzi do stanu „Gotowy”. Gdy obaj gracze są gotowi, jeden z nich rozpoczyna grę, naciskając przełącznik.

Miejsce strzału jest przekazywane przez UART do drugiego gracza, a odpowiedni wynik jest przekazywany z powrotem do gracza, który oddał strzał. Jak wspomniano wcześniej, po wykonaniu pierwszego strzału oprogramowanie kontroluje, kto wykona następne zdjęcie. Przed oddaniem strzału jest on porównywany z lokalizacjami poprzednich strzałów. Jeśli ta lokalizacja była już używana, strzał nie zostanie przesłany. Dioda „My_Shot” określa, czyja jest kolej. W przypadku prawidłowego wyboru generowany jest również dźwięk wystrzału oraz dźwięk wybuchu, jeśli statek zostanie trafiony. Efekty dźwiękowe pochodzą z przykładów znalezionych w Internecie z modyfikacjami pasującymi do gry.

Gdy wszystkie statki przeciwnika zostaną trafione, na każdym wyświetlaczu LCD zostanie wyświetlony komunikat – jeden jako zwycięzca, a drugi jako przegrany. Komunikat wskazuje również, że grę można ponownie uruchomić, naciskając przycisk resetowania. Istnieją również oddzielne efekty dźwiękowe dla zwycięzcy i przegranego.

Krok 3: Zrzuty ekranu

Zrzuty ekranu
Zrzuty ekranu
Zrzuty ekranu
Zrzuty ekranu
Zrzuty ekranu
Zrzuty ekranu
Zrzuty ekranu
Zrzuty ekranu

Oto kilka zrzutów ekranu z gry. To tyle w tym poście. Sprawdź moje inne instrukcje, a także moją stronę internetową: www.boomerrules.wordpress.com

Zalecana: