Spisu treści:

Mastermind Star Wars z Arduino MEGA: 5 kroków (ze zdjęciami)
Mastermind Star Wars z Arduino MEGA: 5 kroków (ze zdjęciami)

Wideo: Mastermind Star Wars z Arduino MEGA: 5 kroków (ze zdjęciami)

Wideo: Mastermind Star Wars z Arduino MEGA: 5 kroków (ze zdjęciami)
Wideo: Приказ комиссара. Warhammer 40k 2024, Listopad
Anonim
Mastermind Star Wars z Arduino MEGA
Mastermind Star Wars z Arduino MEGA
Mastermind Star Wars z Arduino MEGA
Mastermind Star Wars z Arduino MEGA
Mastermind Star Wars z Arduino MEGA
Mastermind Star Wars z Arduino MEGA

To są niekorzystne czasy dla buntu. Chociaż Gwiazda Śmierci została zniszczona, wojska Imperium używają wolnego sprzętu i Arduino jako tajnej broni.

To jest zaleta darmowych technologii, każda osoba (zarówno dobra, jak i zła) może z nich korzystać.

W ukrytej bazie znajdującej się na planecie Anoat budują drukarkę 3D zdolną do replikowania niszczyciela imperialnego.

Jedynym rozwiązaniem na pokonanie Imperium jest to, że grupa rebeliantów dowodzona przez Luke'a Skycuartiellesa i Obi-Wana Banziego pokona wojska cesarskie i zdobędzie klucz, który da dostęp do planów zniszczenia tajnej broni.

Ten klucz składa się z 4 kolorów i masz 10 prób, aby go rozszyfrować. Istnieją tylko cztery zasady:

  1. Kolory mogą się powtarzać
  2. Białe światło wskazuje, że trafiłeś we właściwy kolor i pozycję
  3. Fioletowe światło wskazuje, że trafiłeś w kolor, ale nie w pozycję
  4. Jeśli nie ma światła, nie odgadłeś koloru ani pozycji.

Musisz się spieszyć, bo z drugiej strony zły Darth Ballmer będzie próbował zdobyć klucz przed tobą. W takim przypadku nie będziesz mógł dowiedzieć się, co to jest i nie będziesz mieć dostępu do planów tajnej broni. Twoja misja zakończy się niepowodzeniem.

Mały padawan, niech siła towarzyszy ci w odszyfrowaniu klucza i dzięki temu będziesz w stanie ocalić Galaktykę.

Krok 1: Materiał

Materiał
Materiał

Materiał potrzebny do wykonania Mastermind Star Wars z Arduino podzielony jest na trzy części.

  • Stolarstwo i artykuły biurowe do realizacji obudowy
  • Komponenty, kable i Arduino dla całej elektroniki
  • Narzędzia

Zacznijmy od stolarki. Potrzebny jest następujący materiał:

  • 2 x płyty MDF od 90x60
  • 1 x arkusz papieru warzywnego

W części elektronicznej potrzebny jest następujący materiał:

  • 1 x NeoPixel Strip 5 metrów
  • 1 x Arduino MEGA
  • 1 x kondensator 100 µF
  • 4 x rezystancja 470 Ω
  • 5 x czarny przycisk
  • 5 x biały przycisk
  • 1 x moc 5V-5A
  • 1 x zasilanie 5V-2A

Wreszcie w części narzędziowej wykorzystaliśmy:

  • Gorący pistolet silikonowy
  • Laser CNC de MxN
  • Spawarka elektryczna
  • Spawarka cyny

Krok 2: Projekt

Projekt
Projekt
Projekt
Projekt
Projekt
Projekt

Jedną z najważniejszych części tego projektu jest projekt obudowy. Składa się z 3 kawałków wyciętych wycinarką laserową.

Podstawa pochodzi z kawałka 90x60 w MDF. Weź pod uwagę wymiary materiału, ponieważ będziesz potrzebować wystarczająco dużej wycinarki laserowej.

Plik SVG znajdziesz na końcu tego kroku.

Górna okładka to ta, która zawiera tematyczne rysunki Gwiezdnych wojen, a także otwory na przyciski i piksele.

Ma taki sam kształt jak podstawa.

Ściany boczne zostały wykonane techniką cięcia laserowego zwaną rzazem. Dzięki temu materiał jest elastyczny. Aby umieścić ściany, zaprojektowano kilka elementów, które mają służyć jako przewodnik.

Wreszcie, każda matryca NeoPixel ma siatkę, w której z jednej strony przymocowane są NeoPixel, a z drugiej strony papier roślinny, aby rozproszyć światło NeoPixel. Tutaj masz wszystkie pliki SVG, dzięki czemu możesz je samodzielnie wyciąć i wyprodukować.

Krok 3: Montaż elektroniczny

Montaż elektroniczny
Montaż elektroniczny
Montaż elektroniczny
Montaż elektroniczny
Montaż elektroniczny
Montaż elektroniczny
Montaż elektroniczny
Montaż elektroniczny

Pierwsza faza montażu elektroniki polegała na pocięciu paska o długości 5 metrów NeoPixel na 8 pasków po 10 pikseli i 4 oddzielne piksele dla każdego gracza. Łącznie 84 piksele na gracza. Z jednej strony 10 pasków jest montowanych jeden za drugim, pozostawiając wystarczającą ilość kabla, aby umieścić każdy pasek równolegle do kilku milimetrów. Ta macierz pikseli posłuży do pokazania każdego odtworzenia i wyniku. 4 piksele pokazują cztery kolory klucza, a pozostałe cztery piksele pokazują wynik. Przypominam, że w efekcie musimy:

  • Jeśli piksel jest biały, jego pozycja i kolor są prawidłowe.
  • Jeśli piksel jest fioletowy, kolor jest prawidłowy, ale nie pozycja.
  • Jeśli piksel jest wyłączony, ani kolor, ani pozycja nie są prawidłowe.

Jednym z błędów, które popełniliśmy, jest okablowanie zasilania i GND. Mogło być prostsze, ale zdaliśmy sobie sprawę później. Kabel do transmisji danych musi być zgodny z kolejnością, ponieważ numeracja pikseli przebiega od dołu do góry.

Z drugiej strony mamy 4 oddzielne piksele, które trzeba połączyć między nimi. Te piksele pokażą nam kolor, który wybieramy za pomocą przycisków.

Do każdej listwy podłączony jest szeregowo rezystor 470 Ω, który chroni dane. Kabel danych każdego paska pikseli jest podłączony do pinu cyfrowego. Wybrane piny w Arduino MEGA to 6, 7, 8 i 9.

Na przykład 6 i 7 są dla gracza 1 i 8 i 9 dla gracza 2.

Przyciski, których użyliśmy, są typowymi przyciskami automatów zręcznościowych. Pomyśleliśmy, że będą dobrze wyglądać i tak właśnie było.

Można użyć innych przycisków, ale należy wziąć pod uwagę, że jeśli są mniejsze lub większe, plik DXF należy zmodyfikować przed cięciem laserowym CNC.

Aby odróżnić graczy, niektóre przyciski są białe, a inne czarne.

Każdy gracz ma 4 przyciski w górę i 1 w dół. 4 górne przyciski służą do wyboru koloru każdej pozycji klucza.

Dolny przycisk służy do walidacji, czyli wysyła klucz do pojawienia się w matrycy pikseli z odpowiednią weryfikacją, czy kolor i pozycja się powiodły.

Przed złożeniem wszystkiego przylutowaliśmy wszystkie kable. Będziesz więc potrzebował dużo kabla. Będzie to zależało od rozmiaru gry. W naszym przypadku była dość duża.

Na przykład możesz użyć kabla Ethernet, aby go otworzyć i wziąć wewnętrzne kable. To dobre rozwiązanie. Staraj się mieć je jak najbardziej uporządkowane, ponieważ wtedy konieczne będzie wykonanie połączeń z Arduino MEGA jak widać na schemacie elektrycznym.

Kiedy już będziesz żołnierzem, zanim dosiądziesz go, musisz spróbować. Jest przetestowany, ponieważ po zamontowaniu w obudowie będzie przyklejony gorącym silikonem, a jeśli się nie powiedzie, będzie to skomplikowane, to zdejmij go. Aby umieścić matryce pikseli, zaprojektowano siatkę o takich samych wymiarach jak siatka na pokrywie, w której z jednej strony przyklejone są piksele, az drugiej strony papier roślinny.

Ten papier rozprasza światło każdego piksela, dając znacznie piękniejszy efekt. Następnie ta struktura przykleja się do górnej części wewnątrz. Jest to trochę skomplikowane, ale z rozwagą osiąga się dobry wynik.

Karmienie było nieco skomplikowane. W zasadzie i patrząc na schemat, zamierzaliśmy używać tylko jednej ładowarki. Jednak po pierwszych testach i zużyciu NeoPixela widzieliśmy, że wystarczyłoby dwie ładowarki.

Każdy piksel może pobierać maksymalnie 60 mA. Jeśli pomnożymy przez 168 pikseli, uzyskamy zużycie około 10 A.

Chociaż byłoby to w najgorszym przypadku. W programowaniu wzięliśmy już pod uwagę, aby nie maksymalizować intensywności NeoPixela.

Nie osiągamy nawet 50%, więc z ładowarką 5V i 5A w zupełności wystarczy.

Z drugiej strony Arduino MEGA ma osobną ładowarkę, którą można podłączyć przez złącze jack lub przez port USB. Jednym z możliwych usprawnień byłoby posiadanie jednej ładowarki dla całego systemu.

Krok 4: Programowanie gry

Programowanie gier
Programowanie gier
Programowanie gier
Programowanie gier

Programowanie zostało wykonane przy użyciu dwóch bibliotek: OneButton i Adafruit_NeoPixel.

Biblioteka OneButton pozwala w prosty sposób sterować przyciskami z przerwami.

Biblioteka Adafruit_NeoPixel pozwoliła nam w bardzo prosty sposób sterować paskiem NeoPixel.

Programowanie opiera się na różnych stanach, w których program może być:

Rozpoczęcie gry. Stan = 0

W tym stanie gra jest uruchomiona, a sekwencja światełek u obu graczy wskazuje, że gra się rozpocznie. W tym stanie przyciski nie reagują.

Stan początkowy. Stan = 1

W stanie początkowym poczekaj, aż jeden z dwóch graczy dwukrotnie kliknie przycisk potwierdzenia (piąty przycisk). Ta akcja pozwoli rozpocząć grę.

Przygotowanie gry. Stan = 2

W stanie przygotowania gry wszystkie zmienne są resetowane i uruchamiany jest losowy wybór kolorów klucza.

Stan gry = 3

W stanie 3 rozpoczyna się gra. Każdy gracz wybiera klucz za pomocą przycisków i zatwierdza go, klikając przycisk potwierdzenia. Ten stan może zakończyć się na dwa sposoby: gdy gracz odkryje klucz lub gdy dwaj gracze zużyją 10 prób, które mają.

Jeden zwycięski stan = 4

Jeśli gracz wygra, na jego planszy pojawi się zielony czek, a na przegranej kombinacji zwycięski i czerwony krzyżyk.

Remisowa gra. Stan = 5

W przypadku remisu nic nie jest pokazane na żadnej planszy, a zwycięska kombinacja na planszach obu graczy.

Niezależnie od tego, czy w grze jest zwycięzca, czy remis, następnym stanem będzie stan początkowy, oczekujący na podwójne kliknięcie.

Cały kod znajdziesz poniżej. Jedyna rzecz, która jest po hiszpańsku:)

Krok 5: Testowanie i ulepszenia

Gra jest testowana przez granie. Na powyższym filmie możesz zobaczyć kompletną grę.

Stąd możemy wymyślić kilka ulepszeń, które można dodać do Mastermind Star Wars z Arduino.

Następnie wymieniam je.

  • Aby móc grać w turach z łącznie 10 próbami dla dwóch graczy. Kiedy gracz spróbuje klucza, drugi gracz zobaczy grę.
  • Indywidualny tryb gry, dzięki któremu może grać tylko jedna osoba.
  • Tryb każdy za pomocą swojego klucza.
  • Dołącz ekran OLED.
  • Do wszystkiego używaj jednej ładowarki.
  • Połącz się z NodeMCU ESP8266

Jestem pewien, że wiele osób wymyśli wiele ulepszeń. Czekam na komentarze poniżej.

I niech moc będzie z tobą.

Zalecana: