Tartalomjegyzék:
- Lépés: A vezérlőgombok csatlakoztatása az Arduino -hoz
- 2. lépés: Az Arduino Leonardo kódolása:
- 3. lépés:
- 4. lépés:
- 5. lépés:
- 6. lépés:
- 7. lépés:
- 8. lépés: A mozgás kódolása egységben:
- 9. lépés:
- 10. lépés:
- 11. lépés:
- 12. lépés:
- 13. lépés:
- 14. lépés: Fények csatlakoztatása Arduino -hoz
- 15. lépés: Az Arduino Uno kódolása
- 16. lépés:
- 17. lépés:
- 18. lépés: A fények kódolása Unity Side:
- 19. lépés:
- 20. lépés:
- 21. lépés:
- 22. lépés:
- 23. lépés:
- 24. lépés:
Videó: Arduino játékvezérlő lámpákkal, amelyek reagálnak az Unity játékra :: 24 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Először szóban írtam le ezt a dolgot. Ez az első alkalom, hogy az utasításokat használom, ezért amikor azt mondom: írja ki a kódot, így tudja, hogy a lépés tetején lévő képre utalok.
Ebben a projektben 2 arduino -t használok 2 külön kódrészlet futtatására, mivel némi problémám akadt, hogy csak egyvel működjön
Ezek az Uno és a Leonardo
Összességében ennyi kell a projekt lebonyolításához.
· 7 nyomógomb
· 23 áthidaló vezeték
· 1 arduino Leonardo + usb kábel
· 4 ellenállás · 4 led
· 1 arduino uno + usb kábel
· 2 kenyeretábla
Lépés: A vezérlőgombok csatlakoztatása az Arduino -hoz
Amire szükséged lesz a rész összekapcsolásához:
· 7 nyomógomb
· 14 áthidaló vezeték
· 1 arduino Leonardo + usb kábel
· Kenyeretábla
A gombok meglehetősen egyszerűen csatlakoztathatók, de gyorsan rendetlenséggé válhatnak, hogy kép formájában megjelenjenek.
· Először helyezze a nyomógombokat a fenti képen megjelölt pozíciókba.
· Másodsorban egy jumper -t szeretne csatlakoztatni az arduino Leonardo földi nyílásából a kenyértábla mínusz sorába.
· Most a mínusz sor bármely pontjáról összekapcsolhatja az áthidalókat ahhoz a sorhoz, amely egy vonalban van a nyomógombbal. ez táplálja majd az erőt.
· Ezután egy olyan jumper vezetéket szeretne csatlakoztatni egy sorból, amely összhangban van a nyomógomb bal gombjával a Leonardo digitális bemeneti nyílásaihoz. Az itt található gombokhoz a 2 - 3 - 4 - 5 - 6 - 7-8 nyílást használtam
Csak azt a vezetéket mutattam be, amely a 8 -as bemenetre megy a képen, mert nagyon rendetlen kép lesz megmutatni az összes vezetéket, amelyek keresztezik egymást.
2. lépés: Az Arduino Leonardo kódolása:
Tehát, hogy elmondjam, miért használom Leonardót erre. Ez azért van, mert van egy bizonyos chipje, amelyet az Uno nem, ezért a számítógép felismeri azt USB -bemeneti eszközként. Mintha billentyűzet lenne. Ez lehetővé teszi számunkra, hogy olyan dolgokat tegyünk, amelyek pokolian megkönnyítik ennek a projektnek a programozói életét. Billentyűzet emuláció. Azt fogjuk becsapni a számítógépet, hogy azt gondolja, hogy a billentyűzet bizonyos gombjait nyomjuk meg, miközben valójában a vezérlőnk gombjait nyomjuk meg.
Most megyek, hogy lépésről lépésre gondoltad a kódot.
Először a tetején szerepel a Keyboard.h. Ez lehetővé teszi számunkra a billentyűzet funkciók használatát, amelyeket a kódunkban fogunk használni.
3. lépés:
Ezután meg kell határoznunk a digitális bemeneti nyílásokat, amelyeket a készüléken használni fogunk
Leonardo minden gombhoz.
Mindegyiket el is neveztem a kulcs után, amelyet utánozni fogok.
4. lépés:
Innen belépünk a beállítási funkcióba. Ez elmondja a
arduino mit csinál az indításkor.
Először írjuk meg a Serial.begin parancsot, amely megnyitja a soros portot és 9600 bps -ra állítja az adatsebességet
és definiáljuk, hogy az összes nevezett csap bemenet.
5. lépés:
És végül megírjuk a ciklusfüggvényünket, amely ellenőrzi, hogy van -e
gombokat megnyomják, és mondják meg az arduino -nak, hogyan kell erre reagálni.
Először írjuk be a Keyboard.begin parancsot, amely azt fogja mondani az arduino -nak, hogy a billentyűzet funkcióival kell vigyáznia ránk
6. lépés:
Ezután minden gombhoz írunk egy if/else utasítást, amely így megy
Tehát amit itt mondtam az arduino -nak: Ha a bal gombot nyomom a vezérlőn, akkor a számítógép azt gondolja, hogy megnyomjuk az „a” gombot, és ha nem így van, akkor azt gondoljuk, hogy elengedtük a kulcsot.
Alapvetően megismétli ezt a kódblokkot a vezérlő minden gombjához. minden változó és a kulcsok változásaival, amelyeket emulálni kell
7. lépés:
A billentyűk, amiket a számítógépnek mondtunk, hogy itt üssenek, W - A - S - D, amelyek
nagyjából a számítógépes játékok és az E-Q mozgásának szabványai, és a szóköz, amely ebben a kódban "" -ként van felismerve, ezek a gombok, amelyeket felveszek-elvetem és elindítom a játékomban. Nyugodtan változtassa meg ezeket a gombokra, amelyekről úgy érzi, hogy jobban működik a játék/vezérlő számára.
Végül azt mondjuk az arduino -nak, hogy hagyja abba az ellenőrzést, melyik Keyboard.end
8. lépés: A mozgás kódolása egységben:
Először is hadd mondjam el, hogy ezt egy 2d -s játékhoz készítem
a példák, amelyeket látni fogsz, erre épültek. Főleg azt jelenti, hogy hol használom a vektor2 -ket, ha 3D -ben dolgozol, akkor a vektor3 -at fogod használni. mert aggódnia kell a mozgás extra dimenziója miatt a 3D -ben.
Most azért használtam a billentyűzet emulációt az arduino oldalon, mert az Unity beépített valamit a billentyűzet billentyűinek felismerésére, amelyeket használhatunk.
Ha egységben nyitja meg a projektet, lépjen a Szerkesztés -> Projektbeállítások -> Bevitel menüpontra. Láthatja az ellenőrében, hogy elindítja az inputkezelőt. Hol, ha a Tengerekre kattint, akkor egy csomó bemeneti név nyílik meg, amelyeket általában a PC -vezérlőkhöz használnak, mint például a most készülőket. A 2 bemenet, amelyet használni fogunk, a vízszintes és a függőleges, amelyek ellenőrzik, hogy W-A-S-D-re tippelt.
Először egy objektumot szeretne létrehozni az egység jelenetek hierarchiájában, amely a játékos lesz. Esetemben ez a vidám kis fickó. Ez lehet bármi, amire szüksége van, de a játékom céljára én alkottam ezt a fickót.
9. lépés:
2 dolgot szeretne adni ennek a játékosnak. Egy dobozütköző 2d és
a Rigidbody 2d -t, és szerkessze őket a fenti képhez hasonlóan.
10. lépés:
Ezután be kell lépnie a projektek mappájába, és létre kell hoznia egy
C# szkript. Amit PlayerMovementnek neveztem el.
Ebben a szkriptben 2 változót definiál. Nyilvános úszó, amelyet moveSpeednek nevezek. Ami meghatározza, hogy milyen gyorsan mész. És egy privát Rigidbody2D, amit RigidPlayernek hívok. Ami keresi a játékosok merev testét.
Ne felejtse el eljutni az egységszerkesztőjéhez, és kattintson a lejátszóra, majd adja hozzá ezt az új szkriptet, húzza az ellenőrhöz, és állítson be egy értéket a moveSpeed számára.
11. lépés:
most a Start () -ban egy dolgot akar tenni, és ez az
Győződjön meg róla, hogy a RigidPlayer megtalálja a fizető személyét 2d. Ezt a következő kódsorral teheti meg:
12. lépés:
Ezután továbblépünk a frissítéshez (). Itt tartunk
hogy a játékos mozogjon.
ezt egy meglehetősen egyszerű if állítással tesszük, amely megvizsgálja a vízszintes (AD) és a függőleges (SW) negatív és pozitív kulcsait, és ezt kényszerítő számként alkalmazzuk, és felhúzzuk a merev testünket 2d -re, hogy benyomjuk játékosunkat. egy irányt. Ezt a számot meg kell szorozni a moveSpeed változóval.
13. lépés:
Végül győződjön meg arról, hogy a lejátszó mikor mozog
nem nyomsz semmit. Ez így tetszik:
Most, ha a 3 másik gombját bármire használni szeretné, ha ezt az if utasítást használja: if (Input. GetKeyDown (Keycode. Space))
a szóközhöz, és a szóköz helyett írja be a többi billentyű betűjét, amelyet a többi billentyűhöz használ.
14. lépés: Fények csatlakoztatása Arduino -hoz
·
Amire szükséged lesz a rész összekapcsolásához:
· 9 áthidaló vezeték
· 4 ellenállás
· 4 led
· 1 arduino uno + usb kábel
· Kenyeretábla
A lámpák csatlakoztatása az Uno -n keresztül történik.
Végül a fenti képen fog kinézni:
Csatlakoztassa az ellenállásokat a LED -ek hosszú oldalához. Ezután csatlakoztasson egy jumper -t az uno -n lévő digitális PIN -számról az ellenállásokhoz. ebben az esetben a 9 -10 -11 -12 digitális tűhelyeket használtam, ezek a számok relevánsak lesznek, amikor eljutunk a fények kódjához.
Innen szeretne egy jumpert csatlakoztatni az arduino Uno földi nyílásából a táblán lévő helyre, amint az a fenti képen látható fekete vezetékkel látható.
Ezután azt szeretné, hogy 4 jumper vezessen az egyes LED -ek rövid végébe
15. lépés: Az Arduino Uno kódolása
Rendben, először újra meghatározzuk a változóinkat
Tehát először azt, hogy mely digitális bemeneteket használjuk lámpáinkhoz. És készítünk egy karaktert myCol [20] néven.
16. lépés:
Ezután a beállításban újra meg akarjuk csinálni a Serial.begin -t. Tegye az összes LED -t a kimenetre, és kapcsolja ki mindegyiket indításkor.
17. lépés:
És végül meg akarja írni a ciklusfüggvényét.
Ez arra készteti az Arduino -t, hogy olvassa be a soros úton beérkező adatokat, amíg a két esemény bekövetkezik. Vagy egy sor előtolás karakter észlelhető; ezt az lf azonosítja, amely 10 -re van állítva, és ez az első argumentum, vagy bizonyos számú bájt beolvasásra került. Ez a harmadik argumentum, és ebben a példában csak egy bájt van megadva. Az adatok a myCol változóban vannak tárolva, amely char -ra és 20 -ra van állítva. Vagy a magyarázat másik módja a Serial.readBytesUntil (terminatorCharacter, buffer, byteLimit);
És az if állítások biztosítják, hogy bizonyos lámpák kigyúljanak, amikor az egység jelzi. Ebben az esetben 4 különböző színű lámpát kaptam, így az unity g -t küldöm a zöld LED bekapcsolásához, b a kék LED bekapcsolásához, r a piros LED és y a sárga LED bekapcsolásához.
18. lépés: A fények kódolása Unity Side:
Oké 2 dolog, mielőtt belekezdünk ebbe.
1. az arduino kódolóprogramjában lépjen az Eszköz -> Port -> menüpontba, és ellenőrizze, hogy melyik COM -on van az uno. Esetemben a COM3 (ez fontos lesz a kódban)
2. egységben Menjen a Szerkesztés -> Projektbeállítások -> Lejátszó menüpontba, majd kattintson az Ellenőrzőben a többi beállításra, lépjen az Api kompatibilitási szintre, és váltsa át. NET 2.0 alhálózatról csak. NET 2.0 -ra
Oké ez kész. Menjünk bele.
Kattintson a jobb gombbal a hierarchiára, és kattintson az Üres létrehozása gombra.
Ez egy üres játékobjektum lesz, amely csak létezik a játékban, hogy egy szkriptet tartson számunkra. Ezt az objektumot Init -nek neveztem.
19. lépés:
Ezután lépjen a projektek lapra, és hozzon létre egy új C# szkriptet
és nevezzük küldésnek.
Első lépésként írja be ezeket a kódokat használó sorokba:
a System. IO. Ports használatával;
a System. Threading használatával;
így a SerialPort változót használhatjuk
20. lépés:
ebben a szkriptben a következő változókat készítjük. Most jegyezze meg, hogy itt kaptam a COM3 -at, ez lehet, hogy más lesz, mint ahogy ezt a lépés elején megbeszéltük. Ha ez van, cserélje ki a 3 -at az Ön által megadott számra.
21. lépés:
Kezdetben azt mondjuk, hogy a szkript OpenConnection
függvény, amelyet egy kicsit írni fogunk
a frissítés inkább teszt, mint bármi, de ha bele akarja foglalni, akkor az unitynek küldött tesztüzeneteket. Őszintén figyelmen kívül hagyhatta.
22. lépés:
Rendben most ezzel az OpenConnection funkcióval. Ez csak egy nagy
if/else utasítás, amely nyitva tartja a kapcsolatot, csak másolja le, mint írva, és rendben kell lennie.
23. lépés:
Most emlékezzen az arduino kódból, amelyet ellenőriztem
jelzi, hogy az egység küldeni fogja.
hát ez itt történik. Az én esetemben 4 lámpát kapcsoltam be, így 4 rendkívül egyszerű funkciót írtam. Csak annyit tesznek, hogy amikor hívnak, levelet küldenek az arduino -nak. Amikor az arduino megkapja ezt a betűt, akkor az adott betűnek megfelelő fényt világít.
24. lépés:
Lehet, hogy kíváncsi vagy rá, hogyan tudom ezt úgy hívni
funkció? Nos, ezt egyetlen egyszerű sorral teheti meg a játékhoz használt többi c# szkriptjében. Küldés. NameFunctionhere ();. Így például az én játékomban a játékos feladata 4 színes gömb összegyűjtése. Ezért írtam egy kis forgatókönyvet, amely biztosítja, hogy amikor az egyik közelébe ér, és megnyomja a jobb gombot, akkor felveszi, és az jelzést küld az arduino -nak, hogy ebben az esetben a sárga gömböt felvették. Annak érdekében, hogy tudja, ok, be kell kapcsolnom a sárga LED -et:
Ezt az egy sor kódot bárhová elhelyezheti, ahol csak akarja. Ha azt szeretné, hogy a játék indulásakor világítson, tegye a start funkcióba. Ha azt szeretné, hogy világítson, amikor meghal, tegye a funkciójába a játékosok haláláért. Kísérletezzen egy kicsit. Úgy döntök, hogy a lámpákat egyfajta ui elemmé teszem a játékon kívül, hogy nyomon követhessem a begyűjtött gömböket anélkül, hogy felborítanám a képernyőt.
Ajánlott:
Az 556 idő 2 évtizedes számláló órabevitelt biztosít, amelyek 20 LED -et hajtanak: 6 lépés
Az 556 idő 2 évtizedes óraszámbemenetet biztosít, amelyek 20 LED -et hajtanak végre: Ez az utasítás megmutatja, hogy az 556 -os időzítő 2 évtizedes számlálóhoz szolgáltat órajelet. Az évtized számlálók 20 LED -et hajtanak végre. A LED -ek 10 -es sorrendben villognak
Arduino alapú barkács játékvezérlő - Arduino PS2 játékvezérlő - Tekken lejátszása DIY Arduino játékpaddal: 7 lépés
Arduino alapú barkács játékvezérlő | Arduino PS2 játékvezérlő | Tekken játék a DIY Arduino Gamepad segítségével: Helló srácok, a játék mindig szórakoztató, de a saját, saját készítésű, egyedi játékvezérlővel való játék szórakoztatóbb. Tehát játékvezérlőt készítünk az arduino pro micro segítségével ebben az utasításban
Arduino játékvezérlő + Unity játék: 5 lépés
Arduino Game Controller + Unity Game: Ebben az utasításban megmutatom, hogyan kell felépíteni/programozni egy arduino játékvezérlőt, amely csatlakozhat az egységhez
Arduino vezérelt telefon dokkoló lámpákkal: 14 lépés (képekkel)
Arduino vezérelt telefon dokkoló lámpákkal: Az ötlet elég egyszerű volt; hozzon létre egy telefon töltő dokkot, amely csak akkor kapcsolja be a lámpát, amikor a telefon töltődik. Azonban, mint gyakran, a kezdetben egyszerűnek tűnő dolgok végrehajtása kissé összetettebbé válhat. Ez t
Részletes alkatrészek öntése: Protetikus ujjak (amelyek ragyognak, színt váltanak hővel és még sok más ): 10 lépés (képekkel)
Részletes alkatrészek öntése: Protetikus ujjak (amelyek ragyognak, színt váltanak hővel és még sok más …): Ez egy útmutató a kis, összetett alkatrészek olcsó öntéséhez. Azt kell mondanom, hogy nem vagyok casting szakértő, de mivel a szükséglet gyakran a találmány anyja - az itteni folyamatok némelyike jól működött. A londoni Future Festen találkoztam Nigel Acklanddal, és