Sisällysluettelo:
- Vaihe 1: Ohjauspainikkeiden liittäminen Arduinoon
- Vaihe 2: Arduino Leonardon koodaus:
- Vaihe 3:
- Vaihe 4:
- Vaihe 5:
- Vaihe 6:
- Vaihe 7:
- Vaihe 8: Liikkeen koodaaminen yhtenäisyydessä:
- Vaihe 9:
- Vaihe 10:
- Vaihe 11:
- Vaihe 12:
- Vaihe 13:
- Vaihe 14: Valojen kytkeminen Arduinolle
- Vaihe 15: Arduino Unon koodaus
- Vaihe 16:
- Vaihe 17:
- Vaihe 18: Valojen koodaus Unity Side:
- Vaihe 19:
- Vaihe 20:
- Vaihe 21:
- Vaihe 22:
- Vaihe 23:
- Vaihe 24:
Video: Arduino -peliohjain, jonka valot reagoivat Unity -peliin :: 24 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Aluksi kirjoitin tämän sanalla. Tämä on ensimmäinen kerta, kun käytän ohjattavaa, joten aina kun sanon: kirjoita koodi ulos niin, että tiedät, että viittaan vaiheen yläreunassa olevaan kuvaan.
Tässä projektissa käytän 2 arduinoa kahden erillisen koodibitin suorittamiseen, koska minulla oli vaikeuksia saada se toimimaan vain yhden kanssa
Nämä ovat Uno ja Leonardo
kaiken kaikkiaan tämä on mitä tarvitset tämän projektin leipälevylle.
· 7 painonappia
· 23 hyppyjohtoa
· 1 arduino Leonardo + USB -kaapeli
· 4 vastusta · 4 lediä
· 1 arduino uno + USB -kaapeli
· 2 leipälautaa
Vaihe 1: Ohjauspainikkeiden liittäminen Arduinoon
Tarvitset tämän osan liittämiseen:
· 7 painonappia
· 14 hyppyjohtoa
· 1 arduino Leonardo + USB -kaapeli
· Leipälauta
Painikkeet ovat melko yksinkertaisia kytkeä, mutta ne voivat nopeasti muuttua sotkuksi näytettäväksi kuvamuodossa.
· Aseta ensin painikkeet edellä kuvaan merkittyihin kohtiin.
· Toiseksi haluat kytkeä puseron arduino Leonardon maadoituspaikasta leipälevyn miinusriville.
· Nyt kytket puserot minne tahansa miinusriviltä riville, joka on painikkeen oikean nastan linjalla. tämä syöttää siihen voimaa.
· Seuraavaksi haluat kytkeä hyppyjohdon rivistä, joka on painonapin vasemman tapin linjassa Leonardon digitaalisiin tulopaikkoihin. Tässä painikkeissa käytin rakoja 2 - 3 - 4 - 5 - 6 - 7-8
Näytin vain johdon, joka menee tuloon 8 kuvassa, koska siitä tulee erittäin sotkuinen kuva näyttää kaikki johdot, jotka ylittävät toisensa.
Vaihe 2: Arduino Leonardon koodaus:
Joten kerron teille syyn, miksi käytän Leonardoa tähän. Koska Unossa ei ole tiettyä sirua, se saa tietokoneen tunnistamaan sen USB -syöttölaitteena. Aivan kuin se olisi näppäimistö. Tämä antaa meille mahdollisuuden tehdä jotain, joka tekee elämästämme tämän projektin ohjelmoijina helvetin paljon helpommaksi. Näppäimistön emulointi. Huijaamme tietokoneen ajattelemaan, että painamme tiettyjä näppäimistön näppäimiä, kun itse asiassa painamme ohjaimen painikkeita.
Nyt aion kävellä ajattelit koodia askel askeleelta.
Aluksi ylhäällä on Keyboard.h. Näin voimme käyttää näppäimistötoimintoja, joita aiomme käyttää koodissamme.
Vaihe 3:
Sitten meidän on määritettävä digitaaliset tulopaikat, joita aiomme käyttää
Leonardo jokaiselle painikkeelle.
Olen myös nimittänyt heistä jokaisen sen avaimen mukaan, jota aion jäljitellä.
Vaihe 4:
Sieltä pääsemme asetustoimintoon. Tämä kertoo
arduino mitä se tekee käynnistyksen yhteydessä.
ensin kirjoitamme Serial.begin, joka avaa sarjaportin ja asettaa tiedonsiirtonopeudeksi 9600 bps
ja määritämme kaikki nimetyt nastat tuloiksi.
Vaihe 5:
Ja lopuksi kirjoitamme silmukkafunktion, joka tarkistaa, onko
painikkeita painetaan ja kerro arduinolle, miten reagoida siihen.
Kirjoitamme ensin Keyboard.begin, joka kertoo arduinolle, että hänen täytyy varoa meitä näppäimistötoimintojen avulla
Vaihe 6:
Sitten kirjoitamme jokaiselle painikkeelle if/else -lausekkeen, joka menee näin
Joten sanoin arduinolle tässä: Jos vasenta painiketta painan ohjaimessa, saa tietokone ajattelemaan, että painamme "a" -näppäintä, ja jos näin ei ole, anna sen ajatella, että olemme päästäneet avaimesta irti.
Toistat periaatteessa tämän koodilohkon jokaiselle ohjaimen painikkeelle. muutoksilla jokaiselle muuttujalle ja avaimille, joita muuttujan täytyy jäljitellä
Vaihe 7:
Avaimet, jotka kerroimme tietokoneelle osuvan tänne, ovat W - A - S - D joita
ovat pitkälti PC-pelien ja E-Q: n liikkeen standardi ja välilyönti, joka tässä koodissa tunnistetaan "" ja joita painikkeita käytän noutaessani-hylkää ja laukaise pelini. Voit vapaasti vaihtaa ne mihin tahansa näppäimeen, joka mielestäsi toimii paremmin pelissäsi/ohjaimessasi.
Sitten lopuksi kehotamme arduinoa lopettamaan tarkistuksen, joka Keyboard.end
Vaihe 8: Liikkeen koodaaminen yhtenäisyydessä:
Kerron aluksi, että teen tämän 2d -pelille
esimerkit, joita aiot nähdä, on rakennettu sitä varten. Pääasiassa se, missä käytän vektoria2, jos työskentelet kolmiulotteisena, käytät vektori3: ta. koska sinun pitäisi huolehtia siitä, että olen ylimääräinen ulottuvuus liikkeessä 3D: ssä.
Nyt syy, miksi käytin näppäimistöemulointia arduino -puolella, johtuu siitä, että Unityllä on jotain sisäänrakennettua tunnistamaan näppäimistön näppäimet, joita voimme käyttää.
Jos avaat projektisi yhtenäisesti, valitse Muokkaa -> Projektiasetukset -> Syöttö. Näet tarkastajasta, että se käynnistää syöttöhallinnan. Missä jos napsautat akseleita, näet koko joukon syöttönimiä, joita yleensä käytetään PC -ohjaimiin, kuten nyt tekemiimme. Kaksi tuloa, joita aiomme käyttää, ovat vaaka- ja pystysuorat, jotka tarkistavat, että arvasit sen W-A-S-D.
Ensin haluat tehdä objektin yhtenäisyysnäkymiesi hierarkiassa, joka on soittimesi. Minun tapauksessani tämä on hauska pikkumies. Tämä voi olla mitä tarvitsetkin, mutta peliäni varten tein tämän kaverin.
Vaihe 9:
Haluat antaa tälle pelaajalle 2 asiaa. Laatikon törmääjä 2d ja
a Rigidbody 2d ja muokkaa niitä yllä olevan kuvan kaltaisiksi.
Vaihe 10:
Sitten haluat mennä projektikansioon ja luoda
C# -kirjoitus. Nimitin PlayerMovementiksi.
Tässä skriptissä määrität 2 muuttujaa. Julkinen kellunta, jota kutsun moveSpeediksi. Joka määrittää kuinka nopeasti menet. Ja yksityinen Rigidbody2D, jota kutsun RigidPlayeriksi. Joka etsii pelaajasi jäykältä.
Älä unohda päästä yhtenäisyyseditoriin napsauttamalla soitinta ja lisää tämä uusi komentosarja vetämällä se tarkastajalle ja määrittämällä MovSpeed -numeroarvo.
Vaihe 11:
nyt Startissa () haluat tehdä yhden asian ja se on
varmista, että RigidPlayer löytää maksajan rigidbody 2d. Voit tehdä sen seuraavalla koodirivillä:
Vaihe 12:
Sitten siirrytään päivitykseen (). Tässä olemme menossa
saadakseen pelaajan liikkumaan.
teemme sen melko yksinkertaisella if -lausunnolla, jossa tarkastellaan horisontaalisen (AD) ja pystysuoran (SW) negatiivisia ja positiivisia avaimia ja sovelletaan sitä pakottaaksemme numeron, jonka päälle asetamme jäykän kehomme 2d työntääksemme pelaajamme sisään suunta. Tämä luku kerrotaan movSpeed -muuttujalla.
Vaihe 13:
Lopuksi haluat varmistaa, että soitin lakkaa liikkumasta milloin tahansa
et paina mitään. Tästä pidät näin:
Nyt jos haluat käyttää kolmea muuta painiketta mihin tahansa, jos käytät tätä if -lausetta: if (Input. GetKeyDown (Keycode. Space))
välilyöntiä varten ja kirjoita välilyönnin sijaan muiden näppäinten valitsemasi kirjaimet.
Vaihe 14: Valojen kytkeminen Arduinolle
·
Tarvitset tämän osan liittämiseen:
· 9 hyppyjohtoa
· 4 vastusta
· 4 lediä
· 1 arduino uno + USB -kaapeli
· Leipälauta
Valojen kytkentä tehdään Unon kautta.
Lopulta se näyttää tältä kuvalta:
Kytket vastukset LED -valojen pitkälle puolelle. Ja sitten kytket hyppyjohtimen unon digitaalisesta pin -numerosta vastuksiin. Tässä tapauksessa käytin digitaalisia nastapaikkoja 9-10-11-12, nämä numerot ovat merkityksellisiä, kun pääsemme valojen koodiin.
Sieltä haluat kytkeä hyppääjän arduino Uno -laitteen maadoituspaikasta paikkaan, joka on laudallasi, kuten yllä olevan kuvan mustalla langalla.
Sitten haluat, että kaikki 4 hyppääjää johtavat kunkin LED -valon lyhyeen päähän
Vaihe 15: Arduino Unon koodaus
Okei, ensin määritämme muuttujamme uudelleen
Joten ensin mitä digitaalituloja käytämme valoihimme. Ja aiomme tehdä hiilen nimeltä myCol [20]
Vaihe 16:
Sitten asennuksessa haluamme tehdä Serial.binin uudelleen. Laita kaikki LED -valot ulostuloon ja sammuta ne kaikki käynnistyksen yhteydessä.
Vaihe 17:
Ja lopuksi haluat kirjoittaa silmukkafunktion.
Tämä saa Arduinon lukemaan kaikki sarjassa tulevat tiedot, kunnes yksi kahdesta tapahtumasta tapahtuu. Joko syötteen merkki havaitaan; tämä tunnistetaan numerolla lf, joka on asetettu 10: ksi ja on ensimmäinen argumentti tai tietty määrä tavuja on luettu sisään. Tämä on kolmas argumentti ja tässä esimerkissä on asetettu vain yksi tavu. Tiedot tallennetaan muuttujaan myCol, joka on asetettu char -arvoksi ja rajaksi 20. ReadBytesUllil asti tämä on toinen argumentti. Tai toinen tapa selittää se on Serial.readBytesUntil (terminatorCharacter, buffer, byteLimit);
Ja jos -lausunnot varmistavat, että tietyt valot syttyvät, kun yhtenäisyys antaa signaalin. Tässä tapauksessa sain 4 eriväristä valoa, joten annan yhtenäisyyden lähettää g, jotta vihreä LED syttyy, b sininen valo syttyy, r punainen LED syttyy ja y keltainen LED syttyy.
Vaihe 18: Valojen koodaus Unity Side:
Okei 2 asiaa ennen kuin ryhdymme tähän.
1. mene arduino -koodausohjelmassasi kohtaan Työkalu -> Portti -> ja tarkista minulle, mikä COM -laitteesi on käytössä. Minun tapauksessani sen COM3 (tämä on tärkeä koodissa)
2. Yhteydessä Siirry kohtaan Muokkaa -> Projektiasetukset -> Pelaaja ja napsauta sitten tarkastajassa muita asetuksia, siirry Api -yhteensopivuustasolle ja vaihda se. NET 2.0 -aliverkosta vain. NET 2.0: ksi
Okei se on tehty. Mennään siihen.
Napsauta hiiren kakkospainikkeella hierarkiaa ja valitse Luo tyhjä.
Tämä on tyhjä peliobjekti, joka on vain pelissäsi ja joka sisältää yhden käsikirjoituksen meille. Olen kutsunut tätä kohdetta Initiksi.
Vaihe 19:
Siirry sitten projektisi -välilehteen ja luo uusi C# -skripti
ja kutsua sitä Lähetys.
Ensimmäinen asia, jonka teet, on kirjoittaa nämä rivit koodisi käyttämiin osioihin:
käyttämällä System. IO. Portsia;
käyttämällä System. Threading;
tämä tekee siitä niin, että voimme käyttää SerialPort -muuttujaa
Vaihe 20:
tässä skriptissä aiomme tehdä seuraavat muuttujat. Huomaa nyt, että minulla on COM3 siellä, tämä saattaa olla erilainen sinulle, kuten keskustelimme tämän vaiheen alussa. Jos se on, korvaa 3 numerolla, jonka se sanoi sinulle.
Vaihe 21:
Kerromme alussa, että käytettävä skripti on OpenConnection
funktio, jonka kirjoitamme vähän
päivitys on enemmän testi kuin mitä tahansa, mutta jos haluat sisällyttää sen, se testataan unitylle lähetettäviä viestejä. Voisit sivuuttaa sen rehellisesti.
Vaihe 22:
Okei nyt tämä OpenConnection -toiminto. Tämä on vain iso
jos/muu -lausunto, joka pitää yhteyden auki, kopioi se kuten kirjoitettu ja sinun pitäisi olla kunnossa.
Vaihe 23:
Muista nyt arduino -koodista, jonka sain tarkistettua
osoittaa, että yhtenäisyys lähettää sille.
no tässä se tapahtuu. Minun tapauksessani sain 4 valoa kytkettyä, joten kirjoitin 4 toimintoa, jotka ovat erittäin yksinkertaisia. Kaikki he tekevät, kun heidät kutsutaan, he lähettävät kirjeen arduinoon. Kun arduino saa kyseisen kirjaimen, se syttyy kyseistä kirjainta vastaavaa valoa.
Vaihe 24:
Saatat ihmetellä, miten saan sen kutsumaan tätä
toiminto? No, teet sen yhdellä yksinkertaisella rivillä missä tahansa muussa pelissäsi käyttävässä c# -skriptissä. Lähetetään. NimiToiminto täällä ();. Joten esimerkiksi pelissäni pelaajan tehtävänä on kerätä 4 värillistä palloa. Joten kirjoitin pienen käsikirjoituksen, joka varmistaa, että kun hän pääsee lähelle yhtä ja painaa oikeaa painiketta, hän ottaa sen ylös ja se lähettää signaalin arduinoon, että tässä tapauksessa keltainen pallo on otettu. Jotta se tietää, okei, minun on kytkettävä keltainen LED -valo päälle:
Voit laittaa tämän yhden koodirivin minne haluat. Jos haluat sen syttyvän pelin alkaessa, laita se käynnistystoimintoon. Haluatko sen syttyvän, kun hän kuolee, aseta se toimintoosi pelaajien kuoleman vuoksi. Kokeile vähän. Valitsen tehdä valoista eräänlaisen ui -elementin pelin ulkopuolella, jotta voin seurata kerättyjä palloja ilman, että näyttö sotkeutuu.
Suositeltava:
LED Snapper: Todennäköisesti yksinkertaisin testilaite, jonka voit tehdä: 3 vaihetta
LED Snapper: Todennäköisesti yksinkertaisin testauslaite, jonka voit tehdä: Salli minun esitellä sinulle LED Snapper. Yksinkertainen, mutta erittäin hyödyllinen testilaite, jonka voit rakentaa helpottamaan elektroniikkaprojektien virheenkorjausta. LED Snapper on avoimen lähdekoodin painettu piirilevy, jonka avulla voit helposti lisätä
"Huomaa laatikko" - malli, jonka voit sovittaa oman pään sisälle: 7 vaihetta
"Heeds the Box" - malli, joka mahtuu hänen päänsä sisään: Olin kuullut japanilaisista pahvileluista, joissa päästä tuli koko mallin säilytyslaatikko. Yritin löytää sellaisen netistä, mutta epäonnistui. Tai ehkä onnistuin, mutta en voinut lukea japanilaista käsikirjoitusta? Anyhoo, päätin tehdä oman
Satunnaisesti reagoivat heilurit: 4 vaihetta (kuvilla)
Satunnaisesti reagoivat heilurit: Tämän projektin tavoitteena on saada aikaan kaksi heiluria. Löysin mukavan vuorovaikutuksen aktiivisen ja passiivisen heilurin välillä. Ne liikkuvat pysyvien magneettisten, sähkömagneettisten ja painovoimakenttien pilvessä. P: n paino
Nike LED Swoosh! Tämä on loistava sisustus huoneeseen. Tämä on yksi projekti, jonka jokainen voi toistaa: 5 vaihetta
Nike LED Swoosh! Tämä on loistava sisustus huoneeseen. Tämä on yksi projekti, jonka jokainen voi toistaa. 2x puu 20-20-3000 2x vaneri 500-1000mm ruuvit (45mm) 150x ruuvit (35mm) 30x
Opas, jonka toivoisin Arduino -dronin rakentamiseen: 9 vaihetta
Opas, jonka toivoisin olevani Arduino -dronin rakentamisessa: Tämä asiakirja on eräänlainen”Ohje” -viiva -dokumentaatio, joka käy läpi prosessin, joka vei minut ymmärtämään käsitteet saavuttaakseni tavoitteeni rakentaa yksinkertainen nelikopteri, jota voisin hallita matkapuhelimestani.Tämän projektin toteuttamiseksi halusin