Talaan ng mga Nilalaman:

Gumamit ng isang Arduino Gamit ang isang N64 Controller: 5 Hakbang (na may Mga Larawan)
Gumamit ng isang Arduino Gamit ang isang N64 Controller: 5 Hakbang (na may Mga Larawan)

Video: Gumamit ng isang Arduino Gamit ang isang N64 Controller: 5 Hakbang (na may Mga Larawan)

Video: Gumamit ng isang Arduino Gamit ang isang N64 Controller: 5 Hakbang (na may Mga Larawan)
Video: LaunchBox 13.3 Released! Statistics Syncing, 3D Model Game Overrides, Wii U & PS3 Parsing, .NET 6.0 2024, Hunyo
Anonim
Gumamit ng isang Arduino Gamit ang isang N64 Controller
Gumamit ng isang Arduino Gamit ang isang N64 Controller

Mayroong mga tutorial doon para sa paggamit ng isang NES controller na may Arduino, ngunit ang paggamit ng mas kumplikadong N64 controller at ang analog joystick nito ay may isang tiyak na apela. Kung mayroon kang isang Arduino sa paligid at hindi nais na bumili ng isang Adaptoid, ang itinuturo na ito ay gagawing posible na maglaro ng mga pekeng laro sa Project 64 kasama ang iyong Ardunio at isang N64 Controller. Mahirap ba ito? / Masisira ba ang aking gamit? Hindi nito babaguhin ang iyong controller sa anumang paraan, at ang mga kable ay napaka-simple, kaya kung gagawin mo ang lahat nang maingat ay walang panganib sa iyong controller, at maaari mong alisin ito sa anumang oras upang magamit sa isang N64 console. kailangan: Arduino - $ 30Proseso 1.0 - libreArduino Software - libreng 3 piraso ng kawad - libre (Umaasa ako) USB cable

Hakbang 1: Mga kable ng Controller

Kable ng Controller
Kable ng Controller
Kable ng Controller
Kable ng Controller
Kable ng Controller
Kable ng Controller

Ang unang bagay na kailangan mong gawin ay ikonekta ang iyong Arduino sa Controller Gumagamit lamang ang Controller ng tatlong mga lead: + 3.3V, signal, at ground. Tumingin nang direkta sa plug, ang lupa ay pinakamalayo sa kaliwa, ang signal ay nasa gitna, at ang + 3.3V ay nasa kanan. Gamit ang kawad, ikonekta ang lupa at + 3.3V sa kani-kanilang mga pin sa Arduino, at ikonekta ang lead ng signal sa Digital 2 pin sa Ardunio. TANDAAN: Kung mayroon kang ibang code sa iyong Arduino, dapat mong idiskonekta ang kontrol at i-upload ang bagong code mula sa susunod na pahina sa Arduino bago i-powering ito kasama ang nakakabit na controller. Ikonekta ang Arduino Connect ang USB cable at ang Arduino ay magkakaroon ng lakas.

Hakbang 2: I-unpack at Patakbuhin ang Code

Ang code na ito ay isinulat ko, kasama ang mga bahagi ng N64_Arduino file batay sa code ng pagpupulong na isinulat ni Andrew Brown. Mga ZIP Archive: Ang dalawang mga Zip file sa ibaba ay naglalaman ng code na kinakailangan upang patakbuhin ang Arduino at pagkatapos ay bigyang kahulugan ang data na ipinapadala nito sa computer. Ang N64_Arduino file ay kailangang maiipon sa Arduino IDE, at ang N64_Controller ay tumatakbo sa Pagproseso ng 1.0. N64_Arduino Ang file na PDE na ito ay dapat na mag-upload sa iyong Arduino at tumakbo nang walang sagabal kung mayroon kang konektado nang maayos sa lahat. Ito ay simpleng query sa N64 controller para sa data sa mga pindutan at Analog stick at ibabalik ito sa computer sa serial port. Ito ay sapat na madaling baguhin, halimbawa, maaari mong gamitin ang mga pamamaraan mula sa file na ito upang magtanong sa isang tagakontrol at gamitin ang data upang magpatakbo ng isang Arduino robot sa halip na ilipat ito pabalik sa computer. N64_Controller Ito ay isang proyekto sa Pagproseso 1.0 na tumatagal ang data na naihatid ng Arduino at binago ito sa mga pagpindot sa keyboard na maaari mong mapa sa isang emulator tulad ng Project 64. Maaaring kailanganin mong baguhin ang linya na String portName = Serial.list () [1]; upang maitugma ang iyong Arduino, dapat itong alinman sa Serial.list () [0]; Serial.list () [1]; o Serial.list () [2]; EDIT: Idagdag ang "import java.awt. Robot;" "import java.awt. AWTException;" "import java.awt.event. InputEvent;" sa code kung gumagamit ka ng Processing 1.1N64_Controller_mouse Ito ay kapareho ng N64_Controller, maliban na kinokontrol ng analog stick ang iyong mouse, hindi ang mga arrow key. Ang A at B ay kanan at kaliwang pag-click, ayon sa pagkakabanggit. Upang buhayin ang mouse, pindutin ang start button sa iyong controller.

Hakbang 3: I-set up ang Project 64

I-set up ang Proyekto 64
I-set up ang Proyekto 64

Bago mo magamit ang controller, kailangang ikonekta ang Arduino at patakbuhin ang code na na-download mo sa huling hakbang, at ang Proseso ng 1.0 ay kailangang buksan sa pagpapatakbo ng programang N64_Controller. Subukan ito sa Notepad, ang pagpindot sa pindutan ng A ay dapat na mag-type ng A, B dapat mag-type ng B, atbp. Kaya ngayon mayroon kang isang gumaganang kontrol (sana) at nais mong maglaro ng ilang mga laro. Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key Key MappingsStart PJ 64 at buksan muna ang menu ng mga setting (Ctrl + T). Baguhin ang input controller sa direktang pag-input ng N-Rage. Buksan ang menu na "I-configure ang Controller Plugin" at itakda ang mga pagmamapa gamit ang controller. Magsimula sa Pagpe-play! Dapat ay handa ka nang umalis ngayon! Mag-download ng ilang mga ROM at simulang tangkilikin ang iyong homebrew N64 adapter.

Hakbang 4: Arduino Code sa Lalim

Arduino Code sa Lalim
Arduino Code sa Lalim

Ang N64 Protocol Ang mga bit na ipinadala sa at mula sa N64 controller sa isang interface ng wire ay naka-encode sa 4 na lapad na pulso. Ang isang '0' ay 3 µs mababa at 1 µs mataas. Ang isang '1' ay 1 µs mababa at 3 highs mataas. Ang Arduino code sa mga pamamaraan na N64_send o N64_receive gamitin nang maingat na nag-time na code ng pagpupulong na isinulat ni Andrew Brown upang bit-bang ang linya ng data upang makipag-usap sa controller. nop blocks ay ginagamit upang maghintay ng naaangkop na mga halaga ng befores bago botohan ang linya ng pagpapadala ng data. Sa pagsisimula, 0x00 ay ipinadala sa controller, at pagkatapos pagkatapos nito ang nag-iisang utos na ginamit ay 0x01 upang magtanong para sa katayuan ng taga-kontrol. Pag-encode ng Data Kapag natanggap ang data pagkatapos ng isang 0x01, dumating ito bilang 16 piraso ng impormasyon ng pindutan at 16 na piraso ng impormasyon ng analog joystick. Ang data ay magmumukhang 44000000000000400044440044000444. Ang format ng mga piraso ay: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bits ng analog posisyon ng stick. Ang pamamaraan na translate_raw_data () ay dumadaan sa 32 bits, na ipinasok ang mga ito sa struct N64_status. Ang unang 16 bits ay simple 1 o 0, ngunit ang huling 16 ay isinalin sa isang integer na tinatayang sa saklaw (-80, 80) ng para sa (i = 0; i <8; i ++) {N64_status.stick_x | = N64_raw_dump [16 + i]? (0x80 >> i): 0; } Matapos ang data ay nasa simpleng form na ito, madaling gawin ang nais mo rito. Sa kasong ito, ipinadala lamang ito sa serial port sa loop () na paraan bilang isang string ng binary data na may dalawang integer para sa mga halagang x at y. Ang data na ipinadala sa serial port ay maaaring magmukhang: 0400000000000400 63 -67 na nangangahulugang pinindot ang dalawang mga pindutan at ang control stick ay nasa 63, -67.

Hakbang 5: Mga Sanggunian

Mga Sanggunian
Mga Sanggunian

Ang proyekto ni Andrew Brown na lumikha ng isang gamecube sa N64 adapter sa Arduino ay napakahalaga habang nag-cod para sa proyektong ito:

Ang mga kapaki-pakinabang na eskematiko ay matatagpuan dito: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Ang impormasyon sa pagmamay-ari ng protokol ng N64 ay matatagpuan dito:

Inirerekumendang: