SIO2Arduino do Atari

SIO2Arduino do Atari

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Witam wszystkich. Jest to mój pierwszy post na portalu majsterkowo.pl. Pokażę Wam dzisiaj jak zrobić Sio2Sd z wykorzystaniem Arduino. Nie jest to mój projekt, ja go tylko przerobiłem dla swoich potrzeb.

Potrzebne nam będzie:

  • Arduino UNO (ja używam klona, ponieważ ma większą możliwość podpięcia)
  • Czytnik kart SD
  • Wyświetlacz 16×2
  • kabel SIO
  • Atari (np. 130 XE)
  • Guzik typu Tact Switch
  • Rezystor 10K Ω

 

Całość wygląda tak:

20150420_213618

20150420_213852

 

 

Zabieramy się za budowę SIO!

Po pierwsze potrzebujemy kabel SIO z odpowiednimi wyprowadzeniami:

Obrazek ilustruje odbicie lustrzane kabla SIO! Nie patrzymy od strony wtyku do Atari, tylko od strony kabla!

 

sio

Nie w każdym Atari piny są tak wpięte jak potrzebujemy, dlatego lepiej rozebrać wtyczkę SIO i upewnić się jak jest podpięte. Nie odpowiadam za uszkodzenie Atari

Atari Data In  (SIO pin 3) -> Arduino digital pin 1 (TX)
Atari Ground   (SIO pin 4) -> Arduino ground (GND)
Atari Data Out (SIO pin 5) -> Arduino digital pin 0 (RX)
Atari Command  (SIO pin 7) -> Arduino digital pin 2

 

Następnie podłączamy czytnik kart SD:

Czytnik SD CS pin            -> Arduino digital pin 10
Czytnik SD DI pin            -> Arduino digital pin 11
Czytnik SD DO pin            -> Arduino digital pin 12
Czytnik SD CLK pin           -> Arduino digital pin 13
Czytnik SD 5v pin            -> Arduino 5V pin
Czytnik SD GND pin           -> Arduino GND pin

Teraz guzik:

Guzik służyć nam będzie do zmieniania gry. Podpinamy go w ten sposób do digital pin 3.

 

Ostatnią rzeczą będzie podłączenia wyświetlacza:

LCD RD pin                 -> Arduino digital pin 4
LCD EN (Enable) pin        -> Arduino digital pin 5
LCD RW pin                 -> Arduino GND pin
LCD DB4 pin                -> Arduino digital pin 9
LCD DB5 pin                -> Arduino digital pin 8
LCD DB6 pin                -> Arduino digital pin 7
LCD DB7 pin                -> Arduino digital pin 6

Ja podłączałem bez użycia potencjometru według tego schematu tylko podmieniłem wyjścia:

arduino-afficheur-lcd-2x16

 

Czas na wgranie Sketch’a!

Wszystkie modyfikacje pinów można zmieniać w pliku config.h  Do działania SIO potrzebna jest biblioteka SDFat którą dodam poniżej.

Obsługa:

  1. Na kartę pamięci wgrywamy gry i wkładamy ją do czytnika
  2. Podłączamy zasilanie do naszego SIO2Arduino i kabel SIO do Atari
  3. Guzikiem ustawiamy grę którą chcemy uruchomić
  4. Po wybraniu restartujemy Atari (koniecznie przełącznikiem umieszczonym na tylnej części Atari)
  5. Gdy Atari nam się uruchomi, gra zaczyna się ładować automatycznie

Pliki do pobrania:

Gotowy Sketch         ->     SIO2Arduino

Biblioteka SDFat     ->     SdFat

Uwagi:

  • Gry wgrywamy z rozszerzeniem “.ATR” i “.XEX” (nie wiem czy inne działają)
  • Arduino powinno mieć swoje zasilanie
  • Najpierw wybieramy grę, a potem zestartujemy atari (nie odwrotnie, równocześnie)

Kod źródłowy:

Tak jak pisałem na początku projekt nie jest mój. Ja tylko go zmodyfikowałem. Oto link do projektu: http://whizzosoftware.com/sio2arduino/

 

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Ocena: 5/5 (głosów: 1)

Podobne posty

7 komentarzy do “SIO2Arduino do Atari

  • Witam, zlozylem sobie dokladnie taki sam Sio2Arduino. Wszystko dziala, mozna grac. Problem w tym ze chcialem uzyc SDRIVE.ATR do montowania obrazow (zeby moc tez uzywac ukladu bez LCD). Program sie wczytuje ale nie widzi plikow na karcie SD. Jak jest u ciebie?

    Odpowiedz
  • Hello,
    New to Arduino, I have a problem.
    When compiling the file .ino I have these errors

    Arduino: 1.6.7 (Windows 7) Board: “Arduino / Genuino Uno”

    SIO2Arduino: 36: error: ‘getDeviceStatus’ was Not Declared in this scope

    DriveAccess DriveAccess (getDeviceStatus, readSector, writeSector, format);

    ^

    SIO2Arduino: 36: error: ‘readSector’ was Not Declared in this scope

    DriveAccess DriveAccess (getDeviceStatus, readSector, writeSector, format);

    ^

    SIO2Arduino: 36: error: ‘writeSector’ was Not Declared in this scope

    DriveAccess DriveAccess (getDeviceStatus, readSector, writeSector, format);

    ^

    SIO2Arduino: 36: error: ‘size’ was Not Declared in this scope

    DriveAccess DriveAccess (getDeviceStatus, readSector, writeSector, format);

    ^

    SIO2Arduino: 37: error: ‘GetFileList’ was Not Declared in this scope

    DriveControl DriveControl (GetFileList, mountFileIndex, ChangeDirectory);

    ^

    SIO2Arduino: 37: error: ‘mountFileIndex’ was Not Declared in this scope

    DriveControl DriveControl (GetFileList, mountFileIndex, ChangeDirectory);

    ^

    SIO2Arduino: 37: error: ‘ChangeDirectory’ was Not Declared in this scope

    DriveControl DriveControl (GetFileList, mountFileIndex, ChangeDirectory);

    ^

    exit status 1
    ‘getDeviceStatus’ was Not Declared in this scope

    Odpowiedz
  • hi, I have built sdio2arduino using Arduino Nano.
    I put in the root autorun.atr and my atari xe / gs charge him.
    but if I put in the root, examples, autorun and pacman, on fencing comapiono before autorun then pacman then reappears autorun then pacman and alternate way to infinity and I can not load them.
    if I put then autorun folder inside pacman, ex / gs charge and I see nothing to say and I open now on LCD comapare pacman.atr, because the folder there is only him.
    why he does this? Arduino one works perfectly
    I’m sorry for my english

    Odpowiedz
    • hi, I have built sdio2arduino using Arduino Nano.
      I put in the root autorun.atr and my atari xe / gs charge him.
      but if I put in the root, examples, autorun and pacman, on fencing comapiono before autorun then pacman then reappears autorun then pacman and alternate way to infinity and I can not load them.
      if I put in the root autorun then I create a folder inside pacman, ex / gs charge and I see nothing to say and I open now on LCD displays pacman.atr, because the folder there is only him.
      why he does this? Arduino one works perfectly
      I’m sorry for my english

      Odpowiedz

Odpowiedz

anuluj

Masz uwagi?