Talaan ng mga Nilalaman:

Arduino Video Game Controller: 4 na Hakbang
Arduino Video Game Controller: 4 na Hakbang

Video: Arduino Video Game Controller: 4 na Hakbang

Video: Arduino Video Game Controller: 4 na Hakbang
Video: DIY Arcade Controller for Tekken 7! 2024, Hulyo
Anonim
Controller ng Video Game ng Arduino
Controller ng Video Game ng Arduino

Mayroon ka bang isang Arduino kit na nakalatag ngunit walang bakas kung ano ang gagawin dito? Marahil hindi, ngunit sa Instructable na ito ipapakita ko sa iyo hakbang-hakbang kung paano bumuo, mag-code at isama ang Arduino sa iyong proyekto. Sa ngayon ang gabay na ito ay nasubok lamang sa Clickteam Fusion Developer 2.5 ngunit ang build at Arduino code na mga hakbang ay maaaring magamit sa pangkalahatan. Ang gabay na ito ay maaaring ma-update para sa Unreal at Unity sa hinaharap.

Hakbang 1: Listahan sa Pamimili

  • Arduino Uno o katulad
  • Kable ng USB
  • (400 point) Breadboard o 1 x perf / strip board
  • Mga katugmang Arduino.
  • Iba't ibang Sensor. Ginamit ko ang sumusunod sa aking halimbawang proyekto:
  • Ang panel mount Potentiometer 10K ay madaling gamitin sa breadboard
  • Photoresistor
  • Pilitin ang resistor na sensitibo

Hakbang 2: Mga Koneksyon

Mga koneksyon
Mga koneksyon

Tandaan: Ito lamang ang mga sensor na personal kong ginamit para sa aking proyekto. Nangangahulugan ito na maraming mas maraming mga pagpipilian doon. Mga sunud-sunod na tagubilin sa kung paano i-wire ang mga iyon ay matatagpuan sa iba't ibang mga site depende sa sensor.

Hakbang 3: Arduino Code

Kopyahin at i-upload ang code na ito sa iyong Arduino kung nais mong gumamit ng parehong uri ng mga sensor tulad ng sa akin. Kung hindi man maaari mong gamitin ang iyong sariling code para sa iyong mga sensor. Ang tanging pandaigdigang mahalagang bagay na kinakailangan ay ang mga iba't ibang nais mong gamitin sa iyong engine ng laro na naka-print sa serial monitor o maaaring mabasa sa ibang paraan.

// Ang mga ito ay itinakda sa simula at hindi nabago kapag tumatakbo ang programa. Tulad ng kung aling ANALOG SA pin ang gumagamit.

const int potPin = A0; const int fsrAnalogPin = 5; Const int photocellPin = 2; // Variables: // LIGHT SENSOR: // Banayad na variable ng halaga: int photocellReading; // POTENTIOMETER // Halaga ng Potentiometer int halaga; // PRESSURE SENSOR // Ito ang variable ng raw data mula sa pressure sensor. int fsrReading; // Na-mapa na bersyon ng fsrReading variable int pressure; void setup () {// ilagay ang iyong code sa pag-setup dito, upang magpatakbo nang isang beses: pinMode (potPin, INPUT); Serial.begin (9600); } void loop () {// PRESSURE SENSOR // Dito ginagamit namin ang tinukoy na fsrAnalogPin upang mabasa ang data mula sa pin na iyon. fsrReading = analogRead (fsrAnalogPin); // Halaga ng mapa 0-1023 hanggang 0-255. presyon = mapa (fsrReading, 0, 1023, 0, 255); // Suriin kung ang presyon ay nasa ibaba o higit sa isang tiyak na halaga ng pag-print ng isa sa dalawa. Ang naka-print na variable na ito ay ginagamit sa paglaon sa game engine. kung (pressure 70) {Serial.print ("6"); } // POTENTIOMETER halaga = analogRead (potPin); // Basahin at i-save ang halagang analog mula sa potentiometer na halaga = mapa (halaga, 0, 1023, 0, 360); // Halaga ng mapa 0-1023 hanggang 0-360 // Dito hinati namin ang 360 sa anim na magkakaibang mga segment. // Maaari mong baguhin ang dami ng mga segment sa isang mas mataas na halaga. Ang bawat segment ay magkakaroon ng isang mas maliit na saklaw. Halimbawa, ang 8 mga segment ay magkakaroon ng saklaw na 45 bawat isa. (360 / dami ng mga segment) // Kung ang kasalukuyang halaga ay nahuhulog sa isang segment ay mai-print nito ang pangalan ng segment na iyon. kung (halagang 60 at halagang 120 at halagang 180 at halagang 240 at halagang 300 at halagang <375) Serial.print ("Anim"); // LIGHT SENSOR // Narito muli naming binasa at itinakda ang isang variable, sa kasong ito ang photocellReading. photocellReading = analogRead (photocellPin); // Sinusuri namin ang dami ng ilaw, na may madilim at napaka madilim na pag-print ng isang 3 at normal na mga halaga ng ilaw sa pag-print ng 4. kung (photocellReading <10) {Serial.println ("- 3"); } iba pa kung (photocellReading <200) {Serial.println ("- 3 -"); } iba pa kung (photocellReading <500) {Serial.println ("- 4 -"); } // Ang mga numero sa Serial: // Ang unang numero ay ang pressure sensor, 5 ay hindi pinindot at 6 ang pinindot. // Pagkatapos nito ay aling segment ang kasalukuyang nasa Potentiometer. // At ang huling numero ay alinman sa isang 3 = madilim o 4 = ilaw.

Hakbang 4: Sa Game Engine: I-click ang Koponan 2.5

Sa Extension Manager hanapin ang Serial Object at i-install ito.

Ilagay ang Serial Object, isang counter at isang string sa iyong frame. (Pag-right click sa frame - ipasok ang object)

Sa Editor ng Kaganapan lumikha ng isang kaganapan: Kung naghihintay ang Data: Itakda ang mababago na String sa GetData ("Serial Object")

Itatakda nito ang string sa anumang data na ipinapadala ng Arduino, ang string ay dapat magmukhang ngayon sa Serial Monitor.

Lumikha ng isa pang kaganapan Palagi: Itakda ang counter sa: Hanapin (string $ ("String"), "4", 0)

Ang halimbawang ito ay susubukan na hanapin ang 4 na katumbas ng ilaw na makikita sa Arduino Code.

Kung mahahanap nito ang 4 itatakda nito ang counter sa 4, kung nabigo itong hanapin ang 4 ang counter ay magiging -1.

Ngayon ay maaari kang magdagdag ng isang bagong kaganapan upang magawa ang isang bagay sa resulta na ito:

Kung counter = -1: Dito maaari mong ilagay kung ano ang dapat mangyari kung ito ay hindi totoo, tulad ng pagkakaroon ng isang Animation ng isang lampara na naka-off.

Kung counter = -1: Nangangahulugan ito na natagpuan nito ang variable at ang counter ay itinakda sa kung ano ang maaaring maging variable na iyon (hangga't hindi -1), dito maaari mo itong gawin upang lumipat ang animasyon ng lampara.

Talaga sa pamamagitan ng paggamit ng mga counter na nakatakda sa alinman sa -1 na mali o -1 na totoo maaari mong mangyari ang mga kaganapan.

Inirerekumendang: