Spisu treści:

Kontroler gier wideo Arduino: 4 kroki
Kontroler gier wideo Arduino: 4 kroki

Wideo: Kontroler gier wideo Arduino: 4 kroki

Wideo: Kontroler gier wideo Arduino: 4 kroki
Wideo: Omnidirectional Driving with a DualShock 4 Controller 2024, Lipiec
Anonim
Kontroler gier wideo Arduino
Kontroler gier wideo Arduino

Czy masz zestaw Arduino leżący, ale nie masz pojęcia, co z nim zrobić? Być może nie, ale w tym Instructable pokażę Ci krok po kroku, jak budować, kodować i integrować Arduino z Twoim projektem. W tej chwili ten przewodnik jest testowany tylko z Clickteam Fusion Developer 2.5, ale kroki kompilacji i kodu Arduino mogą być używane uniwersalnie. Ten przewodnik może w przyszłości zostać zaktualizowany dla Unreal i Unity.

Krok 1: Lista zakupów

  • Arduino Uno lub podobny
  • Kabel USB
  • (400 punktów) Breadboard lub 1 x deska perf/stripboard
  • Przewody kompatybilne z Arduino.
  • Różne czujniki. W moim przykładowym projekcie użyłem następujących elementów:
  • Panelowy potencjometr 10K przyjazny dla płytki stykowej
  • Fotorezystor
  • Rezystor wrażliwy na siłę

Krok 2: Połączenia

Znajomości
Znajomości

Uwaga: są to tylko czujniki, których osobiście używałem w moim projekcie. Oznacza to, że istnieje o wiele więcej opcji. Instrukcje krok po kroku, jak je okablować, można znaleźć na różnych stronach w zależności od czujnika.

Krok 3: Kod Arduino

Skopiuj i prześlij ten kod do swojego Arduino, jeśli chcesz używać tego samego rodzaju czujników co ja. W przeciwnym razie możesz użyć własnego kodu dla swoich czujników. Jedyną globalną ważną rzeczą, która jest wymagana, jest to, aby zmienne, których chcesz użyć w silniku gry, zostały wydrukowane na monitorze szeregowym lub można je odczytać w inny sposób.

//Są one ustawiane na początku i nie są zmieniane podczas działania programu. Takich, jakich używa pin ANALOG IN.

const int potPin = A0; const int fsrAnalogPin = 5; const int fotokomórkaPin = 2; //Zmienne: //LIGHT SENSOR: //Zmienna ilości światła: int photocellReading; //POTENTIOMETER //Wartość potencjometru int value; //PRESSURE SENSOR //Jest to zmienna surowych danych z czujnika ciśnienia. int fsrCzytanie; //Odwzorowana wersja zmiennej fsrReading int pressure; void setup() { // umieść tutaj swój kod instalacyjny, aby uruchomić raz: pinMode(potPin, INPUT); Serial.początek(9600); } void loop() { // PRESSURE SENSOR //Tutaj używamy określonego fsrAnalogPin do odczytania danych z tego pinu. fsrReading = analogRead (fsrAnalogPin); //Odwzoruj wartość od 0-1023 do 0-255. ciśnienie = mapa(fsrReading, 0, 1023, 0, 255); //Sprawdź, czy ciśnienie jest niższe lub wyższe od określonej wartości drukowania jednego z dwóch. Ta wydrukowana zmienna jest używana później w silniku gry. if (ciśnienie 70) { Serial.print("6"); } // POTENCJOMETR wartość = analogRead(potPin); //Odczyt i zapis wartości analogowej z wartości potencjometru = map(value, 0, 1023, 0, 360); //Odwzoruj wartość 0-1023 na 0-360 //Tutaj podzieliliśmy 360 na sześć różnych segmentów. //Możesz zmienić liczbę segmentów na większą. Każdy segment miałby wtedy mniejszy zasięg. Na przykład 8 segmentów miałoby zakres 45 każdy.(360 / ilość segmentów) //Jeśli bieżąca wartość przypada na segment, wydrukuje nazwę tego segmentu. if (wartość 60 i wartość 120 i wartość 180 i wartość 240 i wartość 300 i wartość < 375) Serial.print("Six"); // LIGHT SENSOR //Tu ponownie odczytujemy i ustawiamy zmienną, w tym przypadku photocellReading. fotokomórkaReading = analogRead(fotokomórkaPin); //Sprawdzamy ilość światła, przy ciemnym i bardzo ciemnym druku a 3 i normalnych wartości światła 4. if (photocellReading < 10) { Serial.println(" - 3"); } else if (fotokomórkaReading < 200) { Serial.println(" - 3 -"); } else if (fotokomórkaReading < 500) { Serial.println(" - 4 -"); } //Liczby w Serial: //Pierwsza liczba to czujnik ciśnienia, 5 nie jest naciśnięte, a 6 jest naciśnięte. //Po tym segmencie jest aktualnie włączony potencjometr. //Ostatnia liczba to 3 = ciemny lub 4 = jasny.

Krok 4: W silniku gry: Kliknij Team 2.5

W Menedżerze rozszerzeń znajdź obiekt szeregowy i zainstaluj go.

Umieść obiekt seryjny, licznik i sznurek w swojej ramce. (prawy przycisk myszy w ramce - wstaw obiekt)

W Edytorze zdarzeń utwórz zdarzenie: Jeśli dane oczekują: Ustaw zmienny ciąg na GetData("Obiekt szeregowy")

Spowoduje to ustawienie ciągu na dowolne dane wysyłane przez Arduino, ciąg powinien teraz wyglądać podobnie do monitora szeregowego.

Utwórz kolejne zdarzenie Zawsze: Ustaw licznik na: Find(string$("String"), "4", 0)

W tym przykładzie spróbujemy znaleźć 4, co oznacza światło, jak widać w kodzie Arduino.

Jeśli znajdzie 4, ustawi licznik na 4, jeśli nie znajdzie 4, licznik będzie wynosił -1.

Teraz możesz dodać nowe wydarzenie, aby zrobić coś z tym wynikiem:

If counter = -1: Tutaj możesz podać, co powinno się dziać, jeśli jest fałszywe, na przykład w przypadku animacji wyłączonej lampy.

Jeśli licznik = -1: Oznacza to, że znalazł zmienną, a licznik został ustawiony na dowolną wartość tej zmiennej (o ile nie jest to -1), tutaj możesz zrobić to tak, aby animacja lampy była włączona.

Zasadniczo, używając liczników ustawionych na wartość -1, która jest fałszem lub -1, która jest prawdziwa, można sprawić, że zdarzenia się wydarzą.

Zalecana: