Skocz do zawartości
woyna

Mastermind - elektroniczna gra logiczna

Pomocna odpowiedź

WSTĘP

W ramach projektu na studia, zaprojektowałem i zbudowałem elektroniczną wersję gry logicznej Mastermind dla dwóch graczy. Celem tej gry jest odgadnięcie przez jednego z graczy szyfru wymyślonego przez drugiego gracza. Szyfr składa się z czterech kolorów wybieranych spośród pięciu dostępnych (czerwony, zielony, niebieski, magenta, cyan). Gracz odgadujący musi w ciągu ośmiu rund złamać kod przeciwnika. Po każdej próbie odgadnięcia, odgadujący dostaje informację ile kolorów z obecnej próby znajduje się w szyfrze na tym samym miejscu, a ile z nich znajduje się na innym miejscu. Gracz odgadujący może posiłkować się wiedzą z poprzednich rund poprzez funkcjonalność przeglądania historii odgadnięć. Oryginalne zasady gry Mastermind możecie znaleźć pod tym linkiem.

20190116_193954.thumb.jpg.c57fd9816d9df88b0fb22b30264a002b.jpg

BUDOWA UKŁADU

Układ zbudowany jest na uniwersalnej płytce drukowanej PCB o wymiarach 12x8cm. Ma ona przylutowane goldpiny, na które wtyka się płytkę Arduino Uno R3 (klon).Cztery diody RGB reprezentują pozycje szyfru, dwa wyświetlacze 7-segmentowe wyświetlają informacje niezbędne do złamania szyfru, a trzeci wyświetlacz pokazuje aktualną rundę. Kluczowym elementem całego układu jest pięć rejestrów przesuwnych 74HC595, które umożliwiają (na ograniczonej przecież liczbie pinów Arduino) sterować diodami oraz wyświetlaczami. Budowa tego układu na uniwersalnej płytce drukowanej PCB przysporzyła wielu trudności, ponieważ ilość połączeń jest naprawdę spora. Gdybym ponownie robił ten projekt, spróbowałbym wykonania własnej płytki PCB metodą termotransferu. Poniższe zdjęcia ukazują, jak wiele połączeń znajduje się na płytce.

Dolna strona płytki przed przylutowaniem przewodówKońcowy wygląd dolnej strony płytkiGórna strona płytki

Układ zasilany jest sześcioma bateriami AA 1,5V znajdującymi się w koszyku. Baterie zasilają płytkę poprzez wejście VIN.

OBUDOWA

Cały układ znajduje się w obudowie wydrukowanej w drukarce 3D. Obudowa składa się z dwóch części. W dolnej części umieszcza się koszyk na baterie oraz płytkę. Górna część przykrywa płytkę, zasłaniając przed użytkownikiem niewykorzystane pola płytki oraz rezystory. Złączenie części polega na przykręceniu czterech śrubek M3 w rogach obudowy. Projekt obudowy stworzony został w środowisku Autocad Tinkercad. Koszt filamentu zużytego przy druku to ok. 25 zł.

Dolna część obudowyGórna część obudowy

 

SCHEMAT I OPROGRAMOWANIE

Do napisania programu wykorzystałem program Visual Studio Code wraz z zainstalowanym środowiskiem PlatformIO IDE, które jest znacznie wygodniejsze oraz ma bogatsze możliwości od klasycznego Arduino IDE (opis środowiska z bloga Forbot). Napisałem własne pliki nagłówkowe 7seg.h oraz RGB.h, które zawierają funkcje obsługujące sterowanie wyświetlaczami 7-segmentowymi oraz diodami RGB za pomocą rejestrów przesuwnych 74HC595. Poniżej zamieszczam także schemat układu.

schemat.thumb.png.0d3cd00ebc3db682f365d8add964b5ec.png

OBSŁUGA

Gra rozpoczyna się od wprowadzeniu szyfru przez osobę wymyślającą kod. Po zaakceptowaniu kodu, urządzenie przejmuje osoba zgadująca. W ciągu maksymalnie ośmiu rund, osoba zgadująca sprawdza różne kombinacje kolorów, uzyskując na wyświetlaczach 7-segmentowych informacje odnośnie tego, ile kolorów z aktualnej rundy odpowiada kolorom z szyfru. W trakcie rozgrywki istnieje możliwość przeglądania historii rund, co znacząco ułatwia złamanie szyfru. W przypadku pomyślnego złamania szyfru, na wyświetlaczu CORRECT PLACE pojawia się liczba 4, a wszystkie wyświetlacze zaczynają migać z częstotliwością 1 Hz.

1661434437_Opisprzyciskw3.thumb.png.b6a43d3bd43ca7c7d1fdfec142a85d15.png

W przypadku, kiedy w ciągu ośmiu rund nie uda się osobie odgadującej odgadnąć szyfru, na diodach ujawnia się szyfr, a wszystkie wyświetlacze zaczynają migać z częstotliwością 1 Hz. W celu zresetowania rozgrywki wystarczy przytrzymać przycisk acceptButton przez ponad 3 sekundy.

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

@woyna, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start:

  • Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników.
  • Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć?
  • Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości.

Właśnie zaakceptowałem Twój opis, możesz go teraz zgłosić do akcji rabatowej umieszczając link w temacie zbiorczym. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum 🙂

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...