Spisu treści:

Szybka gra reakcji: Wersja na odległość: 5 kroków (ze zdjęciami)
Szybka gra reakcji: Wersja na odległość: 5 kroków (ze zdjęciami)

Wideo: Szybka gra reakcji: Wersja na odległość: 5 kroków (ze zdjęciami)

Wideo: Szybka gra reakcji: Wersja na odległość: 5 kroków (ze zdjęciami)
Wideo: LOSUJEMY Z KIM JESTEŚMY W CIĄŻY! 2024, Czerwiec
Anonim
Szybka gra reakcji: wersja na odległość
Szybka gra reakcji: wersja na odległość

Cześć. To jest instrukcja, jak stworzyć grę, która sprawdza zarówno twój czas reakcji, jak i poczucie odległości. Ten projekt jest oparty na starym projekcie, który wykonałem z udziałem dwóch graczy rywalizujących, aby zobaczyć, kto miał szybszy czas reakcji, klikając przycisk, gdy światło zmieniło się na zielone. Ten ma podobny cel, z wyjątkiem tego, że jest to tryb dla jednego gracza i zamiast gaśnięcia światła, gracz ma czas na odsunięcie ręki o pewną przestrzeń od czujnika odległości.

Podobnie jak wszystkie projekty Arduino, ta gra będzie wymagała wielu elementów elektrycznych w obwodzie Arduino. Główne komponenty, oprócz okablowania i samego Arduino, to płytka stykowa, serwomotor, wyświetlacz LCD, dioda LED RGB i czujnik odległości.

Korzystając z https://abra-electronics.com, cena bez przewodów i Arduino wynosi 32,12 CAD.

Krok 1: Krok 1: Czujnik odległości

Krok 1: Czujnik odległości
Krok 1: Czujnik odległości

Pierwszym krokiem jest ustawienie ultradźwiękowego czujnika odległości na płytce stykowej i podłączenie go do Arduino. Dokładna pozycja czujnika tak naprawdę nie ma znaczenia, ale najlepiej jest blisko krawędzi, aby było miejsce na inne komponenty, jak pokazano na powyższym obrazku. Na czujniku znajdują się cztery piny; GND, VCC, TRIG i ECHO. GND i VCC należy podłączyć odpowiednio do szyny uziemiającej i zasilającej, a pozostałe dwa piny podłączyć do dwóch pinów w Arduino. Dwa piny, których użyłem, to 12 dla ECHO i 11 dla TRIG. Użyj dwóch innych przewodów do zasilania szyny zasilającej i uziemienia szyny uziemiającej, podłączając szynę zasilającą do styku 5 V, a szynę uziemiającą do styku GND.

Krok 2: Krok 2: Serwosilnik

Krok 2: Serwosilnik
Krok 2: Serwosilnik

Następnym krokiem jest konfiguracja serwomotoru. W tym projekcie serwomotor pełni funkcję timera. Rozpocznie się od 1 stopnia, a po czasie, w którym użytkownik będzie musiał zdystansować ręce, obróci się o 180 stopni. Wykorzystałem 2 sekundy, gdy użytkownik dowiaduje się, jak daleko musi oddalić ręce, więc serwo obraca się o 179 stopni w ciągu 2 sekund, obracając się w krótkich odstępach czasu. Silnik serwo ma trzy przewody; zwykle żółty, czerwony i brązowy. Czerwony wchodzi do szyny zasilającej, która jest już podłączona do 5 V, a brązowy do szyny uziemiającej już podłączonej do GND. Ostatni przewód podłącza się do pinu Arduino. Do tego wybrałem pin #9. Następnie potrzebujesz kondensatora łączącego tę samą szynę, do której podłączone są przewody zasilania i uziemienia serwomechanizmu, jak pokazano na powyższym obrazku.

Krok 3: Krok 3: Dioda LED RGB

Krok 3: dioda LED RGB
Krok 3: dioda LED RGB

Funkcją diody LED w tym przypadku jest działanie jako skala dla partytury. Gdy wynik gracza wynosi około 0, dioda LED będzie biała i będzie bardziej czerwona, jeśli wynik gracza spadnie, a zielony, jeśli wynik gracza wzrośnie. Ta dioda LED ma cztery nogi; noga z czerwonym światłem, noga z niebieskim światłem, noga z zielonym światłem i wspólna katoda dzielona między pozostałe trzy nogi. Wspólna katoda, najdłuższa noga, jest podłączona do szyny zasilającej, dzięki czemu otrzymuje napięcie 5 woltów. Podłącz rezystory 330 omów do pozostałych trzech kolorowych nóg, a drugie końce tych rezystorów dołącz do cyfrowych pinów PWM na Arduino. Te, których użyłem, to cyfrowe piny 3, 5 i 6 odpowiednio dla czerwonych, zielonych i niebieskich nóg.

Krok 4: Krok 4: LCD

Krok 4: LCD
Krok 4: LCD

Ostatnim elementem jest wyświetlacz LCD, który oznacza wyświetlacz ciekłokrystaliczny. Celem tego jest poinformowanie gracza o jego aktualnym wyniku, a także o odległości, jaką musi odsunąć od czujnika. Tutaj są cztery szpilki; GND, VCC, SDA i SCL. GND i VCC zostaną podłączone odpowiednio do uziemienia i szyn zasilających płytki stykowej. Pin SDA musi być podłączony do pinu analogowego A4, a pin SCL musi być podłączony do pinu analogowego A5. W przeciwieństwie do innych komponentów, musisz podłączyć styki SDA i SCL do A4 i A5.

Krok 5: Krok 5: Kod

Teraz, gdy już połączyliśmy wszystkie komponenty, możemy napisać kod. Pierwszą częścią kodu jest zaimportowanie potrzebnych bibliotek i zadeklarowanie naszych zmiennych oraz tego, do których pinów są podłączone komponenty. Musimy zaimportować biblioteki Wire, LiquidCrystal_I2C i Servo dla tego kodu.

#włączać

#włączać

#włączać

Serwo myServo;

int const trigPin = 11;

int const echoPin = 12;

int czerwonyPin = 3;

int zielonyPin = 5;

int niebieskiPin = 6;

wynik wewnętrzny = 0;

int tim = 500;

int current = losowo(8, 16); //losowa wartość, przy której użytkownik musi odsunąć rękę od czujnika

LiquidCrystal_I2C lcd (0x27, 16, 2); //Konfiguracja LCD

Teraz musimy użyć void setup(), aby zadeklarować nasze typy pinów i skonfigurować inne niezbędne komponenty.

void setup() { myServo.attach(9); Serial.początek(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode pinMode(redPin, OUTPUT); pinMode(zielonyPin, WYJŚCIE); pinMode (bluePin, WYJŚCIE); lcd.init(); podświetlenie LCD(); lcd.początek(16, 2); lcd.clear(); //Konfiguracja LCD}

Teraz musimy ustawić kod LED RGB za pomocą funkcji i PWM:

void setColor(int czerwony, int zielony, int niebieski) {

czerwony = 255 - czerwony;

zielony = 255 - zielony;

niebieski = 255 - niebieski;

zapis analogowy(redPin, czerwony);

analogZapis(zielonyPin, zielony);

zapis analogowy (niebieski pin, niebieski);

}

Teraz musimy dodać void loop(). Tutaj będziemy generować losowe liczby całkowite i używać serii instrukcji if do sterowania grą dla gracza. Bieżąca zmienna, ustawiona powyżej, dotyczy aktualnej odległości, jaką gracz musi oddalić od czujnika.

Ponieważ kod w void loop() jest bardzo długi, wkleję link do dokumentu, który ma ten kod:

docs.google.com/document/d/1DufS0wuX0N6gpv…

Na koniec musimy wykonać rzeczywiste obliczenia, aby przekonwertować wartości ultradźwiękowego czujnika odległości na cale. Ultradźwiękowy czujnik odległości nie mierzy bezpośrednio odległości; uwalnia dźwięk i rejestruje czas potrzebny czujnikowi na odzyskanie dźwięku z dowolnego przedmiotu, od którego się odbija.

długie mikrosekundy na cale (długie mikrosekundy) {

powrót mikrosekundy / 74 / 2;

}

Teraz podłączamy przewodowe Arduino do komputera z kodem, ustawiamy porty i uruchamiamy! W tej grze są dwa tryby. Albo możesz używać tylko wyświetlacza LCD, serwomotoru, czujnika i diody LED RGB i znasz tylko odległość, jaką musisz być od czujnika, co jest trudniejszym trybem. Łatwiejszy tryb polega na użyciu monitora szeregowego w menu Narzędzia > Monitor szeregowy, który co sekundę będzie informował o odległości od czujnika, dzięki czemu można dokonać niezbędnych korekt.

Dziękuje za przeczytanie!

Zalecana: