Spisu treści:

Pumpktris - Dynia Tetris: 10 kroków (ze zdjęciami)
Pumpktris - Dynia Tetris: 10 kroków (ze zdjęciami)

Wideo: Pumpktris - Dynia Tetris: 10 kroków (ze zdjęciami)

Wideo: Pumpktris - Dynia Tetris: 10 kroków (ze zdjęciami)
Wideo: Kalle rensar pumpa 2024, Lipiec
Anonim
Pumpktris - Dynia Tetris
Pumpktris - Dynia Tetris

Kto chce mieć uśmiechnięte twarze i świece, skoro w te Halloween można mieć interaktywną dynię? Zagraj w swoją ulubioną grę w układanie bloków na siatce 8x16 wyrzeźbionej w cyrku, oświetlonej diodami LED i używając łodygi jako kontrolera. Jest to projekt średnio zaawansowany i wymagający doświadczenia w lutowaniu i programowaniu w środowisku Arduino. Będziesz pracować z materią organiczną i wszystkimi jej nieodłącznymi dziwactwami, więc pomiary mogą wymagać dostosowania do używanej dyni.

Krok 1: Wymagane materiały

Potrzebne materiały
Potrzebne materiały
Potrzebne materiały
Potrzebne materiały

Aby zbudować własne Pumpktris, potrzebujesz następujących elementów: Komponenty

  • 128 bursztynowych diod LED 5 mm (użyłem tych od Mouser) Kup trochę dodatkowych, aby zakryć ewentualne błędy lub testy. Dostałem 140. Bursztyn najbardziej przypomina płomień, który byłby wewnątrz tradycyjnej latarni, ale możesz użyć dowolnego koloru.
  • Mikrokontroler Arduino
  • Rurki termokurczliwe 1/16" (11 stóp lub 256 1/2" długości)
  • Joystick Arcade ze zdejmowaną rączką (ten od SparkFun sprawdził się u mnie)
  • 4 nylonowe kotwy do płyt gipsowo-kartonowych nr 6
  • 4 półcalowe śruby tego samego rozmiaru i typu, które były dostarczane z kotwami do płyt kartonowo-gipsowych. Te, które przychodzą z kotwicami, będą za długie.
  • Śruba 6 mm x 50 mm (lub inny rozmiar pasujący do uchwytu joysticka)
  • Nakrętka łącząca 6 mm (lub inny rozmiar, który jest potrzebny, aby pasował do powyższej śruby) Nakrętka łącząca wygląda jak zwykła nakrętka, ale ma około cala długości i służy do łączenia dwóch śrub lub kawałków pręta gwintowanego.

I wreszcie, będziesz potrzebować 1 dyni. Potrzebujesz tylko jednego, ale polecam dwa, aby mieć jeden, którego możesz użyć do ćwiczenia wiercenia i cięcia. Twoja matryca LED pokryje obszar o szerokości około 4 cali i wysokości 8 cali, więc potrzebujesz dyni o powierzchni tak gładkiej i płaskiej, jak to tylko możliwe, aby matryca nie owijała się zbyt daleko. Możesz użyć dyni z pianki, ale gdzie jest w tym magia? Nie potrafię mówić o technikach rzeźbienia potrzebnych na dyni z pianki. Narzędzia i materiały eksploatacyjne

  • Lutownica
  • Lutować
  • Nożyce do drutu
  • Narzędzia do ściągania izolacji
  • Wiertarka elektryczna
  • Brzeszczot
  • Nóż X-Acto
  • Wiertło 13/64"
  • Wiertło 1-1/8" (użyłem wiertła Forstner, ale wiertło łopatkowe też może działać)
  • Płyta z rdzeniem piankowym 1/4"

Krok 2: Budowanie matrycy LED

Budowanie matrycy LED
Budowanie matrycy LED
Budowanie matrycy LED
Budowanie matrycy LED
Budowanie matrycy LED
Budowanie matrycy LED

Każda matryca składa się z 64 diod LED i 128 kawałków drutu. Najłatwiej jest wyciąć i odizolować wszystkie przewody dla każdej matrycy z wyprzedzeniem. Pokrój 112 na kawałki o przekątnej 2,5 cala i usuń 1/4 cala z każdego końca. Pokrój pozostałe 16 na 12-calowe kawałki i zdejmij oba końce. Im bardziej spójne długości przewodów uzyskasz, tym łatwiej będzie je zbudować i zainstalować.

Zaczniesz od zbudowania szesnastu ośmiosegmentowych łańcuchów z przewodów – każdy z 7 krótkimi i 1 długim przewodem. Skręć każdy koniec razem z następnym kawałkiem i lutem. Aby podłączyć przewody do diod LED, potrzebujesz uchwytu do trzymania diod LED. Narysuj siatkę 8x8 z odstępami pół cala na kawałku płyty z rdzeniem piankowym o grubości 1/4 cala, a następnie użyj szydła, aby wbić otwór o nieco mniejszej średnicy niż dioda LED na każdym skrzyżowaniu. Będziesz mieć 64 otwory, gdy gotowe. W górnym rzędzie otworów włóż 8 diod LED. Rdzeń z pianki rozciągnie się, aby dopasować diody LED i mocno je przytrzyma. Ustaw diody LED tak, aby dłuższa noga – przewód anodowy – była skierowana w Twoją stronę. Sprawdź jeszcze raz, bo jeśli się pomylisz, matryca nie będzie działać. Przypnij każdy przewód anodowy do około 1/4" długości i pocynuj go lutowiem, aby ułatwić podłączenie przewodów. Wytnij 8 kawałków rurki termokurczliwej na segmenty 1/2 ". Wsuń kawałek rurki na pierwsze połączenie przewodu, wepchnij go z powrotem, aby ciepło lutowania nie miało na niego wpływu, a następnie przylutuj połączenie przewodu do anody LED. Wsuń rurkę w dół na połączenie, gdy ostygnie. Przejdź do następnej diody LED, powtarzając jeszcze siedem razy proces przesuwania na kawałku rurki, lutowania połączenia, a następnie opuszczania rurki nad złączem. zestaw ośmiu diod LED połączonych ze sobą, wyjmij je z uchwytu i powtórz ponownie dla kolejnych siedmiu rzędów, upewniając się, że wszystkie połączenia z przewodem anodowym każdej diody LED. Możesz użyć dowolnego rzędu uchwytu, do którego najłatwiej jest dotrzeć, ponieważ pracujesz tylko z jednym na raz. Po przylutowaniu wszystkich ośmiu rzędów nadszedł czas, aby połączyć kolumny i utworzyć matrycę. Włóż wszystkie ciągi LED do wykonanego przyrządu. Utrzymaj długi przewód na tym samym strony każdego sznurka. Wytnij i ocynuj przewód katodowy każdej diody LED w pierwszym kol hm, tak jak zrobiłeś, żeby zbudować łańcuch. Weź kolejny łańcuch i powtórz proces lutowania go do diod LED, tylko tym razem podłączasz go pod kątem 90 stopni do pierwszego zestawu przewodów, które zrobiłeś. Trzymaj długi przewód po tej samej stronie matrycy. Po zakończeniu każdej kolumny wyjmij ją z uchwytu z rdzeniem piankowym i złóż, aby zapewnić dostęp do następnej kolumny. Kiedy skończysz, będziesz mieć 64 diody połączone w 8 rzędach i 8 kolumnach. Niestety musisz powtórzyć proces ponownie dla drugiej matrycy. Jeśli potrzebujesz przerwy, przejdź do kroków 3, 4 i 5, aby popracować nad kodem, a następnie wróć do tego.

Krok 3: Sterowanie diodami LED

Sterowanie diodami LED
Sterowanie diodami LED
Sterowanie diodami LED
Sterowanie diodami LED
Sterowanie diodami LED
Sterowanie diodami LED
Sterowanie diodami LED
Sterowanie diodami LED

Wykonane przez Ciebie matryce LED będą sterowane przez dwa plecaki Mini 8x8 LED Matrix od Adafruit. Każdy kontroler umożliwia sterowanie 64 diodami LED za pomocą tylko dwóch przewodów z Arduino i można połączyć wiele kontrolerów razem na tych samych dwóch przewodach. Postępuj zgodnie ze wskazówkami dołączonymi do plecaka LED Matrix, aby przylutować 4-pinowe złącze zasilania/dane/zegar. Następnie zamiast lutować na dołączonej do niego matrycy LED, przylutuj dwa rzędy żeńskich nagłówków do plecaka. Podłącz dołączoną mini matrycę LED do gniazd. Podłącz matrycę do płytki stykowej i połącz ją w następujący sposób:

  • Połącz pin CLK na plecaku z pinem analogowym 5 w Arduino.
  • Podłącz pin DAT do pinu analogowego 4 w Arduino.
  • Podłącz GND do pinu uziemienia w Arduino.
  • Podłącz VCC+ do zasilania 5V.

Pobierz bibliotekę Adafruit LED Backpack i biblioteki Adafruit GFX i zainstaluj je na swoim komputerze, kopiując je do folderu „biblioteki” w folderze szkicu Arduino na komputerze. Prześlij plik „matrix8x8” do swojego Arduino i sprawdź, czy plecak LED działa. Piny matrycy LED mogą nie mieć dobrego kontaktu w żeńskich nagłówkach, więc może być konieczne jej poruszenie lub częściowe usunięcie, aby nawiązać kontakt i umożliwić świecenie wszystkich rzędów i kolumn. Powtórz ten proces z drugim plecakiem LED, ale tym razem musisz ustawić dla niego nowy adres, lutując zworkę w poprzek padów A0 na plecaku. Uruchom ponownie kod „matrix8x8”, ale zmień wiersz „matrix.begin(0x70)” na „matrix.begin(0x71)”, aby kod adresował nowy plecak LED.

Krok 4: Podłączanie joysticka

Podłączanie joysticka
Podłączanie joysticka
Podłączanie joysticka
Podłączanie joysticka

Twój joystick powinien mieć cztery przełączniki z dwoma zaciskami każdy. Kiedy przesuniesz joystick w prawo, aktywuje przełącznik po lewej stronie, gdy przesuniesz go w dół, uruchomi przełącznik na górze i tak dalej. Na jednym zacisku każdego przełącznika przylutuj przewód 3". Skręć drugi koniec wszystkich czterech przewodów razem i przylutuj je do przewodu 12". Jest to wspólny grunt dla wszystkich czterech przełączników. Przylutuj przewód 12" do pozostałego zacisku każdego przełącznika, a następnie podłącz je w następujący sposób:

  • Podłącz dolny przełącznik (aktywowany po naciśnięciu w górę) do analogowego styku 0 w Arduino.
  • Podłącz lewy przełącznik (aktywowany po naciśnięciu w prawo) do styku analogowego 1 w Arduino.
  • Podłącz górny przełącznik (aktywowany po naciśnięciu) do pinu analogowego 2 w Arduino.
  • Podłącz prawy przełącznik (aktywowany po naciśnięciu w lewo) do styku analogowego 3 w Arduino.
  • Podłącz wspólny przewód uziemiający do styku uziemienia w Arduino.

Krok 5: Programowanie gry

Programowanie gry
Programowanie gry

Pobierz załączony plik Pumpktris.ino.zip, rozpakuj go i otwórz plik w środowisku programistycznym Arduino. Skompiluj i prześlij do swojego Arduino. Teraz powinieneś być w stanie grać na mini matrycy LED, którą skonfigurowałeś w poprzednim kroku. Próbowałem skomentować kod tak bardzo, jak to możliwe, ale oto ogólny przegląd głównych procesów: Opisywanie kształtów Jest siedem tetromin, każde z 4 pikselami i każde z czterema możliwymi rotacjami. Przechowujemy to wszystko w wielowymiarowej tablicy: pierwszy wymiar składający się z siedmiu kształtów, drugi wymiar zawierający cztery obroty dla każdego kształtu, trzeci zawierający opis czterech pikseli, z których każdy składa się ze współrzędnej X i Y. Na przykład opisuje to kształt „T”:/* T */ { /* kąt 0 */ { {0, 1}, {1, 1}, {2, 1}, {1, 2} }, / * kąt 90 */ { {1, 0}, {1, 1}, {2, 1}, {1, 2} }, /* kąt 180 */ { {1, 0}, {0, 1}, {1, 1}, {2, 1} }, /* kąt 270 */ { {1, 0}, {0, 1}, {1, 1}, {1, 2} } }

Śledzenie aktywnego pionka Aby śledzić aktualnie odtwarzany pion, program utrzymuje zmienną activePiece. Jest to indeks aktywnego kształtu na najwyższym poziomie tablicy. Przechowuje również zmienną rotacji zawierającą indeks bieżącej rotacji. Zmienna xOffset śledzi, jak daleko w lewo lub w prawo (0-7) znajduje się każdy element, a yOffset śledzi, jak daleko (0-15) spadła deska. Aby narysować aktywny element program dodaje wartości przesunięcia X i Y do współrzędnych X i Y każdego piksela pobranego z bieżącego obrotu wybranego elementu. Śledzenie stałych elementów Program używa 16-bajtowej tablicy do śledzenia stałych elementów kawałki, przy czym każdy bajt reprezentuje wiersz. Na przykład poniższa tablica reprezentowałaby kształt litery L znajdujący się w środku dwóch dolnych rzędów (co wskazuje jedynka w ostatnich dwóch bajtach): byte sampleGrid[16]= { B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B0010000, B00111000 }; Wykrywanie kolizji Przy próbie przesunięcia aktywnego elementu, program najpierw sprawdza nową pozycję z tablicą stałych elementów. Jeśli nie ma kolizji, ruch jest dozwolony i macierz jest rysowana od nowa. Jeśli kolizja zostanie wykryta podczas próby ruchu w lewo, w prawo lub obrotu, akcja jest zabroniona. Jeśli kolizja zostanie wykryta podczas próby upuszczenia klocka, klocek zostaje unieruchomiony w swojej pozycji i zostaje dodany do tablicy stałych pikseli. Automatyczne upuszczanie elementów Tempo gry jest kontrolowane przez zmienne gravityTrigger i stepCounter. Każda pętla programu zwiększa stepCounter, a za każdym razem gdy stepCounter osiąga wartość zapisaną w gravityTrigger, obniża aktywny element o jeden poziom. W miarę postępu gry, grawitacjaTrigger jest zmniejszana, aby aktywny element spadał coraz częściej, aż w końcu spada w każdej pętli programu. Za każdym razem, gdy aktywny element jest przymocowany do siatki, program sprawdza pełne bajty/wiersze (B11111111). Jeśli coś znajdzie, wyłączy je i włączy trzy razy, a następnie usunie je i upuszcza wiersze powyżej, aby wypełnić lukę. Rozwiązywanie problemów Jeśli kawałki nie spadają z góry na dół, ale zamiast tego przechodzą z boku na bok, zmień wartość przekazana w wierszach "matrixTop.setRotation(1);" i/lub "matrixBottom.setRotation(1);" w pętli "setup()". Jeśli kawałki zaczynają się w złej macierzy, zmień fizyczne położenie każdej macierzy lub odwróć adresy zadeklarowane w "matrixTop.begin(0x70);" i "macierzBottom.początek(0x71);" wiersze pętli "setup()". Jeśli niektóre rzędy lub kolumny nie świecą, poruszaj matrycą mini LED w żeńskich nagłówkach. Mogą nie nawiązywać dobrego kontaktu.

Krok 6: Podłączanie matrycy LED

Podłączanie matrycy LED
Podłączanie matrycy LED
Podłączanie matrycy LED
Podłączanie matrycy LED
Podłączanie matrycy LED
Podłączanie matrycy LED

Po sprawdzeniu, czy cały kod i kontrolki działają z matrycami mini LED, nadszedł czas, aby podłączyć duże matryce LED, które samemu przylutowałeś.

Możesz podłączyć każdy przewód indywidualnie do gniazd w plecaku z matrycą, ale prawdopodobnie będziesz dużo podłączać i odłączać, więc może to być naprawdę kłopotliwe. Zamiast tego chcesz przylutować każdy przewód do męskiej listwy nagłówkowej i podłączyć ją do plecaka z matrycą. Zamontowałem listwy nagłówkowe na kawałku płytki prototypowej, abym mógł podłączyć i odłączyć wszystkie 16 pinów razem. Rzędy 1-4 łączą się z pinami 1-4 na plecaku matrycy (numeracja pinów zaczyna się w lewym górnym rogu, gdy patrzysz w dół na plecak z 4-pinowymi pinami zasilania/masy/danych/zegara na górze). Kolumny 1-4 łączą się z pinami 5-8. Numeracja pinów zawija się tak, że pin 9 znajduje się w prawym dolnym rogu. Rzędy 5-8 łączą się ze stykami 12-9, a kolumny 5-8 łączą się ze stykami 16-13. Zobacz diagram dla większej przejrzystości. Włóż każdą matrycę do plecaka i uruchom ten sam program „matrix8x8”, który zrobiłeś dla matryc mini LED w kroku 4. Jeśli każda z nich działa, możesz załadować program do gry. Jeśli to nie zadziała, sprawdź, czy rzędy i kolumny dużej matrycy LED są podłączone do właściwych pinów plecaka. Montaż matrycy LED w przygotowanym do montażu uchwycie z rdzeniem piankowym może ułatwić testowanie całego systemu.

Krok 7: Rzeźbienie dyni

Rzeźbienie dyni
Rzeźbienie dyni
Rzeźbienie dyni
Rzeźbienie dyni
Rzeźbienie dyni
Rzeźbienie dyni

Nie rób rzeźbienia na dyni, dopóki cała twoja elektronika nie będzie działać. Rzeźbiona dynia ma ograniczony okres przydatności do spożycia, a jeśli najpierw ją wyrzeźbisz, a potem spędzisz 2 dni na elektronice, stracisz dwa dni zabawy.

Znajdź najbardziej płaską stronę dyni, aby panel LED nie owijał się zbyt daleko, a następnie wytnij otwór po przeciwnej stronie. Być hojnym; będziesz potrzebować miejsca, aby zabrać ręce do pracy. Nie będziesz ciąć góry jak w tradycyjnej dyni, ponieważ musi pozostać nienaruszona dla joysticka. Masło dyniowe i elektronika nie są najlepszymi przyjaciółmi, więc dobrze wyczyść wnętrze. Aby uzyskać najlepiej wyglądający Pumpktris, chcesz, aby siatka diod LED była prosta i dobrze wyrównana z dynią. Plik PDF jest dołączony w odstępach 8x16, co pół cala. Wydrukuj to (lub stwórz własny z własnymi odstępami), wytnij brzegi i przyklej z przodu dyni. Upewnij się, że jest prosto w górę iw dół. Za pomocą gwoździa, wykałaczki lub innego podobnego narzędzia wbij otwór pilotażowy w środku każdej diody LED zaznaczonej na papierze. Nie zaleca się wiercenia bezpośrednio przez papier, ponieważ może się on przesunąć lub rozerwać. Po przebiciu wszystkich otworów pilotażowych usuń papierowy szablon i użyj wiertła 13/64" w wiertarce elektrycznej, aby wywiercić każdy otwór. Nie ustawiaj wiertła prostopadle do powierzchni dyni! Jeśli to zrobisz, Krzywizna dyni może spowodować, że otwory oddalone od siebie o pół cala na zewnątrz spotkają się w środku i trudno będzie włożyć diody LED. Zamiast tego staraj się, aby wszystkie otwory były równoległe. Gdy wszystkie otwory zostaną wywiercone, użyj noża X-Acto, aby wyciąć kwadratowy „piksel" wokół każdego otworu. Ustaw nóż w kierunku środka każdego otworu i pozostaw około 1/8" między pikselami. Proponuję kupić dynię do ćwiczeń i wykorzystać ją do doskonalenia techniki wiercenia i rzeźbienia w pikselach. Opanuj to tam, zanim zaryzykujesz zniszczenie idealnej dyni, którą znalazłeś dla gotowego produktu.

Krok 8: Montaż trzpienia do joysticka

Montaż trzpienia do joysticka
Montaż trzpienia do joysticka
Montaż trzpienia do joysticka
Montaż trzpienia do joysticka
Montaż trzpienia do joysticka
Montaż trzpienia do joysticka
Montaż trzpienia do joysticka
Montaż trzpienia do joysticka

Teraz dostosujesz trzpień, aby służył jako joystick do sterowania grą.

Odetnij łodygę jak najbliżej podstawy. Jeśli cięcie nie jest gładkie i czyste, użyj klocka szlifierskiego, aby je spłaszczyć. Wywierć otwór 1-1/8" prosto przez podstawę łodygi do dyni. Odkręć kulkę joysticka i wyrównaj wałek ze środkiem otworu od środka dyni. Upewnij się, że przód dżojstik jest prostopadły do przedniej powierzchni dyni - kiedy grasz, chcesz przesuwać pionki w lewo i w prawo, a nie pod kątem. dynia nad otworami montażowymi w podstawie joysticka. Wyjmij joystick. Za pomocą przecinaków do drutu odetnij rozszerzające się końcówki kotew do płyt gipsowo-kartonowych, tak aby były krótsze niż grubość skóry dyni. Przykręć te skrócone, wąskie kotwy do płyt gipsowo-kartonowych w otwory pilota, które zrobiłeś. Szczegóły kolejnej części będą zależeć od joysticka, który kupiłeś. Ten, którego używałem od SparkFun miał nasadkę 6mm do uchwytu kulowego, który zostanie zastąpiony mostkiem. Jeśli twój joystick jest inny, użyj śrub i nakrętek o dowolnym rozmiarze środek trzpienia i wywierć otwór 13/64" (ten sam rozmiar, którego użyłeś do otworów LED, przypadkowo) około cala prosto w trzpień. Byłby to dobry krok do przetestowania na dyni treningowej, aby upewnić się, że śruba jest mocno wkręcona w otwór. Odetnij łeb śruby 6mm x 50mm piłą do metalu. Nałóż klej epoksydowy lub klej do drewna na gwinty w pobliżu odciętego końca śruby i wkręć go w trzpień. Chcesz około cala tego w łodydze i cala na zewnątrz. Nakręć nakrętkę łączącą 6 mm na wałek drążka, ale nie montuj jeszcze drążka w dyni.

Krok 9: Umieszczenie diody LED i joysticka

Umieszczenie diody LED i joysticka
Umieszczenie diody LED i joysticka

Od środka dyni włóż diody LED rzędem po rzędzie do ich otworów, aż ich podstawy zrównają się z wewnętrzną powierzchnią dyni. Kiedy wszystkie są na miejscu, użyj bambusowego szpikulca, aby wepchnąć je głębiej do przodu. Zostawiłem ich przednią krawędź około 1/4 "do 3/8" pod zewnętrzną powierzchnią. Jeśli są zbyt głęboko pod powierzchnią, światło rozleje się na miąższ dyni, a każdy piksel będzie mniej wyraźny.

Dodaj warstwę plastikowej folii do górnej części joysticka, tak aby przebijał się sam wałek. Dzięki temu przynajmniej trochę wilgoci nie przedostanie się do środka. Przymocuj joystick za pomocą śrub 1/2 do kotew do płyt kartonowo-gipsowych. Śruby dostarczone z kotwami będą zbyt długie i będą przebijać dynię.

Krok 10: Granie w grę

Grać w gre
Grać w gre

Umieść miskę lub plastikowy pojemnik do przechowywania żywności na dnie dyni, aby żadna zwisająca elektronika nie dotykała dna. Podłącz joystick do Arduino, plecaki LED do Arduino, a matryce LED do plecaków. Podłącz źródło zasilania do Arduino. Teraz zagraj w Pumpktris! Pomysły na dalsze eksploracje Zamiast montować joystick na górze dyni z diodami LED, możesz użyć zdalnej dyni, bezprzewodowo lub z kablem ozdobionym tak, by wyglądały jak winorośl. Zamiast gry możesz wyświetlać przewijane wiadomości na swojej latarni. Możesz zamontować matryce z boku (16 szerokości na 8 wysokości), a nawet użyć tylko jednej matrycy. Może to być niebezpieczne dla zdrowia i może prowadzić do usterek w elektronice. Najlepiej jest wyciągnąć całą elektronikę, gdy zauważysz jakikolwiek wzrost na lub w dyni, aby móc ponownie użyć ich później bez konieczności czyszczenia Haz-Mat.

Konkurs na Halloweenowe Dekoracje
Konkurs na Halloweenowe Dekoracje
Konkurs na Halloweenowe Dekoracje
Konkurs na Halloweenowe Dekoracje

II nagroda w konkursie dekoracji na Halloween

Zalecana: