Spisu treści:
- Krok 1: Części
- Krok 2: Okablowanie
- Krok 3: Alternatywne okablowanie
- Krok 4: Kod + Wyjaśnienie
- Krok 5: Dzięki za przeczytanie
Wideo: Tenis Pong z matrycą LED, Arduino i joystickami: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
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 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
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ę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:
Matryca LED sterowana przez Asystenta Google!: 7 kroków (ze zdjęciami)
Matryca LED sterowana przez Asystenta Google!: W tym samouczku pokażę, jak można stworzyć Matrycę LED sterowaną przez Asystenta Google, którą można kontrolować z dowolnego miejsca za pomocą smartfona, więc zaczynajmy
MATRYCA LED RGB Z WYKORZYSTANIEM NEOPIXELA: 8 kroków (ze zdjęciami)
MATRYCA LED RGB PRZY UŻYCIU NEOPIXELA: W tym samouczku pokażę, jak zbudować MATRYCĘ LED 5*5 RGB PRZY UŻYCIU NEOPIXELA. Dzięki tej matrycy możemy wyświetlać hipnotyzujące animacje, emotikony i superproste litery bardzo atrakcyjne. Zacznijmy
Matryca LED "światłowodowa": 9 kroków (ze zdjęciami)
Matryca LED „Fiber Optic”: W tym projekcie stworzyłem „światłowód”; Matryca LED z wykorzystaniem taśmy LED WS2801 i sztyftów klejowych. Wyświetlacze świetlne mają inny wygląd niż podobne kostki LED i mają kilka zalet. Po pierwsze, na wyświetlaczu nie widać rzeczywistych diod LED, ponieważ
48 x 8 przewijany wyświetlacz LED z matrycą LED za pomocą Arduino i rejestrów przesuwnych.: 6 kroków (ze zdjęciami)
Przewijany wyświetlacz LED 48 X 8 za pomocą Arduino i rejestrów przesuwnych.: Witam wszystkich! To mój pierwszy Instruktaż i chodzi o stworzenie programowalnej przewijanej matrycy LED 48 x 8 za pomocą rejestrów przesuwnych Arduino Uno i 74HC595. To był mój pierwszy projekt z płytką rozwojową Arduino. To było wyzwanie dla m
Arduino Telesketch z matrycą LED: 6 kroków (ze zdjęciami)
Arduino Telesketch z matrycą Led: Oto prosty przewodnik tworzenia telesketch za pomocą Arduino. Ten projekt wykorzystuje Arduino, dwie matryce led 8x32, brzęczyk, dwa obrotowe enkodery i kilka przycisków. Mamy nadzieję, że nauczysz się korzystać z enkoderów obrotowych i matrycy ledowej. On też skacze