![Kontroler gier Arduino ze światłami reagującymi na twoją grę Unity:: 24 kroki Kontroler gier Arduino ze światłami reagującymi na twoją grę Unity:: 24 kroki](https://i.howwhatproduce.com/images/006/image-15924-15-j.webp)
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:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03
![Kontroler gier Arduino ze światłami reagującymi na twoją grę Unity Kontroler gier Arduino ze światłami reagującymi na twoją grę Unity](https://i.howwhatproduce.com/images/006/image-15924-16-j.webp)
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
![Podłączanie przycisków sterujących do Arduino Podłączanie przycisków sterujących do Arduino](https://i.howwhatproduce.com/images/006/image-15924-17-j.webp)
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:
![Kodowanie Arduino Leonardo Kodowanie Arduino Leonardo](https://i.howwhatproduce.com/images/006/image-15924-18-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-19-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-20-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-21-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-22-j.webp)
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-23-j.webp)
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-24-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-25-j.webp)
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:
![Kodowanie ruchu w jedności Kodowanie ruchu w jedności](https://i.howwhatproduce.com/images/006/image-15924-26-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-27-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-28-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-29-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-30-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-31-j.webp)
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
![Podłączanie świateł do Arduino Podłączanie świateł do Arduino](https://i.howwhatproduce.com/images/006/image-15924-32-j.webp)
·
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
![Kodowanie Arduino Uno Kodowanie Arduino Uno](https://i.howwhatproduce.com/images/006/image-15924-33-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-34-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-35-j.webp)
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:
![Kodowanie świateł po stronie Unity Kodowanie świateł po stronie Unity](https://i.howwhatproduce.com/images/006/image-15924-36-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-37-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-38-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-39-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-40-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-41-j.webp)
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:
![Obraz Obraz](https://i.howwhatproduce.com/images/006/image-15924-42-j.webp)
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: 4 kroki Kontroler gier wideo Arduino: 4 kroki](https://i.howwhatproduce.com/images/001/image-417-32-j.webp)
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: 7 kroków Kontroler gier DIY oparty na Arduino - Kontroler gier Arduino PS2 - Granie w Tekken z DIY Arduino Gamepad: 7 kroków](https://i.howwhatproduce.com/images/011/image-30363-j.webp)
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
Uruchom grę Jump za pomocą Unity, BT Arduino, czujnika ultradźwiękowego: 14 kroków
![Uruchom grę Jump za pomocą Unity, BT Arduino, czujnika ultradźwiękowego: 14 kroków Uruchom grę Jump za pomocą Unity, BT Arduino, czujnika ultradźwiękowego: 14 kroków](https://i.howwhatproduce.com/images/002/image-4368-45-j.webp)
Uruchom grę Jump za pomocą Unity, BT Arduino, czujnika ultradźwiękowego: Po sukcesie mojego projektu Unity Multiplayer 3D Hologram Game i Hologram Projector na PC, jest to drugi projekt w Unity. Tak więc ukończenie pełnego projektu od początku do końca gry zajmuje dużo czasu na naukę. Kiedy zaczynam
Kontroler gier Arduino + gra Unity: 5 kroków
![Kontroler gier Arduino + gra Unity: 5 kroków Kontroler gier Arduino + gra Unity: 5 kroków](https://i.howwhatproduce.com/images/002/image-5572-10-j.webp)
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: 7 kroków (ze zdjęciami) Akrylowy głośnik dwunastościan z diodami LED reagującymi na dźwięk: 7 kroków (ze zdjęciami)](https://i.howwhatproduce.com/images/002/image-5809-51-j.webp)
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