Spisu treści:

Tenis Pong z matrycą LED, Arduino i joystickami: 5 kroków (ze zdjęciami)
Tenis Pong z matrycą LED, Arduino i joystickami: 5 kroków (ze zdjęciami)

Wideo: Tenis Pong z matrycą LED, Arduino i joystickami: 5 kroków (ze zdjęciami)

Wideo: Tenis Pong z matrycą LED, Arduino i joystickami: 5 kroków (ze zdjęciami)
Wideo: Retro konsola arduino. Retro game arduino 2024, Listopad
Anonim
Tenis Pong z matrycą LED, Arduino i joystickami
Tenis Pong z matrycą LED, Arduino i joystickami

Ten projekt jest przeznaczony zarówno dla początkujących, jak i doświadczonych majsterkowiczów. Na podstawowym poziomie można to zrobić za pomocą płytki stykowej, drutów połączeniowych i przykleić do kawałka złomu (ja użyłem drewna) za pomocą Blu-Tack i bez lutowania. Jednak na bardziej zaawansowanym poziomie można go przylutować do płytki perforowanej lub niestandardowej płytki drukowanej.

Ponieważ był to projekt blokady, nie miałem dostępu do wielu narzędzi ani materiałów, dlatego przykleiłem go do kawałka drewna, który jest nieco za mały w przypadku Blu-Tack, ale mimo to jest to zabawny projekt, który się łączy szybko i składa się z powszechnie dostępnych części, które można tanio znaleźć w Internecie.

Krok 1: Części

Aby stworzyć grę Pong, potrzebujesz;

  • 1x Arduino (dowolny typ będzie działał)
  • 4x MAX7219 8x8 matryc LED
  • 2x joysticki
  • 1x brzęczyk piezoelektryczny (opcjonalnie)
  • 15x żeńskie-żeńskie przewody połączeniowe (3x grupy po 5)
  • 15x męskie-żeńskie przewody połączeniowe (3x grupy po 5)
  • 18x męskie-męskie przewody połączeniowe
  • 1x deska do krojenia chleba
  • Rezystor 1x220Ω

Zamiast płytki Arduino Uno lub Nano można użyć Arduino opartego na płytce prototypowej;

  • 1x ATmega328 p 28-pinowy układ scalony
  • 1x oscylator kwarcowy 16 kHz;
  • 2x 22pF kondensatory ceramiczne
  • 1x konwerter USB FTDI UART
  • 1x kondensator elektrolityczny 100 uF;
  • 1x Micro USB Breakout (opcjonalnie)

Narzędzia;

  • PC z Arduino IDE (i biblioteką LedControl)
  • Odpowiedni kabel USB do Arduino
  • Power Bank do zasilania gry z dala od komputera

Krok 2: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie

Okablowanie jest bardzo proste, ponieważ wszystko czego potrzebujesz to zworki do podłączenia nagłówków matryc i joysticków do Arduino. Jedyną komplikacją jest zasilanie, ponieważ Arduino Uno ma tylko 3 połączenia GND i jedno połączenie 5V. W tym miejscu pojawia się płytka prototypowa i działa jako szyna rozdzielcza zasilania dla wszystkich komponentów. Jeśli używasz NANO, płytka prototypowa będzie służyć temu samemu celowi, a także umożliwi podłączenie wszystkiego.

W przypadku okablowania postępuj zgodnie z tymi połączeniami.

  • Lewy joystick - GND i 5V do odpowiednich szyn zasilających. SW - pin 9, VRx - A0, VRy - A1.
  • Prawy joystick - GND i 5V do odpowiednich szyn zasilających. SW - pin 8, VRx - A2, VRy - A3.
  • Matryca LED znajdująca się po prawej stronie - GND i 5V do odpowiednich szyn zasilających. DIN - 13, CS - 11, CLK - 12. (zgodnie z wierszem 25)
  • Wszystkie pozostałe matryce LED można połączyć łańcuchowo z wyjściem pierwszego, idąc od prawej do lewej, aby kod działał poprawnie.
  • Opcjonalny brzęczyk - anoda (+) przez rezystor ograniczający prąd 220 Ω do styku 10, katoda (-) - GND.

Krok 3: Alternatywne okablowanie

Alternatywne okablowanie
Alternatywne okablowanie
Alternatywne okablowanie
Alternatywne okablowanie
Alternatywne okablowanie
Alternatywne okablowanie

Po okablowaniu go z Arduino UNO, aby zaoszczędzić miejsce, zdecydowałem się umieścić układ scalony Arduino z UNO na płytce stykowej z oscylatorem kwarcowym 16 MHz i parą kondensatorów 22 pF z każdej strony do masy. Uważam, że była to warta zachodu modyfikacja, ponieważ sprawia, że projekt wygląda schludniej i bardziej wykończony, jednak do aktualizacji programu trzeba użyć programatora USB FTDI.

Krok 4: Kod + Wyjaśnienie

Aby wgrać kod do Arduino pobierz bibliotekę LedControl z GitHub tutaj, github.com/wayoda/LedControl i dodaj plik Zip lub dodaj go przez Menedżera bibliotek w IDE. Następnie otwórz załączony szkic, wybierz swoje Arduino w ustawieniach płyty i portu pod narzędziami i prześlij go do arduino.

Wyjaśnienie

Linia 1: dodaje bibliotekę

Linia 5-23: Ustawia wszystkie zmienne, stałe i numery pinów.

Linia 25: Ustawia LED Martix i ustawia piny kontrolne i liczbę wyświetlaczy.

Linia 27: konfiguruje funkcję resetowania.

Linia 30-35: Funkcja wyłączania do włączania/wyłączania wszystkich wyświetlaczy jednocześnie.

Linia 38-43: Funkcja SetIntensity do ustawienia jasności wszystkich wyświetlaczy razem.

Linia 46-51: Funkcja ClearAll do jednoczesnego wyczyszczenia wszystkich wyświetlaczy.

Linia 53-64: joystick Funkcja umożliwiająca określenie pozycji joysticków, przypisanie ich do 7 możliwych pozycji kija do uderzenia piłki, a następnie przesunięcie kija do nowej pozycji.

Linia 67-435: Funkcja, która przesuwa piłkę do lewego gracza z określoną wysokością i prędkością, sprawdza, czy gracz ją uderzył i albo kontynuuje i ustawia status zderzenia na true, albo odbija piłkę z powrotem, dodaje 1 do wyniku i zwiększa prędkość.

Linia 438-811: Funkcja, która przenosi piłkę do prawego gracza na określonej wysokości i prędkości, sprawdza, czy gracz ją uderzył i albo kontynuuje i ustawia status zderzenia na true, albo odbija piłkę z powrotem, dodaje 1 do wyniku i zwiększa prędkość.

Linia 813-823: Funkcja wyświetlania buźki, zaznaczenia, krzyżyka lub znaku zapytania na określonym wyświetlaczu (0 po prawej do 3 po lewej).

Linia 861-979: Funkcja wyświetlania liczb 0-9 na określonym wyświetlaczu.

Linia 981-1047: Funkcja wyświetlania wyniku po każdej stronie ekranu gracza.

Linia 1049-1064: Funkcja sprawdzająca, czy odtwarzacz jest gotowy.

Wiersz 1066-1076: sekcja konfiguracji kodu dla kodu, który jest uruchamiany raz podczas uruchamiania programu.

Linia 1078-1136: Sekcja Main Loop dla logiki gry, w której używane są wszystkie funkcje i gdzie decyduje kto wygra, a następnie program uruchamia się ponownie po 5 sekundach od wyświetlenia wyniku.

Krok 5: Dzięki za przeczytanie

Dziękuje za przeczytanie
Dziękuje za przeczytanie

Dzięki za przeczytanie tego Instructable był to zabawny projekt blokady, który zebrał się w ciągu kilku dni, gdy dowiedziałem się więcej o programowaniu Arduino. Jeśli Ci się podobało, zagłosuj na niego w konkursie Arduino.

Zalecana: