Obsah:
- Krok 1: Připojení ovládacích tlačítek k Arduinu
- Krok 2: Kódování Arduina Leonardo:
- Krok 3:
- Krok 4:
- Krok 5:
- Krok 6:
- Krok 7:
- Krok 8: Kódování pohybu v jednotě:
- Krok 9:
- Krok 10:
- Krok 11:
- Krok 12:
- Krok 13:
- Krok 14: Zapojení světel do Arduina
- Krok 15: Kódování Arduino Uno
- Krok 16:
- Krok 17:
- Krok 18: Strana kódování světel Unity:
- Krok 19:
- Krok 20:
- Krok 21:
- Krok 22:
- Krok 23:
- Krok 24:
Video: Herní ovladač Arduino se světly reagujícími na vaši hru Unity :: 24 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Nejprve jsem to napsal ve Wordu. Toto je poprvé, co používám instructable, takže kdykoli řeknu: napište kód tak, abyste věděli, že odkazuji na obrázek v horní části tohoto kroku.
V tomto projektu používám 2 arduino's ke spuštění 2 samostatných bitů kódu, protože jsem měl nějaké potíže s jeho fungováním pouze s jedním
Toto jsou Uno a Leonardo
Celkově je to to, co budete potřebovat k propojení tohoto projektu.
· 7 tlačítek
· 23 propojovacích vodičů
· 1 arduino Leonardo + USB kabel
· 4 odpory · 4 LED diody
· 1 arduino uno + USB kabel
· 2 prkénka
Krok 1: Připojení ovládacích tlačítek k Arduinu
Co budete potřebovat k připojení této části:
· 7 tlačítek
· 14 propojovacích vodičů
· 1 arduino Leonardo + USB kabel
· Prkénko
Zapojení tlačítek je velmi jednoduché, ale může se rychle stát nepořádkem, který se zobrazí ve formě obrázku.
· První z vás umístíte tlačítka do pozic, které jsem označil na obrázku výše.
· Za druhé, chcete připojit propojku ze zemního otvoru na arduino Leonardo do mínusové řady prkénka.
· Nyní připojíte propojky odkudkoli z mínusové řady do řady, která je v souladu s pravým kolíkem vašeho tlačítka. to mu dodá energii.
· Dále chcete připojit propojovací vodič z řady, která je v souladu s levým kolíkem vašeho tlačítka, do digitálních vstupních slotů Leonarda. Pro tlačítka zde jsem použil slot 2 - 3 - 4 - 5 - 6 - 7- 8
Ukázal jsem pouze drát, který bude na obrázku vstupovat 8, protože se stane velmi chaotickým obrazem, který vám ukáže všechny dráty, které se navzájem kříží.
Krok 2: Kódování Arduina Leonardo:
Abych vám řekl, proč k tomu používám Leonarda. Je to proto, že má určitý čip, který Uno ne, takže počítač jej rozpozná jako vstupní zařízení USB. Podobně jako klávesnice. Což nám umožňuje udělat něco, co nám život programátorů pro tento projekt sakra hodně usnadní. Emulace klávesnice. Oklameme počítač, aby si myslel, že mačkáme určité klávesy na klávesnici, když ve skutečnosti mačkáme tlačítka na našem ovladači.
Teď půjdu pěšky, myslel jste si kód krok za krokem.
Nejprve úplně nahoře zahrnujeme Keyboard.h. To nám umožní používat funkce klávesnice, které použijeme v našem kódu.
Krok 3:
Poté musíme definovat digitální vstupní sloty, které použijeme na
Leonardo pro každé tlačítko.
Také jsem každého z nich pojmenoval podle klíče, který budu napodobovat.
Krok 4:
Odtud se dostaneme do funkce nastavení. To říká
arduino, co dělá při spuštění.
nejprve napíšeme Serial.begin, který otevře sériový port a nastaví rychlost přenosu dat na 9600 bps
a definujeme, že všechny jsou pojmenovány piny jako vstupy.
Krok 5:
A nakonec napíšeme naši funkci smyčky, která zkontroluje, zda
jsou stisknuta tlačítka a řekněte arduino, jak na to reagovat.
Nejprve napíšeme Keyboard.begin, který Arduinovi řekne, že si na nás musí dávat pozor pomocí funkcí klávesnice
Krok 6:
Potom pro každé tlačítko napíšeme příkaz if/else, který vypadá takto
Zde jsem tedy řekl arduinu: Pokud je na ovladači stisknuto levé tlačítko, přimějte počítač, aby si myslel, že stiskneme klávesu „a“, a pokud tomu tak není, myslete si, že jsme klávesu pustili.
Tento blok kódu v podstatě opakujete pro každé tlačítko na vašem ovladači. se změnami pro každou proměnnou a klíče, které musí proměnná emulovat
Krok 7:
Klíče, kterým jsme řekli, aby počítač zasáhl, jsou W - A - S - D
jsou do značné míry standardem pro pohyb v počítačových hrách a E-Q-a mezerník, který je v tomto kódu rozpoznán jako „“, což jsou tlačítka, která používám k vyzvednutí-zrušení a spuštění v mé hře. Nebojte se je změnit na jakékoli klávesy, o kterých si myslíte, že pro vaši hru/ovladač fungují lépe.
Potom nakonec řekneme arduino, aby zastavil kontrolu, která Keyboard.end
Krok 8: Kódování pohybu v jednotě:
Nejprve mi řekněte, že to dělám pro 2D hru, takže
příklady, které uvidíte, jsou k tomu stavěny. Hlavně to znamená, že kde používám vector2, pokud pracujete ve 3D, budete používat vector3. protože byste se museli starat o další rozměr pohybu ve 3D.
Důvod, proč jsem použil emulaci klávesnice na straně arduina, je ten, že Unity má v sobě něco, co rozpoznává klávesy na klávesnici, které můžeme použít.
Pokud otevřete projekt v jednotě, přejděte na Úpravy -> Nastavení projektu -> Vstup. Ve svém inspektoru můžete vidět, že spouští správce vstupu. Kde když kliknete na Osy, uvidíte celou řadu vstupních jmen, která se běžně používají pro ovladače počítače, jako jsou ty, které nyní vyrábíme. Dva vstupy, které použijeme, jsou horizontální a vertikální, které podle vás správně uhodly W-A-S-D.
Nejprve chcete vytvořit objekt ve své hierarchii scén jednoty, kterou bude váš hráč. V mém případě je to zábavný malý kluk. Může to být cokoli, co potřebujete, aby to bylo, ale pro účely své hry jsem udělal toho chlapa.
Krok 9:
Chcete tomuto hráči dát 2 věci. Krabicový urychlovač 2d a
a Rigidbody 2d a upravte je tak, aby byly jako na obrázku výše.
Krok 10:
Poté chcete přejít do složky projektů a vytvořit soubor
C# skript. Což jsem pojmenoval PlayerMovement.
V tomto skriptu definujete 2 proměnné. Veřejný plovák, kterému říkám moveSpeed. To určuje, jak rychle jedete. A soukromý Rigidbody2D, kterému říkám RigidPlayer. Který bude hledat pro vaše hráče rigidbody.
Nezapomeňte se dostat do editoru vaší jednoty kliknutím na přehrávač přidejte tento nový skript přetažením na inspektor a nastavte číselnou hodnotu pro moveSpeed.
Krok 11:
nyní ve svém Start () chcete udělat jednu věc a to je
ujistěte se, že váš RigidPlayer dokáže najít vašeho plátce rigidbody 2d. To provedete pomocí následujícího řádku kódu:
Krok 12:
Poté přejdeme k aktualizaci (). Tady je místo, kam jdeme
aby se hráč pohnul.
děláme to docela jednoduchým příkazem if, který se bude zabývat negativními a pozitivními klíči z horizontálních (AD) a vertikálních (SW) a použijeme to jako číslo, abychom vynutili, že nasadíme naše pevné tělo 2d, abychom zatlačili našeho hráče směr. Toto číslo bude vynásobeno proměnnou moveSpeed.
Krok 13:
Nakonec se chcete ujistit, že se váš hráč přestane pohybovat, když
nic nestlačíte. To se vám líbí takto:
Nyní, pokud chcete použít svá 3 další tlačítka pro cokoli, udělejte to pomocí příkazu if: if (Input. GetKeyDown (Keycode. Space))
pro mezerník a místo mezery vložte písmeno ostatních kláves, které jste se rozhodli použít pro ostatní klávesy.
Krok 14: Zapojení světel do Arduina
·
Co budete potřebovat k připojení této části:
· 9 propojovacích vodičů
· 4 odpory
· 4 LED diody
· 1 arduino uno + USB kabel
· Prkénko
Připojení světel bude provedeno pomocí Uno.
Nakonec to bude vypadat jako na obrázku výše:
Rezistory připojíte k dlouhé straně LED diod. A pak připojíte propojku z digitálního čísla pinu na uno k rezistorům. v tomto případě jsem použil digitální vývody 9 -10 -11 -12, tato čísla budou relevantní, až se dostaneme ke kódu pro světla.
Odtud chcete připojit propojku ze zemního otvoru na vašem arduino Uno na místo na vaší desce, jak je vidět na černém drátu na obrázku výše.
Pak chcete, aby všechny 4 propojky vedly na kratší konec každé LED
Krok 15: Kódování Arduino Uno
Dobře, nejprve budeme znovu definovat naše proměnné
Nejprve tedy, jaké digitální vstupy pro naše světla používáme. A uděláme znak nazvaný myCol [20]
Krok 16:
Potom v nastavení chceme provést Serial.begin znovu. Zapněte všechny naše LED diody na výstup a při spuštění je všechny vypněte.
Krok 17:
A nakonec chcete napsat funkci smyčky.
To způsobí, že Arduino načte všechna data přicházející přes sériové číslo, dokud nedojde k jedné ze dvou událostí. Buď je detekován znak podávání řádku; toto je identifikováno lf, které je nastaveno na 10 a je prvním argumentem nebo bylo načteno určité množství bajtů. Toto je třetí argument a pro tento příklad je nastaven pouze na jeden bajt. Data jsou uložena v proměnné myCol, která je nastavena na char a limit 20. V readBytesUtildy je to druhý argument. Nebo jiným způsobem, jak to vysvětlit, je Serial.readBytesUntil (terminatorCharacter, buffer, byteLimit);
A příkazy if zajistí, že se rozsvítí určitá světla, když jednota dá signál. V tomto případě jsem dostal 4 různě barevná světla, takže jednotu odesílám g, aby se rozsvítila zelená LED, b aby se rozsvítila modrá LED, r aby se rozsvítila červená LED a y pro rozsvícení žluté LED.
Krok 18: Strana kódování světel Unity:
Dobře, než se do toho pustíme, nejprve 2 věci.
1. ve vašem kódovacím programu arduino přejděte na Tool -> Port -> a zkontrolujte, na kterém COM je vaše uno. V mém případě je to COM3 (to bude důležité v kódu)
2. v jednotě Přejděte na Upravit -> Nastavení projektu -> Přehrávač a poté v inspektoru klikněte na další nastavení, přejděte na úroveň kompatibility Api a přepněte ji z podsítě. NET 2.0 pouze na. NET 2.0
Dobře, hotovo. Pojďme do toho.
Klikněte pravým tlačítkem na svou hierarchii a klikněte na Vytvořit prázdné.
Toto bude prázdný herní objekt, který bude ve vaší hře existovat a bude obsahovat jeden skript pro nás. Tento objekt jsem nazval Init.
Krok 19:
Poté přejděte na kartu projektů a vytvořte nový skript C#
a říkej tomu Odesílání.
První věc, kterou uděláte, je napsat je do řádků v části použití kódu:
pomocí System. IO. Ports;
pomocí System. Threading;
díky tomu můžeme použít proměnnou SerialPort
Krok 20:
v tomto skriptu vytvoříme následující proměnné. Nyní si všimněte, že jsem tam dostal COM3, může to být pro vás jiné, jak jsme diskutovali na začátku tohoto kroku. Pokud je nahrazeno číslem 3 číslem, které pro vás uvedlo.
Krok 21:
Na začátku řekneme skriptu, který máme použít, OpenConnection
funkce, kterou si za chvíli napíšeme
aktualizace je spíše test než cokoli jiného, ale pokud ji chcete zahrnout, testuje zprávy odesílané do jednoty. Můžete to upřímně ignorovat.
Krok 22:
Dobře teď pro tuto funkci OpenConnection. Tohle je prostě velké
if/else prohlášení, které udržuje připojení otevřené, zkopírujte jej jako napsaný a měli byste být v pořádku.
Krok 23:
Nyní si zapamatujte z arduino kódu, který jsem zkontroloval
signály, že k tomu pošle jednota.
no a tady se to stává. V mém případě jsem připojil 4 světla, takže jsem napsal 4 funkce, které jsou extrémně jednoduché. Jediné, co dělají, je, že když jim někdo zavolá, pošlou jim dopis arduino. Když arduino dostane toto písmeno, rozsvítí se světlo odpovídající uvedenému písmenu.
Krok 24:
Možná si říkáte, jak to mám nazvat
funkce? Uděláte to pomocí jednoho jednoduchého řádku v kterémkoli z vašich dalších skriptů C#, které pro svou hru používáte. Sending. NameFunctionhere ();. Například například v mé hře má hráč za úkol nasbírat 4 barevné koule. Napsal jsem tedy malý skript, který zajistí, že když se přiblíží k jednomu a stiskne správné tlačítko, zvedne ho a vyšle signál arduino, že v tomto případě byla žlutá koule sebrána. Aby to vědělo, musím zapnout žlutou LED:
Tento jeden řádek kódu můžete umístit kamkoli chcete. Pokud chcete, aby se rozsvítila, když hra začíná, vložte ji do funkce spuštění. Chcete, aby se rozsvítilo, když zemře, dejte to do své funkce pro smrt hráčů. Trochu experimentujte. Rozhodl jsem se udělat ze světel jakýsi prvek uživatelského rozhraní mimo hru, abych měl přehled o koulích, které musíte sbírat, aniž byste zaplnili obrazovku.
Doporučuje:
Automatický herní ovladač Google T Rex využívající Arduino: 7 kroků
Automatický herní ovladač Google T Rex pomocí Arduina: Umožňuje jej sestavit
Herní ovladač Arduino: 5 kroků
Arduino Game Controller: Herní ovladač je zařízení, které ve videohře poskytuje vstupy k pohybu postavy nebo objektu. Design a funkčnost herního ovladače jsou snadné a rozhodně vám poskytnou úžasný zážitek z hraní her, a bude to mnohem více
Arduino DIY herní ovladač - Herní ovladač Arduino PS2 - Hra Tekken s gamepadem pro kutily Arduino: 7 kroků
Arduino DIY herní ovladač | Herní ovladač Arduino PS2 | Hraní Tekken s DIY Arduino Gamepad: Ahoj kluci, hraní her je vždy zábava, ale hraní s vaší vlastní DIY vlastní hrou je zábavnější. Takže v tomto návodu vytvoříme herní ovladač pomocí arduino pro micro
Herní ovladač Arduino + hra Unity: 5 kroků
Arduino Game Controller + Unity Game: V tomto návodu vám ukážu, jak vytvořit/naprogramovat herní ovladač Arduino, který se dokáže připojit k jednotě
Akrylový dekodér s reproduktory reagujícími na zvuk: 7 kroků (s obrázky)
Akrylový dekacaedrový reproduktor s LED diodami reagujícími na zvuk: Ahoj, jmenuji se Charlie Schlager. Je mi 15 let a navštěvuji školu Fessenden v Massachusetts. Tento reproduktor je velmi zábavnou sestavou pro každého kutila, který hledá skvělý projekt. Tento reproduktor jsem postavil především ve Fessendenově inovační laboratoři umístěné na