Arduino lehetővé teszi az Atari 2600 és a ZX spektrum használatát NES vezérlő használatával: 4 lépés (képekkel)

Arduino lehetővé teszi az Atari 2600 és a ZX spektrum használatát NES vezérlő használatával: 4 lépés (képekkel)

Tartalomjegyzék:

Anonim

Ez az útmutatás megmutatja, hogyan használhatja a NES vezérlőt az Atari 2600 vagy a ZX Spectrum (a Kempston Interface) segítségével egy Arduino segítségével.

kellékek:

1. lépés: Háttér beszélgetés

Nemrég megvásároltam néhány Atari 2600-at és egy csomó joystickot. Mindkét konzol működött, de az 5 joystick mindegyikét megrongálta. Sőt, nagyon könnyű megtalálni. Egy régi Atari 2600 konzolt könnyű megtalálni, de nehéz megtalálni az eredeti joystick-ot hasznos állapotban.

Másrészt, volt egy tartalék NES „generikus” vezérlője, aki egy tökéletesen működő bolhapiacon vásárolt.

Arra gondoltam, hogy egy mikrovezérlőt használunk a NES joystick-ban lévő sorosított jelek átalakítására az Atari 2600 által igényelt párhuzamos jelekre, de akkor azon tűnődtem, hogy ha egy egyéni mikrokontrolltábla helyett egy Arduino-t használnék. Tehát más, sok elektronikai készséggel nem rendelkező ember könnyen összeállíthatja saját adaptereit.

2. lépés: A nagy áramkör

Az áramkör csak az Arduino-t és egy pár csatlakozót használja. A kód nagyon kicsi, így minden Arduino tábla meg fog tenni. De itt mindkettő követi a listát.

Darabjegyzékben:

- 1 Arduino (bármelyik verzió)

- 2 db DB-9 férfi csatlakozó. Az egyik a NES általános vezérlőjéhez, a másik pedig a tesztdonglehez

- 1 db DB-9 női csatlakozó, az Atari csatlakozásához.

- 5 db a tesztdonglehez

- 5 ellenállás 330 Ohm 1/4 Watt a teszt dongle számára

- Egy csomó vezeték

Természetesen lehetséges a régi Atari Joystick kábel újrafelhasználása a DB9 női plusz vezetékek helyett.

Lehetőség van a NES vezérlő kábelének vágására is, és közvetlenül csatlakoztatható az Arduino-hoz, de meg kell határoznia a vezetékek vezetékeit.

3. lépés: Az Arduino programozása és néhány teszt elvégzése

Fordítsa össze és töltse fel az alábbi kódot az Arduino-ba. Az IDE 0.22-es verziójával készült. Mielőtt összekapcsolná az áramkört az ATARI használatával, használjon egy Dongle-t, hogy ellenőrizze az áramkör helyes viselkedését. A dongle-ben lévő ledeket a NES vezérlő gombjainak megfelelően kell aktiválni. Mindkét akciógomb azonos (és egyetlen) Atari gombbal van leképezve. A dongle teszteléséhez szükséges az Arduino kártyát.

//

// ATARI 2600-as játék a NES vezérlővel Danjovic, 2012

// Arduino-ról 0,22

//

/*

ATARI 2600 Joystick

Az Atari 2600 Joystick szekvenciálisan aktiválja az alábbi utasításokat

FEL, LE, LE, JOBB, JOBBRA

AZ ATARI JOYSTICK CSATLAKOZTATÁSA

Funkció DB-9 Arduino AVR

UP 1 pin 2 (PD2)

DOWN 2 pin 3 (PD3)

LEFT 3 pin 4 (PD4)

JOBB 4 pin 5-ös (PD5)

+ 5VCC 5 + 5V + Vcc

TRIGGER 6 Pin 6 (PD6)

GND 9 GND GND

*/

/*

NES vezérlő

Tartalmaz egy CMOS Shift regisztert (CD4021). Adatcsere az Óra emelési határán

gombsorozat az alábbiak szerint.

retesz ___ --- _______________________

Óra _______-__-__-__-__-__-__-__

Adatok xxxA B SL ST UP DW LF RG

A NES vezérlőt az Arduino biztosítja.

Funkció DB-9 Arduino AVR

DATA 2 Pin 8 (PB0)

LATCH 3 Pin 9 (PB1)

CLOCK 4 Pin 10 (PB2)

+ 5VCC 7 pólus 11 (PB3)

GND 8 Pin 12-es (PB4)

*/

// alkalmazkodni a hardver konfigurációhoz

#define POWER_VIA_PORT_B3_B4 1 // használja a B3 és B4 porttűzeket tápegységként

#undef int

#include

/ * Atari Joystick port csatlakozások * /

int Up_Pin = 2;

int Down_Pin = 3;

int Left_Pin = 4;

int Right_Pin = 5;

int Trigger_Pin = 6;

/ * NES vezérlő kapcsolatok * /

int Data_Pin = 8;

int Latch_Pin = 9;

int Clock_Pin = 10;

int PWR5V_Pin = 11; // erő

int PWRGND_Pin = 12;

érvénytelen beállítás ()

= _BV (PORTB3)

// Végezzen egy óra ciklust a NES-vezérlő órarendjén

void do_clock (void) {

digitalWrite (Clock_Pin, HIGH); // Emelje fel az óra csapját

delayMicroseconds (10); // 10 mikroszekundumra szünetel

digitalWrite (Clock_Pin, LOW); // kikapcsolja a csapot

delayMicroseconds (50); // további 10 mikroszekundumot szüneteltet

}

/*

Itt van a fő hurok. Kinyomtat egy retesz impulzust, majd elkezdi a gombok állapotát.

Az Atari joystick port csapjai a váltásból olvasott bitek állapotának megfelelően vannak beállítva

regisztráljon a NES vezérlőn belül.

*/

érvénytelen hurok ()

{

digitalWrite (Latch_Pin, HIGH); // Emelje fel a reteszjelet

delayMicroseconds (30); // 30 mikroszekundumig tartsa

digitalWrite (Latch_Pin, LOW); // A reteszjelet alacsony szintre állítja vissza

delayMicroseconds (10); // több 10 mikroszekundumig tartsa

// Folyamat gomb A (ne feledje: egy nulla eszköz megnyomása)

ha (digitalRead (Data_Pin))

{

pinMode (Trigger_Pin, INPUT); // Szüntesse meg a PIN-kódot (a nulla gomb megnyomása)

}

más

{

pinMode (Trigger_Pin, OUTPUT); // Tűz jelzése

}

do_clock (); // Minden bit végén egy impulzus jön létre

// Folyamatgomb B // Mindkét NES gomb triggert hoz létre az Atari számára

ha (digitalRead (Data_Pin))

{

pinMode (Trigger_Pin, INPUT); // Csatolás megszüntetése

}

más

{

pinMode (Trigger_Pin, OUTPUT); // Tűz jelzése

}

do_clock ();

// Átugrani a választógombot

do_clock ();

// Indítsa el a Start gombot

do_clock ();

// UP irány

ha (digitalRead (Data_Pin))

{

pinMode (Up_Pin, INPUT); // Csatolás megszüntetése

}

más

{

pinMode (Up_Pin, OUTPUT); // Tűz jelzése

}

do_clock ();

// Folyamat lejtése

ha (digitalRead (Data_Pin))

{

pinMode (Down_Pin, INPUT); // Csatolás megszüntetése

}

más

{

pinMode (Down_Pin, OUTPUT); // Tűz jelzése

}

do_clock ();

// FELÜLET irányítása

ha (digitalRead (Data_Pin))

{

pinMode (Left_Pin, INPUT); // Csatolás megszüntetése

}

más

{

pinMode (Left_Pin, OUTPUT); // Tűz jelzése

}

do_clock ();

// Jobb irány

ha (digitalRead (Data_Pin))

{

pinMode (Right_Pin, INPUT); // Csatolás megszüntetése

}

más

{

pinMode (Right_Pin, OUTPUT); // Tűz jelzése

}

do_clock (); // Biztosan használhatatlan, de megtartják a mintát

// Minden gomb elolvasása után várjon 10 milissecondot a következő olvasat előtt

késleltetés (10);

}

4. lépés: Játék!

Most, hogy az áramkört a dongle segítségével teszteltük, csatlakoztathatjuk az Atari-hoz. Az Arduino kártyát ezután a joystick csatlakozója táplálja (ezért nincs szükség külső tápellátásra).

Élvezze a konzolt az új vezérlővel.