Obsah:
- Krok 1: Pripojenie ovládacích tlačidiel k Arduinu
- Krok 2: Kódovanie Arduina Leonardo:
- Krok 3:
- Krok 4:
- Krok 5:
- Krok 6:
- Krok 7:
- Krok 8: Kódovanie pohybu v jednote:
- Krok 9:
- Krok 10:
- Krok 11:
- Krok 12:
- Krok 13:
- Krok 14: Pripojenie svetiel k Arduinu
- Krok 15: Kódovanie Arduino Uno
- Krok 16:
- Krok 17:
- Krok 18: Stránka jednoty kódovania svetiel:
- Krok 19:
- Krok 20:
- Krok 21:
- Krok 22:
- Krok 23:
- Krok 24:
Video: Herný ovládač Arduino so svetlami reagujúcimi na vašu hru Unity :: 24 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Najprv som to napísal slovom. Toto je prvýkrát, čo používam instructable, takže vždy, keď poviem: napíšte kód tak, aby ste vedeli, že odkazujem na obrázok v hornej časti tohto kroku.
V tomto projekte používam 2 arduino na spustenie 2 oddelených bitov kódu, pretože som mal problémy s jeho fungovaním iba s jedným.
Toto sú Uno a Leonardo
Celkovo je to to, čo budete potrebovať na podporu tohto projektu.
· 7 tlačidiel
· 23 prepojovacích káblov
· 1 kábel arduino Leonardo + USB
· 4 odpory · 4 LED diódy
· 1 arduino uno + USB kábel
· 2 breadboardy
Krok 1: Pripojenie ovládacích tlačidiel k Arduinu
Čo budete potrebovať na pripojenie tejto časti:
· 7 tlačidiel
· 14 prepojovacích káblov
· 1 kábel arduino Leonardo + USB
· Breadboard
Pripojenie tlačidiel je veľmi jednoduché, ale môže sa z nich rýchlo stať neporiadok, ktorý sa zobrazí vo forme obrázku.
· Ako prvé umiestnite tlačidlá do polôh, ktoré som označil na obrázku vyššie.
· Po druhé, chcete prepojiť prepojku zo zemného otvoru na arduino Leonardo do mínusového radu nepájivého poľa.
· Teraz prepojte prepojky odkiaľkoľvek z mínusového radu do radu, ktorý je v súlade s pravým kolíkom vášho tlačidla. to mu dodá silu.
· Ďalej chcete zapojiť prepojovací kábel z radu, ktorý je v súlade s ľavým kolíkom vášho tlačidla, do digitálnych vstupných slotov Leonarda. Na tlačidlá som použil slot 2 - 3 - 4 - 5 - 6 - 7- 8
Ukázal som iba drôt, ktorý ide na vstup 8 na obrázku, pretože sa stáva veľmi chaotickým obrázkom, ktorý vám ukáže všetky drôty, ktoré sa navzájom krížia.
Krok 2: Kódovanie Arduina Leonardo:
Aby som vám povedal dôvod, prečo na to používam Leonardo. Je to preto, že má určitý čip, ktorý Uno nemá, vďaka ktorému ho počítač rozpozná ako vstupné zariadenie USB. Podobne ako klávesnica. To nám umožňuje urobiť niečo, čo nám ako programátorom tohto projektu robí sakra veľa jednoduchších. Emulácia klávesnice. Oklameme počítač, aby si myslel, že stlačíme určité klávesy na klávesnici, zatiaľ čo v skutočnosti stlačíme tlačidlá na našom ovládači.
Teraz vás prevediem tým, že ste si krok za krokom mysleli kód.
Najprv úplne hore zahrnujeme klávesnicu.h. To nám umožní používať funkcie klávesnice, ktoré použijeme v našom kóde.
Krok 3:
Potom musíme definovať digitálne vstupné sloty, ktoré použijeme na
Leonardo pre každé tlačidlo.
Tiež som každého z nich pomenoval podľa kľúča, ktorý budem napodobňovať.
Krok 4:
Odtiaľ sa dostaneme do funkcie nastavenia. Toto hovorí
arduino, čo to robí pri štarte.
Najprv napíšeme Serial.begin, ktorý otvorí sériový port a nastaví rýchlosť prenosu dát na 9600 bps
a definujeme, že všetky sú pomenované piny ako vstupy.
Krok 5:
A nakoniec napíšeme našu funkciu slučky, ktorá skontroluje, či
stláčajú sa tlačidlá a povedia arduinovi, ako na to reagovať.
Najprv napíšeme Keyboard.begin, ktorý arduinovi povie, že sa o nás musí starať pomocou funkcií klávesnice
Krok 6:
Potom pre každé tlačidlo napíšeme príkaz if/else, ktorý vyzerá takto
Čo som tu povedal arduino, je: Ak je na ovládači stlačené moje ľavé tlačidlo, počítač si myslí, že stlačíme kláves „a“, a ak to tak nie je, nech si myslí, že sme kľúč pustili.
Tento blok kódu v podstate opakujete pre každé tlačidlo na ovládači. so zmenami pre každú premennú a kľúče, ktoré musí premenná emulovať
Krok 7:
Klávesy, ktorým sme povedali, aby počítač zasiahol, sú W - A - S - D
sú do značnej miery štandardom pre pohyb v počítačových hrách a E-Q-a medzerníkom, ktorý je v tomto kóde rozpoznaný ako „“, čo sú tlačidlá, ktoré používam na vyzdvihnutie-zrušenie a spustenie hry. Nebojte sa ich zmeniť na akékoľvek klávesy, o ktorých sa domnievate, že fungujú lepšie pre vašu hru/ovládač.
Potom nakoniec povieme arduino, aby zastavil kontrolu, ktorá Keyboard.end
Krok 8: Kódovanie pohybu v jednote:
Najprv vám poviem, že to robím pre 2D hru
príklady, ktoré uvidíte, sú na to stavané. Hlavne to znamená, že kde používam vector2, ak pracujete v 3d, budete používať vector3. pretože by ste sa museli starať o ďalší rozmer pohybu v 3D.
Dôvod, prečo som použil emuláciu klávesnice na strane arduino, je ten, že Unity má niečo zabudované na rozpoznanie klávesov na klávesnici, ktoré môžeme použiť.
Ak projekt otvoríte v jednote, prejdite na položku Upraviť -> Nastavenia projektu -> Vstup. Na svojom inšpektorovi vidíte, že naštartuje správcu vstupu. Kde keď kliknete na osi, uvidíte, ako sa otvorí veľa vstupných mien, ktoré sa bežne používajú pre počítačové ovládače, ako tie, ktoré teraz vyrábame. Dva vstupy, ktoré použijeme, sú horizontálne a vertikálne, ktoré ste skontrolovali, či ste to uhádli W-A-S-D.
Najprv chcete vytvoriť predmet V hierarchii scén vašej jednoty, ktorou bude váš hráč. V mojom prípade je to zábavný malý chlapec. To môže byť čokoľvek, čo potrebujete, aby to bolo, ale na účely svojej hry som urobil tohto chlapa.
Krok 9:
Chcete dať tomuto hráčovi 2 veci. Krabicový urýchľovač 2d a
Rigidbody 2d a upravte ich tak, aby boli ako na obrázku vyššie.
Krok 10:
Potom chcete prejsť do priečinka s projektmi a vytvoriť súbor
C# skript. Ktorý som pomenoval PlayerMovement.
V tomto skripte definujete 2 premenné. Verejný plavák, ktorý nazývam moveSpeed. To určí, ako rýchlo pôjdete. A súkromný Rigidbody2D, ktorému hovorím RigidPlayer. Ktorý bude hľadať rigidbody vašich hráčov.
Nezabudnite sa dostať do svojho editora jednoty, kliknite na svoj prehrávač, pridajte tento nový skript jeho pretiahnutím do inšpektora a nastavte číselnú hodnotu pre moveSpeed.
Krok 11:
teraz vo svojom štarte () chcete urobiť jednu vec a to je
uistite sa, že váš RigidPlayer dokáže nájsť platiteľa rigidbody 2d. Urobíte to pomocou nasledujúceho riadku kódu:
Krok 12:
Potom prejdeme k aktualizácii (). Tu sa chystáme
aby sa hráč rozhýbal.
robíme to celkom jednoduchým príkazom if, ktorý sa zameria na negatívne a pozitívne kľúče z horizontálnych (AD) a vertikálnych (SW) a použijeme to ako číslo, aby sme vynútili nasadenie nášho pevného tela 2d, aby sme zatlačili nášho hráča smer. Toto číslo sa vynásobí premennou moveSpeed.
Krok 13:
Nakoniec sa chcete uistiť, že sa váš prehrávač zastaví, keď
nič nestlačíte. Toto sa vám páči takto:
Teraz, ak chcete použiť ďalšie tri tlačidlá na čokoľvek, urobte to pomocou príkazu if: if (Input. GetKeyDown (Keycode. Space))
pre medzerník a namiesto medzery vložte písmeno ostatných klávesov, ktoré ste sa rozhodli použiť pre ostatné klávesy.
Krok 14: Pripojenie svetiel k Arduinu
·
Čo budete potrebovať na pripojenie tejto časti:
· 9 prepojovacích káblov
· 4 odpory
· 4 LED diódy
· 1 arduino uno + USB kábel
· Breadboard
Pripojenie svetiel sa vykoná cez Uno.
Nakoniec to bude vyzerať takto na obrázku vyššie:
Rezistory zapojíte na dlhú stranu diód LED. Potom zapojte prepojku z digitálneho čísla PIN na uno do rezistorov. v tomto prípade som použil digitálne vývody 9 -10 -11 -12, tieto čísla budú relevantné, keď sa dostaneme ku kódu pre svetlá.
Odtiaľ chcete zapojiť prepojku zo zemného otvoru na vašom arduino Uno na miesto na vašej doske, ako je vidieť na čiernom drôte na obrázku vyššie.
Potom chcete, aby všetky 4 prepojky viedli na kratší koniec každej diódy LED
Krok 15: Kódovanie Arduino Uno
Dobre, najskôr si definujeme naše premenné
Najprv teda aké digitálne vstupy používame pre naše svetlá. A vyrobíme znak s názvom myCol [20]
Krok 16:
Potom v nastavení chceme urobiť znova Serial.begin. Zapnite všetky naše diódy LED a vypnite ich pri spustení.
Krok 17:
A nakoniec chcete napísať svoju funkciu slučky.
To spôsobí, že Arduino bude čítať všetky údaje prichádzajúce cez sériové číslo, kým sa nestane jedna z dvoch udalostí. Buď je detekovaný znak posunu riadka; toto je označené lf, ktoré je nastavené na 10 a je prvým argumentom alebo bolo načítané určité množstvo bajtov. Toto je tretí argument a pre tento príklad je nastavený iba na jeden bajt. Dáta sú uložené v premennej myCol, ktorá je nastavená na char a limit 20. V readBytesUtil je to druhý argument. Alebo iným spôsobom, ako to vysvetliť, je Serial.readBytesUntil (terminatorCharacter, buffer, byteLimit);
A ak príkazy if zaistia, aby sa určité svetlá rozsvietili, keď jednota dá signál. V tomto prípade mám 4 rôzne farebné svetlá, takže jednotu pošlem g, aby sa rozsvietila zelená LED, b aby sa rozsvietila modrá LED, r aby sa rozsvietila červená LED a y, aby sa rozsvietila žltá LED.
Krok 18: Stránka jednoty kódovania svetiel:
Dobre si dajte 2 veci, než sa do toho pustíme.
1. Vo svojom kódovacom programe arduino choďte na Tool -> Port -> a skontrolujte mi, na ktorom COM je vaše uno zapnuté. V mojom prípade je to COM3 (to bude dôležité v kóde)
2. v jednote Prejdite na Upraviť -> Nastavenia projektu -> Hráč a potom v inšpektorovi kliknite na ďalšie nastavenia, prejdite na úroveň kompatibility Api a prepnite ju z podsiete. NET 2.0 na. NET 2.0
Dobre, to je hotové. Poďme do toho.
Kliknite pravým tlačidlom myši na svoju hierarchiu a kliknite na položku Vytvoriť prázdne.
Toto bude prázdny herný objekt, ktorý bude vo vašej hre existovať a bude obsahovať jeden skript pre nás. Tento objekt som nazval Init.
Krok 19:
Potom prejdite na kartu svojich projektov a vytvorte nový skript C#
a nazvite to Odosielanie.
Prvá vec, ktorú urobíte, je napísať ich do riadkov v častiach kódu, ktoré používate:
pomocou System. IO. Ports;
pomocou System. Threading;
Vďaka tomu môžeme používať premennú SerialPort
Krok 20:
v tomto skripte urobíme nasledujúce premenné. Teraz si všimnite, že tam mám COM3, to môže byť pre vás iné, ako sme diskutovali na začiatku tohto kroku. Ak je nahradený číslom 3 číslom, ktoré pre vás bolo uvedené.
Krok 21:
Na začiatku povieme skriptu, ktorý má použiť, OpenConnection
funkciu, ktorú si trochu napíšeme
aktualizácia je viac ako test, ale ak ju chcete zahrnúť, testuje správy odosielané do jednoty. Môžete to úprimne ignorovať.
Krok 22:
Teraz sa pokochajte touto funkciou OpenConnection. Toto je jednoducho veľké
if/else vyhlásenie, ktoré udržuje pripojenie otvorené, skopírujte ho tak, ako je napísané, a mali by ste byť v poriadku.
Krok 23:
Teraz si zapamätajte z kódu arduina, pre ktorý som ho skontroloval
signály, ktoré k tomu pošle jednota.
no a tu sa to stáva. V mojom prípade som zapojil 4 svetlá, takže som napísal 4 funkcie, ktoré sú veľmi jednoduché. Jediné, čo robia, je, že keď ich zavolajú, pošlú list arduino. Keď arduino dostane toto písmeno, rozsvieti sa svetlo zodpovedajúce uvedenému písmenu.
Krok 24:
Možno sa pýtate, ako to môžem nazvať tak
fungovať? Urobíte to pomocou jedného jednoduchého riadku v ľubovoľnom inom skripte C#, ktoré vo svojej hre používate. Sending. NameFunctionhere ();. Napríklad v mojej hre má hráč za úlohu zozbierať 4 farebné gule. Napísal som teda malý skript, ktorý zaistí, že keď sa k jednému priblíži a stlačí pravé tlačidlo, zdvihne ho a vyšle signál arduinovi, že v tomto prípade bola žltá guľa vyzdvihnutá. Aby to vedel, musím zapnúť žltú diódu:
Tento jeden riadok kódu môžete vložiť kdekoľvek chcete. Ak chcete, aby sa hra po spustení rozsvietila, dajte ju do štartovacej funkcie. Chcete, aby sa rozsvietilo, keď zomrie, dajte to do svojej funkcie pre smrť hráčov. Trochu experimentujte. Rozhodol som sa urobiť zo svetiel akýsi prvok používateľského rozhrania mimo hry, aby som sledoval gule, ktoré musíte zbierať, bez toho, aby ste zapratali obrazovku.
Odporúča:
Ako vyčistiť takmer akýkoľvek herný ovládač: 5 krokov
Ako vyčistiť takmer akýkoľvek herný ovládač: Mám niekoľko týchto dvojčinných ovládačov Logitech, ktoré používam pre emulátor Raspberry Pi, ku ktorým čoskoro odovzdám inštrukciu. Pri pokuse o použitie tohto ovládača (bol uložený na viac ako rok), väčšina tlačidiel na
Automatický herný ovládač Google T Rex používajúci Arduino: 7 krokov
Automatický herný ovládač Google T Rex pomocou Arduina: nechajte ho postaviť
DIY herný ovládač založený na Arduine - Herný ovládač Arduino PS2 - Hra Tekken s gamepadom DIY Arduino: 7 krokov
DIY herný ovládač založený na Arduine | Herný ovládač Arduino PS2 | Hranie Tekkenu s gamepadom pre domácich majstrov Arduino: Dobrý deň, chlapci, hranie hier je vždy zábavné, ale hranie s vlastným ovládačom pre vlastnú potrebu je zábavnejšie. Preto v tomto návode vytvoríme herný ovládač pomocou arduino pro micro
Cvičebný stroj USB herný ovládač: 8 krokov (s obrázkami)
Cvičebný stroj USB herný ovládač: Aby som povzbudil k cvičeniu seba a rodiny, vyrobil som adaptér, ktorý napodobňuje štandardný adaptér herného ovládača USB, ale ovláda rýchlosť pohybu hry šliapaním na eliptickom stroji alebo rotopede. Je obzvlášť vhodný pre závodné hry. Je to
Herný ovládač akcelerometra: 8 krokov
Akcelerometer Ovládač hry: Hlasný text