Cuprins:
- Pasul 1: Conectarea butoanelor de control la Arduino
- Pasul 2: Codificarea Arduino Leonardo:
- Pasul 3:
- Pasul 4:
- Pasul 5:
- Pasul 6:
- Pasul 7:
- Pasul 8: Codificarea mișcării în unitate:
- Pasul 9:
- Pasul 10:
- Pasul 11:
- Pasul 12:
- Pasul 13:
- Pasul 14: Conectarea luminilor la Arduino
- Pasul 15: Codificarea Arduino Uno
- Pasul 16:
- Pasul 17:
- Pasul 18: Codificarea luminilor Unitatea laterală:
- Pasul 19:
- Pasul 20:
- Pasul 21:
- Pasul 22:
- Pasul 23:
- Pasul 24:
Video: Controler de joc Arduino cu lumini care răspund la jocul tău Unity :: 24 de pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
În primul rând am scris acest lucru în cuvinte. Aceasta este prima dată când folosesc instructable, așa că ori de câte ori spun: scrieți codul așa, știți că mă refer la imaginea din partea de sus a acelui pas.
În acest proiect, folosesc 2 arduino-uri pentru a rula 2 biți de cod separați, deoarece am avut unele probleme ca să funcționeze cu unul singur
Aceștia sunt Uno și Leonardo
în total, de asta veți avea nevoie pentru a analiza acest proiect.
· 7 butoane
· 23 fire jumper
· 1 cablu arduino Leonardo + usb
· 4 rezistențe · 4 led-uri
· 1 cablu arduino uno + usb
· 2 panouri
Pasul 1: Conectarea butoanelor de control la Arduino
De ce veți avea nevoie pentru a conecta această parte:
· 7 butoane
· 14 fire jumper
· 1 cablu arduino Leonardo + usb
· Panou de masă
Butoanele sunt destul de simple de conectat, dar pot deveni rapid o mizerie de afișat sub formă de imagine.
· Puneți mai întâi butoanele în pozițiile pe care le-am marcat pe imaginea de mai sus.
· În al doilea rând, doriți să conectați un jumper de la slotul de la sol de pe arduino Leonardo în rândul minus al panoului.
· Acum conectați jumperi de oriunde pe rândul minus la rândul care este în linie cu știftul drept al butonului dvs. aceasta îi va alimenta puterea.
· Apoi doriți să conectați un cablu jumper dintr-un rând care este în linie cu știftul stâng al butonului dvs. la sloturile de intrare digitale ale Leonardo. Pentru butoanele de aici am folosit slotul 2 - 3 - 4 - 5 - 6 - 7-8
Am arătat doar firul care va trece la intrarea 8 pe imagine, deoarece devine o imagine foarte dezordonată pentru a vă arăta toate firele care se intersectează.
Pasul 2: Codificarea Arduino Leonardo:
Deci, să vă spun motivul pentru care îl folosesc pe Leonardo pentru asta. Deoarece are un anumit cip pe care Uno nu îl face, computerul îl recunoaște ca dispozitiv de intrare USB. La fel ca o tastatură. Ceea ce ne permite să facem ceva care ne ușurează viața de programatori pentru acest proiect. Emularea tastaturii. Vom păcăli computerul să creadă că apăsăm anumite taste de pe tastatură atunci când de fapt apăsăm butoanele de pe controlerul nostru.
Acum am să merg pe jos, ați crezut codul pas cu pas.
În primul rând, în partea de sus, includem Keyboard.h. Acest lucru ne va permite să folosim funcțiile tastaturii pe care le vom folosi în codul nostru.
Pasul 3:
Apoi, trebuie să definim sloturile de intrare digitale pe care le vom folosi pe
Leonardo pentru fiecare buton.
De asemenea, le-am numit pe fiecare după cheia pe care urmează să o imit.
Pasul 4:
De acolo intrăm în funcția de configurare. Acest lucru spune
arduino ce face la pornire.
mai întâi scriem Serial.begin care va deschide portul serial și setează rata de date la 9600 bps
și definim că toți sunt numiți pini pentru a fi intrări.
Pasul 5:
Și în cele din urmă ne scriem funcția de buclă care va verifica dacă
butoanele sunt apăsate și spuneți arduino cum să răspundă la asta.
Mai întâi scriem Keyboard.begin care îi va spune lui arduino că trebuie să fie atent la noi folosind funcțiile tastaturii
Pasul 6:
Apoi pentru fiecare buton scriem o declarație if / else care merge așa
Deci, ceea ce i-am spus arduino aici este: Dacă butonul meu stânga este apăsat pe controler, faceți calculatorul să creadă că apăsăm tasta „a” și dacă nu este cazul, faceți-o să credeți că am eliberat tasta.
Practic, repetați acest bloc de cod pentru fiecare buton de pe controler. cu modificări pentru fiecare variabilă și tastele pe care trebuie să le emuleze variabila
Pasul 7:
Tastele pe care le-am spus computerului să lovească aici sunt W - A - S - D care
sunt destul de mult standardul pentru mișcarea în jocurile pentru PC și E - Q - și bara de spațiu care în acest cod este recunoscută ca „„ care sunt butoanele pe care le folosesc pentru a ridica - resping și declanșează în jocul meu. Simțiți-vă liber să le schimbați cu orice cheie simțiți că funcționează mai bine pentru jocul / controlerul dvs.
Apoi, în sfârșit, îi spunem arduino-ului să oprească verificarea ce tastatură
Pasul 8: Codificarea mișcării în unitate:
În primul rând, permiteți-mi să vă spun că fac asta pentru un joc 2d, așa că
exemplele pe care le veți vedea sunt construite pentru asta. În principal, adică unde folosesc vector2, dacă lucrați în 3d, veți folosi vector3. pentru că ar trebui să vă faceți griji cu privire la dimensiunea suplimentară a mișcării în 3d.
Acum motivul pentru care am folosit emularea tastaturii pe partea arduino este că Unity are ceva construit pentru a recunoaște tastele de pe tastatură pe care le putem folosi.
Dacă vă deschideți proiectul în unitate accesați Editare -> Setări proiect -> Intrare. Puteți vedea în inspectorul dvs. că pornește managerul de intrare. Dacă faceți clic pe Axe, puteți vedea o grămadă de nume de intrare deschise, care sunt utilizate în mod normal pentru controlere PC, cum ar fi cele pe care le facem acum. Cele 2 intrări pe care le vom folosi sunt orizontale și verticale, care verifică dacă ați ghicit W-A-S-D.
Mai întâi vrei să faci un obiect în unitățile tale de ierarhie, care va fi jucătorul tău. În cazul meu fiind acest tip mic distractiv. Acesta poate fi orice ai avea nevoie, dar în scopul jocului meu l-am creat pe acest tip.
Pasul 9:
Vrei să îi dai acestui jucător 2 lucruri. Un box collider 2d și
un Rigidbody 2d și editați-le pentru a fi ca imaginea de mai sus.
Pasul 10:
Apoi doriți să intrați în folderul proiectelor și să creați un
Script C #. Pe care l-am numit PlayerMovement.
În acest script veți defini 2 variabile. Un flotor public pe care îl numesc moveSpeed. Ceea ce va determina cât de repede mergeți. Și un Rigidbody2D privat pe care îl numesc RigidPlayer. Care va căuta jucătorii tăi rigid.
Nu uitați să ajungeți la editorul de unitate faceți clic pe playerul dvs. adăugați acest nou script trăgându-l la inspector și setați o valoare numerică pentru moveSpeed.
Pasul 11:
acum în Start () doriți să faceți un lucru și asta este să
asigurați-vă că RigidPlayer vă poate găsi plătitorul rigidbody 2d. Faceți acest lucru cu următoarea linie de cod:
Pasul 12:
Apoi trecem la actualizare (). Iată unde mergem
pentru a-l face pe jucător să se miște.
facem asta cu o afirmație destul de simplă dacă va privi cheile negative și pozitive din orizontală (AD) și verticală (SW) și vom aplica ca număr pentru a forța, vom pune corpul nostru rigid 2d pentru a ne împinge jucătorul în o direcție. Acest număr va fi înmulțit cu variabila moveSpeed.
Pasul 13:
În sfârșit, doriți să vă asigurați că jucătorul dvs. nu mai mișcă când
nu apeși nimic. Acest lucru vă place așa:
Acum, dacă doriți să utilizați celelalte 3 butoane pentru orice, faceți asta cu această instrucțiune if: if (Input. GetKeyDown (Keycode. Space))
pentru bara de spațiu și în loc de spațiu puneți litera celorlalte taste pe care ați ales să le utilizați pentru celelalte taste.
Pasul 14: Conectarea luminilor la Arduino
·
De ce va trebui să conectați această parte:
· 9 fire jumper
· 4 rezistențe
· 4 led-uri
· 1 cablu arduino uno + usb
· Panou de masă
Conectarea luminilor se va face prin Uno.
Va ajunge să arate ca această imagine de mai sus:
Conectați rezistențele la partea lungă a LED-urilor. Apoi, conectați un jumper de la un număr digital de pin pe uno la rezistențe. în acest caz, am folosit sloturi digitale cu pini 9 - 10 -11 -12, aceste numere vor fi relevante atunci când vom ajunge la codul luminilor.
De acolo, doriți să conectați un jumper de la slotul de la sol al arduino Uno la locul de pe placa dvs., așa cum se vede cu firul negru de pe imaginea de mai sus.
Apoi, doriți să aveți 4 jumperi care să conducă în capătul scurt al fiecărui LED
Pasul 15: Codificarea Arduino Uno
În primul rând, ne vom defini din nou variabilele
Deci mai întâi ce intrări digitale folosim pentru luminile noastre. Și vom face un personaj numit myCol [20]
Pasul 16:
Apoi, în configurare, dorim să facem din nou Serial.begin. Puneți toate LED-urile pe ieșire și opriți-le pe toate la pornire.
Pasul 17:
Și, în cele din urmă, doriți să scrieți funcția de buclă.
Acest lucru va determina Arduino să citească orice date care vin prin serial până când se întâmplă unul dintre cele două evenimente. Fie este detectat un caracter de alimentare de linie; acesta este identificat prin lf care este setat la 10 și este primul argument sau a fost citită o anumită cantitate de octeți. Acesta este al treilea argument și pentru acest exemplu este setat la doar un octet. Datele sunt stocate în variabila myCol, care este setată la char și o limită de 20. În readBytesUntil acesta este al doilea argument. Sau un alt mod de a-l explica este Serial.readBytesUntil (terminatorCharacter, buffer, byteLimit);
Iar declarațiile if se vor asigura că anumite lumini se aprind atunci când unitatea dă semnalul. În acest caz am primit 4 lumini colorate diferite, așa că fac unitatea să trimită g pentru aprinderea LED-ului verde, b pentru aprinderea LED-ului albastru, r pentru aprinderea LED-ului roșu și y pentru aprinderea LED-ului galben.
Pasul 18: Codificarea luminilor Unitatea laterală:
Oke 2 lucruri mai întâi înainte de a intra în acest lucru.
1. în programul dvs. de codare arduino, accesați Instrument -> Port -> și verificați pentru mine care este COM-ul dvs. În cazul meu, este COM3 (acest lucru va fi important în cod)
2. în unitate Accesați Editare -> Setări proiect -> Player, apoi în inspector faceți clic pe alte setări, accesați Nivelul de compatibilitate Api și comutați-l de la subrețeaua. NET 2.0 la doar. NET 2.0
Oke, gata. Să intrăm în asta.
Faceți clic dreapta pe ierarhia dvs. și faceți clic pe Creați gol.
Acesta va fi un obiect de joc gol care va exista doar în jocul dvs. pentru a păstra un script pentru noi. Am numit acest obiect Init.
Pasul 19:
Apoi accesați fila Proiecte și creați un nou script C #
și numiți-l Trimitere.
Primul lucru pe care îl faceți este să scrieți aceste linii în secțiunile folosind codul dvs.:
folosind System. IO. Ports;
folosind System. Threading;
acest lucru îl face să putem folosi variabila SerialPort
Pasul 20:
în acest script vom face următoarele variabile. Acum, rețineți că am primit COM3 acolo, acest lucru ar putea fi diferit pentru dvs., așa cum am discutat la începutul acestui pas. Dacă este înlocuit 3 cu numărul pe care l-a spus pentru tine.
Pasul 21:
La început îi spunem scriptului de utilizat sunt OpenConnection
funcție pe care o vom scrie puțin
actualizarea este mai mult un test decât orice, dar dacă doriți să o includeți, pentru a testa mesajele trimise către unitate. Ai putea să-l ignori sincer.
Pasul 22:
Oke acum pentru această funcție OpenConnection. Aceasta este doar o mare
Afirmația if / else care păstrează conexiunea deschisă trebuie doar să o copiați așa cum este scrisă și ar trebui să fiți bine.
Pasul 23:
Acum amintiți-vă din codul arduino pe care l-am făcut să verific
semnale că unitatea îi va trimite.
Ei bine, aici se întâmplă asta. În cazul meu, am primit 4 lumini conectate, așa că am scris 4 funcții extrem de simple. Tot ce fac este atunci când sunt chemați să trimită o scrisoare către arduino. Când arduino primește acea literă, aprinde lumina corespunzătoare literei respective.
Pasul 24:
S-ar putea să vă întrebați cum îl fac să numesc asta
funcţie? Ei bine, o faci cu o singură linie simplă în oricare dintre celelalte scripturi c # pe care le folosești pentru jocul tău. Sending. NameFunctionhere ();. De exemplu, în jocul meu, jucătorul are sarcina de a colecta 4 globuri colorate. Așa că am scris un mic script care se asigură că atunci când se apropie de unul și apasă butonul din dreapta îl ridică și trimite semnalul către arduino că, în acest caz, globul galben a fost ridicat. Ca să știe, oke, trebuie să aprind LED-ul galben:
Puteți pune această linie de cod oriunde doriți. Dacă doriți să se aprindă când începe jocul, puneți-l în funcția de pornire. Vrei să se aprindă când moare pune-l în funcția ta pentru moartea jucătorilor. Experimentați puțin. Am ales să fac luminile un fel de element ui în afara jocului pentru a ține evidența orbelor pe care trebuie să le colectezi fără să aglomerați ecranul.
Recomandat:
Suport pentru sticle muzicale care interacționează cu lumini reglabile: 14 pași
Suport pentru sticle cu interacțiune muzicală cu lumini reglabile: Cu ceva timp în urmă, un prieten de-al meu a comandat un inel cu LED de 16 biți cu care să se clatine și, în timp ce făcea acest lucru, a avut ideea să pună o sticlă deasupra acestuia. Când l-am văzut, am fost fascinat de aspectul luminii care luminează balonul și mi-am amintit de awes
Controler de joc DIY bazat pe Arduino - Controler de joc Arduino PS2 - Jucând Tekken cu DIY Arduino Gamepad: 7 pași
Controler de joc DIY bazat pe Arduino | Controler de joc Arduino PS2 | Jucând Tekken cu DIY Arduino Gamepad: Bună, băieți, jocul este întotdeauna distractiv, dar jocul cu propriul controler personalizat DIY este mai distractiv
Respirați: lumini de zână care se estompează într-un bloc de sticlă: 6 pași
Breathe: Fading Fairy Lights in a Glass Block: Pentru Crăciunul din acest an am decis să folosesc un bloc de sticlă, un controler PWM și câteva fire cu LED-uri de zână pentru a-i oferi soției mele un cadou colorat
Cum să verificați dacă un joc va rula pe computerul dvs. înainte de a cumpăra jocul .: 4 pași
Cum să verificați dacă un joc va rula pe computerul dvs. înainte de a cumpăra jocul. Am achiziționat recent Call of Duty 4 de la un prieten (aș putea adăuga gratuit), deoarece nu ar rula pe computerul său. Ei bine, computerul său este destul de nou și m-a nedumerit de ce nu ar funcționa. Așa că, după câteva ore de căutări pe internet, am dat peste
Lumini de Crăciun DIY setate pe muzică - Lumini de casă coregrafiate: 15 pași (cu imagini)
Luminile de Crăciun DIY setate pe muzică - Lumini de casă coregrafiate: Luminile de Crăciun DIY setate pe muzică - Lumini de casă coreografiate Acesta NU este un DIY pentru începători. Veți avea nevoie de o înțelegere fermă în ceea ce privește electronica, circuitul, programarea BASIC și inteligența generală despre siguranța electrică. Acest DIY este pentru o persoană cu experiență, așa că