Talaan ng mga Nilalaman:
- Hakbang 1: Pag-hooking ng Mga Pindutan sa Pagkontrol sa Arduino
- Hakbang 2: Pag-coding sa Arduino Leonardo:
- Hakbang 3:
- Hakbang 4:
- Hakbang 5:
- Hakbang 6:
- Hakbang 7:
- Hakbang 8: Pagkilos ng Coding sa Unity:
- Hakbang 9:
- Hakbang 10:
- Hakbang 11:
- Hakbang 12:
- Hakbang 13:
- Hakbang 14: Pag-hook ng Mga ilaw sa Arduino
- Hakbang 15: Pag-coding ng Arduino Uno
- Hakbang 16:
- Hakbang 17:
- Hakbang 18: Side ng Unity Unity ng Coding:
- Hakbang 19:
- Hakbang 20:
- Hakbang 21:
- Hakbang 22:
- Hakbang 23:
- Hakbang 24:
Video: Ang Controller ng Arduino Game Na May Mga ilaw na Tumutugon sa Iyong Laro ng Unity :: 24 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Una kong isinulat ang bagay na ito sa salita. Ito ang kauna-unahang pagkakataon na gumagamit ako ng itinuturo kaya't tuwing sasabihin ko: isulat ang code tulad ng nalalaman na tumutukoy ako sa imahe sa tuktok ng hakbang na iyon.
Sa proyektong ito gumagamit ako ng 2 arduino's upang magpatakbo ng 2 magkakahiwalay na piraso ng code dahil nagkaroon ako ng problema sa paggana nito sa isa lamang
Ito ang Uno at ang Leonardo
sa kabuuan ito ang kakailanganin mo upang i-breadboard ang proyektong ito.
· 7 mga pindutan ng push
· 23 mga jumper wires
· 1 arduino Leonardo + usb cable
· 4 na resistors · 4 led's
· 1 arduino uno + usb cable
· 2 mga breadboard
Hakbang 1: Pag-hooking ng Mga Pindutan sa Pagkontrol sa Arduino
Ano ang kakailanganin mong i-hook ang bahaging ito:
· 7 mga pindutan ng push
· 14 na jumper wires
· 1 arduino Leonardo + usb cable
· Breadboard
Ang mga pindutan ay medyo simple upang mag-hook up ngunit maaaring mabilis na maging isang gulo upang ipakita sa form ng imahe.
· Una mong ilagay ang mga push button sa mga posisyon na minarkahan ko sa imahe sa itaas.
· Pangalawa nais mong mag-hook up ng isang jumper mula sa ground slot sa arduino Leonardo sa minus row ng breadboard.
· Ngayon ay na-hook up mo ang mga jumper mula sa kahit saan sa minus row sa hilera na nakahanay sa kanang pin ng push button mo. magpapakain ito ng lakas dito.
· Susunod na nais mong i-hook up ang isang jumper wire mula sa isang hilera na naaayon sa kaliwang pin ng iyong push button sa mga digital slot ng pag-input ng Leonardo. Para sa mga pindutan dito ginamit ko ang slot 2 - 3 - 4 - 5 - 6 - 7- 8
Ipinakita ko lamang ang wire na papunta sa input 8 sa imahe sanhi na ito ay naging isang napaka-magulo larawan upang ipakita sa iyo ang lahat ng mga wire na tumatawid sa bawat isa.
Hakbang 2: Pag-coding sa Arduino Leonardo:
Kaya't upang sabihin sa iyo ang dahilan kung bakit ko ginagamit si Leonardo para dito. Ito ay dahil mayroong isang tiyak na maliit na tilad na hindi ginagawa ng Uno na ginagawang makilala ito ng computer bilang isang usb input device. Tulad ng Gusto nito sa isang keyboard. Na nagpapahintulot sa amin na gumawa ng isang bagay na ginagawang mas madali ang aming buhay bilang mga programmer para sa proyektong ito. Pagtulad sa keyboard. Susubukan naming linlangin ang computer sa pag-iisip na pinipindot namin ang ilang mga key sa keyboard kapag sa katunayan ay pinipindot namin ang mga pindutan sa aming controller.
Ngayon ay lalakad na ako naisip mo ang code nang sunud-sunod.
Una muna hanggang sa itaas ay nagsasama kami ng Keyboard.h. Papayagan kaming gamitin ang mga pag-andar ng keyboard na gagamitin namin sa aming code.
Hakbang 3:
Pagkatapos kailangan naming tukuyin ang mga digital slot ng pag-input na gagamitin namin sa
Leonardo para sa bawat pindutan.
Pinangalanan ko rin ang bawat isa sa kanila sa susing gagayahin ko.
Hakbang 4:
Mula doon makakapasok kami sa pag-andar ng pag-setup. Sinasabi nito sa
arduino kung ano ang ginagawa nito sa pagsisimula.
isinusulat muna namin ang Serial.begin na magbubukas ng serial port at magtatakda ng rate ng data sa 9600 bps
at tinukoy namin ang lahat ay pinangalanan na mga pin upang maging input.
Hakbang 5:
At sa wakas ay isinusulat namin ang aming pag-andar ng loop na susuriin kung
ang mga pindutan ay pinindot at sabihin sa arduino kung paano tumugon sa na.
Nagsusulat muna kami ng Keyboard.begin kung saan sasabihin sa arduino na kailangan niyang maghanap para sa amin gamit ang mga pag-andar ng keyboard
Hakbang 6:
Pagkatapos para sa bawat pindutan nagsusulat kami ng isang kung / ibang pahayag na ganito
Kaya kung ano ang sinabi ko sa arduino dito ay: Kung ang aking kaliwang pindutan ay na-compress sa controller ipalagay sa computer na pinipindot namin ang "a" key at kung hindi iyon ang kaso ipalagay na binitawan natin ang susi.
Karaniwan mong inuulit ang bloke ng code na ito para sa bawat pindutan sa iyong controller. na may mga pagbabago para sa bawat variable at mga key na kailangan tularan ng variable
Hakbang 7:
Ang mga susi na sinabi namin sa computer na pindutin dito ay W - A - S - D na alin
ay halos pamantayan para sa paggalaw sa mga laro sa pc at E - Q - at ang spacebar na sa code na ito ay kinikilala bilang '' alin ang mga pindutan na ginagamit ko upang kunin - i-dismiss at sunugin ang aking laro. Huwag mag-atubiling baguhin ang mga ito sa anumang mga key na sa palagay mo ay mas mahusay para sa iyong laro / controller.
Pagkatapos ay panghuli naming sasabihin sa arduino na ihinto ang tseke kung aling Keyboard.end
Hakbang 8: Pagkilos ng Coding sa Unity:
Hayaan mo muna akong sabihin sa iyo na ginagawa ko ito para sa isang laro na 2d kaya
ang mga halimbawang makikita mo ay naitayo para doon. Pangunahing ibig sabihin kung saan gumagamit ako ng vector2's kung nagtatrabaho ka sa 3d gagamit ka ng vector3's. dahil kakailanganin mong mag-alala tungkol sa labis na sukat ng paggalaw sa 3d.
Ngayon ang dahilan kung bakit ginamit ko ang pagtulad sa Keyboard sa panig ng arduino ay dahil ang Unity ay may isang bagay na bumuo upang makilala ang mga key sa keyboard na maaari naming magamit.
Kung buksan mo ang iyong proyekto sa pagkakaisa pumunta sa I-edit -> Mga setting ng proyekto -> Input. Maaari mong makita sa iyong inspektor na binobola nito ang input manager. Kung saan kung mag-click ka sa Axes maaari mong makita ang isang buong grupo ng mga pangalan ng pag-input na magbubukas na karaniwang ginagamit para sa mga pc controler tulad ng ginagawa namin ngayon. Ang 2 input na gagamitin namin ay Pahalang at Vertical na suriin para sa hulaan mo ito W-A-S-D.
Una nais mong gumawa ng isang bagay Sa iyong hierarchy ng mga eksena ng pagkakaisa na magiging iyong manlalaro. Sa aking kaso sa pagiging masayang maliit na taong ito. Maaari itong maging anumang kailangan mo ito ngunit para sa layunin ng aking laro ginawa ko ang taong ito.
Hakbang 9:
Nais mong bigyan ang manlalaro na ito ng 2 bagay. Isang box collider 2d at
isang Rigidbody 2d at i-edit ang mga ito upang maging katulad ng imahe sa itaas.
Hakbang 10:
Pagkatapos ay nais mong pumunta sa iyong mga proyekto folder at lumikha ng isang
C # script. Na pinangalanan ko na PlayerMovement.
Sa script na ito tutukuyin mo ang 2 variable. Isang pampublikong float na tinatawag kong moveSpeed. Alin ang tutukoy kung gaano kabilis ang iyong lakad. At isang pribadong Rigidbody2D na tinatawag kong RigidPlayer. Alin ang hahanapin ang iyong mga manlalaro na matigas.
Huwag kalimutang makapunta sa iyong editor ng pagkakaisa mag-click sa iyong manlalaro idagdag ang bagong script sa pamamagitan ng pag-drag sa inspektor at magtakda ng isang halaga ng numero para sa moveSpeed.
Hakbang 11:
ngayon sa iyong Start () nais mong gawin ang isang bagay at iyon ay
tiyaking mahahanap ng iyong RigidPlayer ang iyong nagbabayad na tigas 2d. Ginagawa mo iyon sa sumusunod na linya ng code:
Hakbang 12:
Pagkatapos ay magpatuloy kami sa pag-update (). Dito tayo pupunta
upang makagalaw ang manlalaro.
ginagawa namin iyon sa isang medyo simple kung pahayag na titingnan ang mga negatibo at positibong mga susi mula sa Horizontal (AD) at Vertical (SW) at ilapat iyon bilang isang numero upang pilitin na ilalagay natin ang aming tigas na 2d upang itulak ang aming manlalaro isang direksyon Ang numerong iyon ay magpaparami ng variable ng moveSpeed.
Hakbang 13:
Panghuli nais mong tiyakin na ang iyong manlalaro ay hihinto sa paggalaw kung kailan
wala kang pipindutin. Gusto mo ito:
Ngayon kung nais mong gamitin ang iyong 3 iba pang mga pindutan para sa anumang gagawin mo na kasama nito kung pahayag: kung (Input. GetKeyDown (Keycode. Space))
para sa spacebar at sa halip na puwang ay ilagay ang titik ng iba pang mga key na pinili mo upang magamit para sa iba pang mga key.
Hakbang 14: Pag-hook ng Mga ilaw sa Arduino
·
Ano ang kakailanganin mong i-hook ang bahaging ito:
· 9 na jumper wires
· 4 na resistors
· 4 na humantong
· 1 arduino uno + usb cable
· Breadboard
Ang hookup para sa mga ilaw ay magagawa sa pamamagitan ng Uno.
Magtatapos ito sa hitsura ng imaheng ito sa itaas:
I-hook mo ang mga resistors sa mahabang bahagi ng mga LED. At pagkatapos ay nakakabit mo ang isang jumper mula sa isang digital pin number sa uno sa mga resistors. sa kasong ito ginamit ko ang mga digital pin slot 9 - 10 -11 -12 ang mga numerong ito ay magiging nauugnay kapag nakarating kami sa code para sa mga ilaw.
Mula doon nais mong mag-hook up ng isang jumper mula sa ground slot sa iyong arduino Uno hanggang sa lugar sa iyong board tulad ng nakikita sa itim na kawad sa imahe sa itaas.
Pagkatapos nais mong magkaroon ng 4 na jumper lahat humahantong sa maikling dulo ng bawat LED
Hakbang 15: Pag-coding ng Arduino Uno
Ayos muna sa aming tutukuyin muli ang aming mga variable
Kaya muna kung aling mga digital na input ang ginagamit namin para sa aming mga ilaw. At gagawa kami ng char na tinatawag na myCol [20]
Hakbang 16:
Pagkatapos sa pag-setup nais naming gawin muli ang Serial.begin. Ilagay ang lahat ng aming mga LED sa Output at i-off ang lahat sa kanila sa pagsisimula.
Hakbang 17:
At sa wakas nais mong isulat ang iyong pag-andar ng loop.
Magiging sanhi ito upang mabasa ng Arduino ang anumang data na papasok sa pamamagitan ng serial hanggang sa mangyari ang isa sa dalawang mga kaganapan. Alinman ang isang character na feed ng linya ay napansin; ito ay kinilala ng lf na nakatakda sa 10 at ang unang argumento o isang tiyak na halaga ng mga byte na nabasa na. Ito ang pangatlong argumento at para sa halimbawang ito ay itinakda sa isang byte lamang. Ang data ay nakaimbak sa variable myCol, na kung saan ay nakatakda sa char at isang limitasyon ng 20. Sa readBytesUntil ito ang pangalawang argument. O isa pang paraan upang ipaliwanag ito ay Serial.readBytesUntil (terminatorCharacter, buffer, byteLimit);
At ang kung ang mga pahayag ay tiyakin na ang ilang mga ilaw ay nakabukas kapag ang pagkakaisa ay nagbibigay ng senyas. Sa kasong ito, nakakuha ako ng 4 na magkakaibang mga ilaw na may kulay kaya gumawa ako ng pagkakaisa na magpadala ng g para sa berdeng LED upang i-on, b para sa asul na LED upang i-on, para sa pulang LED upang i-on at y para sa dilaw na LED upang i-on.
Hakbang 18: Side ng Unity Unity ng Coding:
Oke muna ang 2 bagay bago tayo makapunta rito.
1.sa iyong arduino coding program pumunta sa Tool -> Port -> at suriin kung aling COM ang nasa uno mo. Sa aking kaso ang COM3 nito (ito ay magiging mahalaga sa code)
2.sa pagkakaisa Pumunta sa I-edit -> Mga setting ng proyekto -> Player pagkatapos ay i-click ang inspector sa iba pang mga setting pumunta sa Antas ng pagiging tugma ng Api at Ilipat ito mula sa. NET 2.0 subnet sa. NET 2.0 lamang
Oke tapos na yan. Pasukin natin ito.
Mag-right click sa iyong hierarchy at mag-click sa Lumikha ng walang laman.
Ito ay magiging isang walang laman na object ng laro na magkakaroon lamang sa iyong laro upang i-hold ang isang script para sa amin. Tinawag ko ang bagay na ito Init.
Hakbang 19:
Pagkatapos ay pumunta sa iyong mga proyekto na tab at lumikha ng isang bagong script na C #
at tawagin itong Pagpapadala.
Ang unang bagay na iyong ginagawa ay isulat ang mga ito sa mga linya sa paggamit ng mga seksyon ng iyong code:
gamit ang System. IO. Ports;
gamit ang System. Threading;
Ginagawa ito upang magamit natin ang variable ng SerialPort
Hakbang 20:
sa script na ito gagawa kami ng mga sumusunod na variable. Ngayon tandaan na nakakuha ako ng COM3 doon na maaaring magkakaiba ito para sa iyo habang tinalakay sa simula ng hakbang na ito. Kung papalitan nito ang 3 ng bilang na sinabi nito para sa iyo.
Hakbang 21:
Sa simula sinabi namin sa script na gagamitin ay OpenConnection
function na kung saan ay nais naming magsulat ng kaunti
ang pag-update ay higit na isang pagsubok kung gayon anupaman ngunit kung nais mong isama ito upang subukan ang mga mensahe na ipinadala sa pagkakaisa. Maaari mong balewalain ito nang totoo.
Hakbang 22:
Oke ngayon para sa pagpapaandar na OpenConnection na ito. Malaki lang ito
kung / ibang pahayag na nagpapanatiling bukas ang koneksyon kopyahin lamang ito tulad ng nakasulat at dapat kang maging maayos.
Hakbang 23:
Ngayon Tandaan mula sa arduino code na ginawa kong suriin para sa
hudyat na ang pagkakaisa ay ipapadala dito.
well dito nangyayari yun. Sa aking kaso nakuha ko ang 4 na ilaw na naka-hook up kaya nagsulat ako ng 4 na pag-andar na sobrang simple. Ang ginagawa lang nila ay kapag tinawag sila ay nagpadala ng isang sulat sa arduino. Kapag nakuha ni arduino ang liham na ito ay sinisindi nito ang ilaw na naaayon sa nasabing liham.
Hakbang 24:
Maaaring nagtataka ka kung paano ko ito matatawagan
pagpapaandar? Gawin mo ito sa isang simpleng linya sa alinman sa iyong iba pang mga c # script na ginagamit mo para sa iyong laro. Pagpapadala. NameFunctionhere ();. Kaya halimbawa sa aking laro ang manlalaro ay pinapasan upang mangolekta ng 4 na may kulay na mga orb. Kaya't nagsulat ako ng isang maliit na iskrip na tinitiyak na kapag malapit siya sa isa at pinindot ang kanang pindutan ay kinuha niya ito at nagpapadala ito ng senyas sa arduino na sa kasong ito ang Yellow orb ay nakuha. Upang malaman nito, oke kailangan kong buksan ang Yellow LED:
Maaari mong ilagay ang isang linya ng code na ito kahit saan mo gusto. Kung nais mong mag-ilaw ito kapag nagsimula ang laro ilagay ito sa pagsisimula ng pag-andar. Nais na mag-ilaw ito kapag namatay siya na ilagay ito sa iyong pag-andar para sa pagkamatay ng mga manlalaro. Eksperimento sa paligid ng kaunti. Pinili kong gawin ang mga ilaw ng isang uri ng elemento ng ui sa labas ng laro upang subaybayan ang mga orbs na nakolekta mo nang hindi kalat ang screen.
Inirerekumendang:
Pagkontrol ng Mga Ilaw Sa Iyong Mga Mata: 9 Mga Hakbang (na may Mga Larawan)
Pagkontrol ng Mga Ilaw Sa Iyong Mga Mata: Sa semestre na ito sa kolehiyo, kumuha ako ng klase na tinatawag na Instrumentation in Biomedicine kung saan natutunan ko ang mga pangunahing kaalaman sa pagpoproseso ng signal para sa mga medikal na aplikasyon. Para sa huling proyekto ng klase, nagtrabaho ang aking koponan sa teknolohiya ng EOG (electrooculography). Essenti
Paano Makokontrol ang Mga ilaw / ilaw sa bahay gamit ang Arduino at Amazon Alexa: 16 Hakbang (na may Mga Larawan)
Paano Makokontrol ang Mga ilaw / Home Lights Gamit ang Arduino at Amazon Alexa: Ipinaliwanag ko kung paano makontrol ang ilaw na konektado sa UNO at kontrolado ng Alexa
3D Printed Flahing LED Name Tag - Kunin ang Iyong Pangalan sa Mga Ilaw !: 4 Mga Hakbang (na may Mga Larawan)
3D Printed Flahing LED Name Tag - Kunin ang Iyong Pangalan sa Mga Ilaw !: Ito ay isang magandang maliit na proyekto kung saan bumuo ka ng isang tag ng pangalan na napaka-flashy at nakakaakit ng mata gamit ang mga multi-color LED light. Mga tagubilin sa video: Para sa proyektong ito gagawin mo kailangan: 3D Naka-print na Bahagi https://www.thingiverse.com/thing:2687490 Maliit
Kontrolin ang mga Ilaw sa Iyong Bahay Sa Iyong Computer: 3 Hakbang (na may Mga Larawan)
Kontrolin ang Mga Ilaw sa Iyong Bahay Sa Iyong Computer: Nais mo bang kontrolin ang mga ilaw sa iyong bahay mula sa iyong computer? Ito ay talagang medyo abot-kayang gawin ito. Maaari mo ring kontrolin ang mga sistema ng pandilig, awtomatikong mga blind window, mga motorized projection screen, atbp. Kailangan mo ng dalawang piraso ng hardwar
Paano Suriin Kung Tumatakbo ang isang Laro sa Iyong Computer Bago ka Bumili ng Laro .: 4 Mga Hakbang
Paano Suriin Kung Tumatakbo ang Isang Laro sa Iyong Computer Bago ka Bumili ng Laro .: Kamakailan-lamang na nakuha ko ang Tawag ng Tanghalan 4 mula sa isang kaibigan (nang libre ay maaari kong idagdag) dahil hindi tatakbo sa kanyang computer. Sa gayon, ang kanyang computer ay medyo bago, at ikinagulat ako nito kung bakit hindi ito tatakbo. Kaya pagkatapos ng ilang oras na paghahanap ng internet, napag-alaman ko