Kysymys:
Käytä vanhaa Nintendo NES -ohjainta syöttölaitteena
littlebirdceo
2009-11-02 10:18:55 UTC
view on stackexchange narkive permalink

Onko jollakin Nintendo NES -ohjaimen pinout-kaavio? Haluaisin liittää NES-ohjaimen Arduinoon.

ellet halua yrittää hankkia liitäntäliitintä tälle epätavalliselle NES-pistokkeelle, miksi huolehtia pinoutista? Luultavasti katkaisin alkuperäisen pistokkeen irti ja vaihdoin sen DB-9: een, ja johdin sen sopivaksi.
Neljä vastused:
Andrew S. Parnell
2009-11-07 04:08:34 UTC
view on stackexchange narkive permalink

NES Pad -kirjastossa ei ole vain pinoutia, vaan se on loistava arduino-luokka NES-ohjaimen käyttöä varten.

davr
2009-11-03 00:00:04 UTC
view on stackexchange narkive permalink

Tässä on toinen sivu hyödyllisiä tietoja, mukaan lukien signaalikaavio.

  + ---- > Power (valkoinen) | 5 + ---- ----- + 7 | x x o \ | o o o o | 4 + ------------ + 1 | | | | | | | + -> Maa (ruskea) | | + ---- > Pulse (punainen) | + ------- > Salpa (oranssi) + ---------- > Data (keltainen)  
Michael Eakins
2010-11-04 05:30:13 UTC
view on stackexchange narkive permalink

Löysin upean artikkelin Hack-A-Daystä, jossa kerrotaan tehtäväsi. Tämä artikkeli koskee SNES-ohjaimen liittämistä Androidiin, joka käyttää Arduinoa. Säästääksesi artikkelin seulonnan ongelmat, löysin heidän mainitsemansa linkitetyn koodin:

Tämä koodi käyttää vanhan koulun 1980-luvun NES-ohjainta ohjaamaan servoa ja LEDiä Arduino. Tällä koodilla 'ylös' -tyyny kääntää servon 180 asteeseen, 'oikea' kääntää sen 90 ja 'alas' kääntää sen 0 asteeseen. Myös A- ja B-painikkeet kytkevät LEDin päälle ja pois päältä. Voit hankkia NES-ohjaimen ebaystä alle 10 dollaria. Tässä on karkea piirros ohjaimen pistokkeesta, neljä reikää toisella puolella, kolme reikää toisella.


 0 - 0v (maa ) + 5V --- 0 0 --LUKITTU mitään --- 0 0 --SALKAA mitään --- 0 0 --SARJALÄHTÖ 

Voit vain pistää johdot ohjaimen pistokkeen reikiin prototyyppien tekoon. +5 on kytketty Arduino +5 -maadoitukseen. Arduino-maasalpa menee nastalle 2 (tällä koodilla) Kello nastalle 3 Sarjaliitäntä nastalle 4. ja LED palaa nastassa 11.

Jos haluat nähdä ohjaimen tulon sarjamoduulissa, avaa vain sarjamittari. Se näyttää ohjaimesta tulevat binääriluvut. Jokaisella painikkeella on oma binäärinumero. 'Ylös' on esimerkiksi 11110111. Lisäsin // piilotetun Serial.println-koodin, joka näyttää "Painiketta on painettu", jos painat käynnistyspainiketta. Poista vain //, jos haluat käyttää sitä. SNES-pistoke on erilainen, olet kiinnostunut siitä, että joudut etsimään muualta kelloa, salpaa, sarjalähtöä.

Lainaus :

  / * ALUSTAMINEN * / # sisältää <ServoTimer1.h>ServoTimer1-servo1; int salpa = 2; // aseta salvan pinint-kello = 3; // aseta kellotappi
int datin = 4; // aseta tiedot pinbyte controller_data = 0; int ledpin = 11; / * SETUP * / void setup () {Serial.begin (57600); pinMode (salpa, OUTPUT); pinMode (kello, OUTPUT) ); pinMode (datin, INPUT); pinMode (ledpin, OUTPUT); digitalWrite (salpa, HIGH); digitalWrite (kello, HIGH); servo1.attach (10);} / * LUE TÄMÄN OHJAIMEN TIEDOT * / void controllerLue () {controller_data = 0; digitalWrite (salpa, LOW); digitalWrite (kello, LOW); digitalWrite (salpa, HIGH); delayMikrosekunnit (2); digitalWrite (salpa, LOW); controller_data = digitalRead (datin); for (int) i = 1; i < = 7; i ++) {digitalWrite (kello, HIGH); delayMikrosekunnit (2); controller_data = controller_data << 1; controller_data = controller_data + digitalRead (datin); delayMicroseconds (4); digitalWrite LOW);}} / * LED-, SERVO- JA SARJANÄYTTÖOHJELMA * / void loop () {controllerRead (); Serial.println (controller_data, BIN); // if (controller_data == B11101111) {// Sarja. println ("Painiketta on painettu"); //} else {//Serial.println("Nappia ei paineta "); //} // viitteeksi: // UP = 11110111 // DOWN = 11111011 // VASEN = 11111101 // OIKEA = 11111110 // SELECT = 11011111 // START = 11101111 // A = 01111111 // B = 10111111if (controller_data) == B01111111) {digitalWrite (ledpin, HIGH); } if (controller_data == B10111111) {digitalWrite (ledpin, LOW);} if (controller_data == B11110111) {servo1.write (180);} if (controller_data == B11111011) {servo1.write (0);} jos (controller_data == B11111110) {servo1.write (90);} viive (100);}  

Arduino SNES Instructable



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 2.0-lisenssistä, jolla sitä jaetaan.
Loading...