Spisu treści:

PUNIĘCIE! - Arduino Arcade Game!: 3 kroki
PUNIĘCIE! - Arduino Arcade Game!: 3 kroki

Wideo: PUNIĘCIE! - Arduino Arcade Game!: 3 kroki

Wideo: PUNIĘCIE! - Arduino Arcade Game!: 3 kroki
Wideo: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, Listopad
Anonim
Image
Image
PUNIĘCIE! - Gra zręcznościowa Arduino!
PUNIĘCIE! - Gra zręcznościowa Arduino!

Będziemy budować grę zręcznościową w stylu PONG, która wykorzystuje części z zestawu „Najbardziej kompletny zestaw startowy UNO R3 Project” firmy Elegoo Inc.

Pełne ujawnienie - większość części dostarczonych do tej instrukcji została dostarczona autorowi przez Elegoo Inc.

Chciałem zbudować projekt z wykorzystaniem modułu LED Matrix. Podstawowy wyświetlacz LED 8x8 wymaga zastosowania dodatkowych rejestrów przesuwnych, aby móc adresować poszczególne diody w matrycy. Zamiast tego w tym projekcie zastosowano moduł LED MAX7219 8x8. To bardzo łatwy w użyciu moduł.

Sugerowałbym, że ze względu na dużą liczbę połączeń okablowania w tym projekcie, byłoby to uważane za poziom średniozaawansowany.

Zacznijmy!

Kieszonkowe dzieci

Używane części zestawu startowego Elegoo (https://rebrand.ly/dvjb3w8)

  • Mikrokontroler UNO R3
  • Moduł LED MAX7219 8x8
  • Moduł wyświetlacza LCD 16x2
  • Potencjometr przycinania 10K i pokrętło
  • Druty Dupontowe
  • Rezystor 220R
  • Pasywny brzęczyk piezoelektryczny
  • Moduł zasilania
  • Adapter 9V 1A - potrzebny, ponieważ UNO nie może dostarczyć wystarczającego prądu dla modułu LED 8x8
  • Deska do krojenia chleba

Potrzebne dodatkowe części

Potencjometr liniowy 2 x 10K - niedrogi i szeroko dostępny w serwisach eBay, AliExpress, Banggood itp.

Krok 1: Okablowanie obwodu

Okablowanie obwodu
Okablowanie obwodu

Podłącz obwód zgodnie ze schematem elektrycznym. Nie spiesz się. Oba wyświetlacze wymagają DUŻO połączeń.

Zauważ na zdjęciu obwodu, że moduł zasilania jest podłączony do lewej strony płytki stykowej, a zasilacz 9V 1A DC jest podłączony do modułu zasilania, dzięki czemu do matrycy LED jest dostarczany wystarczający prąd. Nie ma połączenia między pinem 5 V na UNO a płytką stykową. ALE pin GND na UNO jest podłączony do GND na płytce stykowej.

Sprawdź swoją pracę dwukrotnie i trzykrotnie.

Krok 2: Kod Arduino

Ta instrukcja zakłada, że wiesz już, jak programować w Arduino.

Pobierz załączony szkic Arduino. Upewnij się, że dodałeś bibliotekę LedControl do swoich bibliotek Arduino. Użyłem wersji Eberharda Fahle. Po prostu wyszukaj MAX7219 w przeglądarce Zarządzaj bibliotekami, a znajdziesz go i zainstalujesz.

Upewnij się, że plik pitches.h znajduje się w folderze szkicu. Służy do odtwarzania dźwięków w grze.

Trochę o wyczuciu czasu

Ponieważ polecenie delay() całkowicie wstrzymuje wykonywanie szkicu po jego uruchomieniu, zamiast tego szukamy upływu czasu, gdy chcemy wykonać części szkicu związane z animacją. Szukamy określonej ilości czasu, zanim wykonamy części szkicu, takie jak aktualizacja położenia kulki na wyświetlaczu.

Co ważniejsze, polecenie delay() jest tak naprawdę wykonywane tylko w metodzie loop(). Zwykle nie wykonuje się zgodnie z oczekiwaniami w innych metodach. Tak więc wszystkie czasy związane z animacją są wykonywane w metodzie loop().

Przykład:

Definiujemy kilka zmiennych typu „long” i kilka wartości logicznych, a następnie ustawiamy je na końcu setup().

bThresh = 80; // czas w milisekundach między aktualizacjami piłki

ballTime = millis();// ustaw na aktualny czas systemowy

bon = fałsz; // czy dioda kuli jest włączona, czy wyłączona?

ballReturn = fałsz; // czy zwracamy piłkę po uderzeniu wiosłem?

W loop() do rysowania piłki mamy:

if ((millis() - ballTime > bThresh) && bon == false) {// jeśli piłka jest WYŁĄCZONA i minęło wystarczająco dużo czasu ballOn();// włącz diodę LED piłki

bon = prawda; // piłka jest teraz WŁĄCZONA

BallTime = mili(); // zresetuj ballTime do aktualnego czasu

}

if ((millis() - ballTime > bThresh) && bon == true) { // jeśli piłka jest WŁĄCZONA i minęło wystarczająco dużo czasu

ballOff(); // wyłącz kulkę LED

bon = fałsz; // piłka jest teraz WYŁĄCZONA

BallTime = mili(); zresetuj ballTIME do aktualnego czasu

}

Istnieje wiele sposobów na zrobienie tej gry. To tylko moje preferencje.

Szkic jest w pełni udokumentowany, więc zapraszam do zapoznania się z kodem, aby zobaczyć jak to działa.

Sprawdź, skompiluj i prześlij swój kod.

Ciesz się grą!

Krok 3: Wniosek

Wniosek
Wniosek
Wniosek
Wniosek

Moje podziękowania kieruję do Elegoo Inc za dostarczenie zestawu startowego użytego w tym projekcie. Jest to zestaw z dużą różnorodnością części i modułów, który wprowadzi Cię w świat Arduino Maker.

Zalecana: