Spisu treści:
- Krok 1: Podłączanie przycisków sterujących do Arduino
- Krok 2: Kodowanie Arduino Leonardo:
- Krok 3:
- Krok 4:
- Krok 5:
- Krok 6:
- Krok 7:
- Krok 8: Kodowanie ruchu w jedności:
- Krok 9:
- Krok 10:
- Krok 11:
- Krok 12:
- Krok 13:
- Krok 14: Podłączanie świateł do Arduino
- Krok 15: Kodowanie Arduino Uno
- Krok 16:
- Krok 17:
- Krok 18: Kodowanie świateł po stronie Unity:
- Krok 19:
- Krok 20:
- Krok 21:
- Krok 22:
- Krok 23:
- Krok 24:
Wideo: Kontroler gier Arduino ze światłami reagującymi na twoją grę Unity:: 24 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Najpierw napisałem to słowem. To pierwszy raz, kiedy używam instructable, więc za każdym razem, gdy mówię: napisz kod tak, aby wiedzieć, że odnoszę się do obrazu na górze tego kroku.
W tym projekcie używam 2 arduino do uruchomienia 2 oddzielnych bitów kodu, ponieważ miałem problemy z uruchomieniem tylko jednego
To są Uno i Leonardo
w sumie to jest to, czego potrzebujesz do tego projektu.
· 7 przycisków
· 23 przewody połączeniowe
· 1 arduino Leonardo + kabel usb
· 4 rezystory· 4 diody led
· 1 arduino uno + kabel usb
· 2 deski do krojenia chleba
Krok 1: Podłączanie przycisków sterujących do Arduino
Czego będziesz potrzebować, aby podłączyć tę część:
· 7 przycisków
· 14 przewodów połączeniowych
· 1 arduino Leonardo + kabel usb
· deska do krojenia chleba
Przyciski są dość proste do podłączenia, ale mogą szybko stać się bałaganem do wyświetlenia w formie obrazu.
· najpierw umieść przyciski w pozycjach, które zaznaczyłem na obrazku powyżej.
· Po drugie chcesz podłączyć zworkę z gniazda na ziemi arduino Leonardo do ujemnego rzędu płytki stykowej.
· Teraz podłączasz zworki z dowolnego miejsca w rzędzie minus do rzędu, który znajduje się w jednej linii z prawym kołkiem, na którym wciskasz przycisk. to dostarczy mu mocy.
· Następnie chcesz podłączyć przewód połączeniowy z rzędu, który jest w linii z lewym pinem przycisku do cyfrowych gniazd wejściowych Leonardo. Do przycisków tutaj użyłem slotu 2 - 3 - 4 - 5 - 6 - 7 - 8
Pokazałem tylko przewód idący do wejścia 8 na obrazie, ponieważ obraz staje się bardzo niechlujny, aby pokazać wszystkie przewody krzyżujące się ze sobą.
Krok 2: Kodowanie Arduino Leonardo:
Więc powiem wam, dlaczego używam do tego Leonardo. To dlatego, że ma pewien układ, którego Uno nie ma, co sprawia, że komputer rozpoznaje go jako urządzenie wejściowe USB. Podobnie jak klawiatura. Co pozwala nam zrobić coś, co znacznie ułatwi nam życie jako programistów tego projektu. Emulacja klawiatury. Oszukamy komputer, aby pomyślał, że naciskamy określone klawisze na klawiaturze, podczas gdy w rzeczywistości naciskamy przyciski na naszym kontrolerze.
Teraz przejdę przez krok po kroku, jak pomyśleliście o kodzie.
Po pierwsze na samej górze dołączamy Keyboard.h. Umożliwi nam to korzystanie z funkcji klawiatury, których będziemy używać w naszym kodzie.
Krok 3:
Następnie musimy zdefiniować gniazda wejść cyfrowych, których będziemy używać na
Leonardo za każdy guzik.
Każdy z nich nazwałem też według klucza, który zamierzam naśladować.
Krok 4:
Stamtąd przechodzimy do funkcji konfiguracji. To mówi
arduino co robi przy starcie.
najpierw piszemy Serial.begin, który otworzy port szeregowy i ustawi szybkość transmisji danych na 9600 bps
i definiujemy, że wszystkie są nazwanymi pinami jako wejściami.
Krok 5:
I na koniec piszemy naszą funkcję pętli, która sprawdzi, czy
przyciski są naciskane i mówią arduino, jak na to zareagować.
Najpierw piszemy Keyboard.begin, który powie arduino, że musi na nas uważać za pomocą funkcji klawiatury
Krok 6:
Następnie dla każdego przycisku piszemy instrukcję if/else, która wygląda tak
Więc to, co powiedziałem arduino, to: Jeśli mój lewy przycisk jest wciśnięty na kontrolerze, komputer pomyśli, że naciskamy klawisz „a”, a jeśli tak nie jest, niech pomyśli, że puściliśmy klawisz.
Zasadniczo powtarzasz ten blok kodu dla każdego przycisku na kontrolerze. ze zmianami dla każdej zmiennej i kluczami, które zmienna musi emulować
Krok 7:
Klawisze, które kazaliśmy komputerowi uderzyć tutaj, to W – A – S – D, które
są prawie standardem dla ruchu w grach komputerowych i E – Q – oraz spacją, która w tym kodzie jest rozpoznawana jako „”, które są przyciskami, których używam do podnoszenia – odrzuć i odpal w mojej grze. Możesz je zmienić na dowolne klawisze, które według Ciebie działają lepiej dla Twojej gry/kontrolera.
Następnie na koniec mówimy arduino, aby przestał sprawdzać, który Keyboard.end
Krok 8: Kodowanie ruchu w jedności:
Po pierwsze, powiem ci, że robię to do gry 2D, więc
przykłady, które zobaczysz, są do tego stworzone. Głównie oznacza to, że gdzie używam vector2's, jeśli pracujesz w 3D, użyjesz vector3's. ponieważ musiałbyś się martwić o dodatkowy wymiar ruchu w 3D.
Teraz powodem, dla którego użyłem emulacji klawiatury po stronie arduino, jest to, że Unity ma wbudowane coś do rozpoznawania klawiszy na klawiaturze, z których możemy korzystać.
Jeśli otworzysz swój projekt w unity, przejdź do Edycja -> Ustawienia projektu -> Wejście. Możesz zobaczyć w swoim inspektorze, że uruchamia menedżera wprowadzania. Gdzie, jeśli klikniesz Osie, zobaczysz całą masę nazw wejściowych, które są zwykle używane dla kontrolerów PC, takich jak te, które teraz tworzymy. 2 wejścia, których będziemy używać, to poziome i pionowe, które sprawdzają, czy zgadłeś, W-A-S-D.
Najpierw chcesz stworzyć obiekt w hierarchii scen jedności, który będzie twoim graczem. W moim przypadku jest to zabawny mały facet. To może być wszystko, czego potrzebujesz, ale na potrzeby mojej gry stworzyłem tego faceta.
Krok 9:
Chcesz dać temu graczowi 2 rzeczy. Zderzacz pudełek 2d i
a Rigidbody 2d i edytuj je tak, aby wyglądały jak na powyższym obrazku.
Krok 10:
Następnie chcesz przejść do folderu projektów i utworzyć
Skrypt C#. Który nazwałem PlayerMovement.
W tym skrypcie zdefiniujesz 2 zmienne. Publiczny pływak, który nazywam moveSpeed. Który określi, jak szybko jedziesz. I prywatny Rigidbody2D, który nazywam RigidPlayer. Który będzie szukał sztywnych ciał twoich graczy.
Nie zapomnij przejść do edytora Unity, kliknij na odtwarzaczu, dodaj nowy skrypt, przeciągając go do inspektora i ustaw wartość liczbową dla moveSpeed.
Krok 11:
teraz w swoim Start() chcesz zrobić jedną rzecz, a to
upewnij się, że RigidPlayer może znaleźć Twojego płatnika sztywną 2d. Robisz to za pomocą następującego wiersza kodu:
Krok 12:
Następnie przechodzimy do update(). Oto dokąd zmierzamy
aby zmusić gracza do ruchu.
robimy to za pomocą dość prostego stwierdzenia, które przyjrzy się ujemnym i dodatnim klawiszom z poziomego (AD) i pionowego (SW) i zastosujemy to jako liczbę do wymuszenia, że zamierzamy umieścić na naszym sztywnym ciele 2d, aby wepchnąć naszego gracza kierunek. Liczba ta zostanie pomnożona przez zmienną moveSpeed.
Krok 13:
Na koniec chcesz się upewnić, że twój gracz przestanie się poruszać, gdy
nie naciskasz niczego. To lubisz tak:
Teraz, jeśli chcesz użyć swoich 3 innych przycisków do czegokolwiek, zrób to za pomocą instrukcji if: if(Input. GetKeyDown(Keycode. Space))
dla spacji i zamiast spacji umieść literę innych klawiszy, które wybrałeś dla innych klawiszy.
Krok 14: Podłączanie świateł do Arduino
·
Czego będziesz potrzebować, aby podłączyć tę część:
· 9 przewodów połączeniowych
· 4 rezystory
· 4 diody
· 1 arduino uno + kabel usb
· deska do krojenia chleba
Podłączenie do świateł zostanie wykonane przez Uno.
Skończy się tak, jak na powyższym obrazku:
Rezystory podłączasz do dłuższego boku diod LED. A potem podłączasz zworkę z cyfrowego numeru pinu na uno do rezystorów. w tym przypadku użyłem cyfrowych gniazd pinów 9 – 10 -11 -12 te numery będą miały znaczenie, gdy dojdziemy do kodu dla świateł.
Stamtąd chcesz podłączyć zworkę z gniazda naziemnego na arduino Uno do miejsca na desce, jak widać z czarnym drutem na powyższym obrazku.
Następnie chcesz mieć 4 zworki, które prowadzą do krótkiego końca każdej diody LED
Krok 15: Kodowanie Arduino Uno
W porządku, najpierw ponownie zdefiniujemy nasze zmienne
Więc najpierw jakich wejść cyfrowych używamy do naszych świateł. I stworzymy znak o nazwie myCol[20]
Krok 16:
Następnie w konfiguracji chcemy ponownie wykonać Serial.begin. Umieść wszystkie nasze diody LED na wyjściu i wyłącz je wszystkie podczas uruchamiania.
Krok 17:
I na koniec chcesz napisać swoją funkcję pętli.
Spowoduje to, że Arduino odczyta wszelkie dane przychodzące przez port szeregowy, dopóki nie nastąpi jedno z dwóch zdarzeń. Wykryto znak wysuwu wiersza; jest to identyfikowane przez lf, który jest ustawiony na 10 i jest pierwszym argumentem lub została wczytana pewna ilość bajtów. Jest to trzeci argument iw tym przykładzie jest ustawiony tylko na jeden bajt. Dane są przechowywane w zmiennej myCol, która ma wartość char i limit 20. W readBytesUntil jest to drugi argument. Lub innym sposobem wyjaśnienia tego jest Serial.readBytesUntil(terminatorCharacter, buffer, byteLimit);
A stwierdzenia if sprawią, że pewne światła zapalą się, gdy jedność da sygnał. W tym przypadku mam 4 różne kolorowe światła, więc jedność wysyła g, aby włączyła się zielona dioda LED, b, aby włączyła się niebieska dioda LED, r, aby włączyła się czerwona dioda LED, i y, aby włączyła się żółta dioda LED.
Krok 18: Kodowanie świateł po stronie Unity:
Dobra, najpierw dwie rzeczy, zanim w to wejdziemy.
1. w programie do kodowania arduino przejdź do Narzędzia -> Port -> i sprawdź dla mnie, na którym COM jest włączone twoje uno. W moim przypadku to COM3 (to będzie ważne w kodzie)
2.w unity Przejdź do Edycja -> Ustawienia projektu ->Odtwarzacz następnie w inspektorze kliknij na inne ustawienia przejdź do Poziomu zgodności Api i Przełącz z podsieci. NET 2.0 na po prostu. NET 2.0
Ok, gotowe. Przejdźmy do tego.
Kliknij prawym przyciskiem myszy swoją hierarchię i kliknij Utwórz pusty.
Będzie to pusty obiekt gry, który po prostu będzie istniał w twojej grze, aby przechowywać dla nas jeden skrypt. Nazwałem ten obiekt Init.
Krok 19:
Następnie przejdź do zakładki projekty i utwórz nowy skrypt C#
i nazwij to Wysyłaniem.
Pierwszą rzeczą, którą robisz, jest zapisywanie tych wierszy w sekcjach using twojego kodu:
za pomocą System. IO. Ports;
za pomocą System. Threading;
dzięki temu możemy użyć zmiennej SerialPort
Krok 20:
w tym skrypcie stworzymy następujące zmienne. Teraz zauważ, że mam tam COM3, może to być dla ciebie inne, jak omówiliśmy na początku tego kroku. Jeśli tak, zastąp 3 cyfrą, którą podałeś.
Krok 21:
Na początku mówimy, że skrypt ma używać OpenConnection
funkcja, którą napiszemy za chwilę
aktualizacja jest bardziej testem niż cokolwiek, ale jeśli chcesz ją dołączyć, służy do testowania wiadomości wysyłanych do unity. Możesz to uczciwie zignorować.
Krok 22:
Okej teraz dla tej funkcji OpenConnection. To jest po prostu duży
Instrukcja if/else, która utrzymuje połączenie otwarte, po prostu skopiuj ją tak, jak napisano i powinno być dobrze.
Krok 23:
Teraz pamiętaj z kodu arduino, który kazałem to sprawdzić
sygnalizuje, że jedność do niego wyśle.
cóż, to się dzieje. W moim przypadku podłączyłem 4 światła, więc napisałem 4 funkcje, które są niezwykle proste. Jedyne, co robią, to kiedy są wzywani, wysyłają list do arduino. Kiedy arduino dostanie tę literę, zapali się światło odpowiadające tej literze.
Krok 24:
Możesz się zastanawiać, jak mam to tak nazwać
funkcjonować? Cóż, robisz to za pomocą jednej prostej linii w dowolnym innym skrypcie c#, którego używasz w swojej grze. Wysyłanie. NazwyFunkcjitutaj();. Na przykład w mojej grze gracz ma za zadanie zebrać 4 kolorowe kule. Napisałem więc mały skrypt, który upewnia się, że kiedy zbliży się do jednej i naciśnie prawy przycisk, podniesie ją i wyśle sygnał do arduino, że w tym przypadku żółta kula została podniesiona. Żeby wiedział, ok muszę włączyć żółtą diodę LED:
Możesz umieścić ten jeden wiersz kodu w dowolnym miejscu. Jeśli chcesz, aby zapalał się po rozpoczęciu gry, wstaw go w funkcję start. Chcesz, aby zapaliło się, gdy umrze, umieść to w swojej funkcji dla śmierci graczy. Poeksperymentuj trochę. Zdecydowałem się, aby światła były czymś w rodzaju elementu interfejsu użytkownika poza grą, aby śledzić kule, które musisz zebrać, bez zaśmiecania ekranu.
Zalecana:
Kontroler gier wideo Arduino: 4 kroki
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 Clic
Kontroler gier DIY oparty na Arduino - Kontroler gier Arduino PS2 - Granie w Tekken z DIY Arduino Gamepad: 7 kroków
Kontroler gier DIY oparty na Arduino | Kontroler gier Arduino PS2 | Granie w Tekken z DIY Arduino Gamepad: Witajcie, granie w gry jest zawsze zabawne, ale granie z własnym niestandardowym kontrolerem do gier jest przyjemniejsze. Dlatego stworzymy kontroler do gier za pomocą arduino pro micro w tej instrukcji
Bezprzewodowy kontroler gier z Arduino i NRF24L01+ (obsługa jednego lub dwóch kontrolerów): 3 kroki
Bezprzewodowy kontroler gier z Arduino i NRF24L01+ (obsługa jednego lub dwóch kontrolerów): Kompletny projekt można znaleźć na mojej stronie internetowej (w języku fińskim): https://teukka.webnode.com/l/langaton-ohjain-atmega-lla- ja-nrf24l01-radiomoduulilla/To jest naprawdę krótka informacja o projekcie. Po prostu chciałem się tym podzielić, gdyby ktoś li
Kontroler gier Arduino + gra Unity: 5 kroków
Kontroler gier Arduino + gra Unity: W tej instrukcji pokażę, jak zbudować / zaprogramować kontroler gier Arduino, który może łączyć się z Unity
Akrylowy głośnik dwunastościan z diodami LED reagującymi na dźwięk: 7 kroków (ze zdjęciami)
Akrylowy głośnik dwunastościan z diodami LED reagującymi na dźwięk: Cześć, nazywam się Charlie Schlager. Mam 15 lat i uczęszczam do szkoły Fessenden w Massachusetts. Ten głośnik to bardzo zabawna konstrukcja dla każdego majsterkowicza, który szuka fajnego projektu. Zbudowałem ten głośnik głównie w laboratorium innowacji w Fessenden znajdującym się na