Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga

phanick 24 Jan 2021 15:20 2868 13
  • Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Motywacja
    Naprawiając różnego rodzaju joysticki od konsol retro, niezbędną potrzebą była diagnoza stanu takiego urządzenia. Każdorazowe wyciąganie innej konsoli z szuflady, podłączanie do niej kontrolera, włączanie TV, szukanie odpowiedniego kartridża z grą, aby móc przetestować wszystkie przyciski spędzało sen z powiek i sprawiało, że w pokoju powstawała alternatywna organizacja przestrzeni (czytaj: burdel). Pomysł stworzenia dedykowanego urządzenia do wykonywania tych wszystkich czynności okazał się rzeczą niezbędną. Głównym założeniem było było, aby móc do niego podłączyć nie tylko joystick z konsol typu Pegasus/Sega/C64, ale też np. pistolet oraz kilka innych funkcji

    Pierwsze kroki
    Dawno, dawno temu zrobiłem takie urządzenie i opisałem je tu: https://www.elektroda.pl/rtvforum/topic3116946.html
    Wykonanie było maksymalnie uproszczone (mikrokontroler, wyświetlacz, jeden przycisk, gniazdo) do tego stopnia, że nawet nie było w nim gniazda zasilania, a całość pobierała prąd przez złącze programatora. Z uwagi na maksymalne wykorzystanie pinów mikrokonrolera, w urządzeniu był tylko jeden przycisk, który pełnił zarówno funkcję zmiany wyboru (szybkie wciśnięcie) jak i akceptacji (długie wciśnięcie), co mogło być trochę nieintuicyjne. Wreszcie, creme de la creme tej prowizorki był sposób podłączenia wyświetlacza siedmiosegmentowego: sterowanie bezpośrednio z mikrokonrolera (bez tranzystorów, tylko jeden rezystor na każdą cyfrę) ograniczał maksymalny prąd (a przez to jaskrawość) oraz powodował różną jasność świecenia w zależności od ilości zapalonych segmentów (aczkolwiek nie było to aż tak widoczne). Konieczność sięgania do szuflady każdorazowo po programator w celu zasilenia urządzenia skutecznie doprowadziły mnie do furii. Aż w końcu czara się przelała i powstała nowa wersja.
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga

    Druga wersja
    W obecnej wersji postanowiłem skupić się na naprawie mankamentów z poprzedniej wersji oraz dodaniu nowych funkcjonalności:
    * zasilanie z portu USB przez kabel mini USB - możliwość podłączenia zarówno do PC jak i np. powerbanku czy telefonu (przez kabel USB HOST) i używanie urządzenia w terenie (np. gdy idziemy na bazar coś kupić). I chociaż gniazdo mini nie jest tak popularne jak micro, a przez to trudniej o taki kabel, to jednak jest ono dużo bardziej wytrzymałe i dlatego zawsze używam je w swoich projektach. O ile urwane gniazdo micro w telefonach to chyba chleb powszedni, to czy widział ktoś kiedyś wyrwane gniazdo mini?
    * zmiana sposobu sterowania wyświetlacza na "zgodny ze sztuką",
    * wymiana mikrokontrolera atmega8 z wersji DIP28 na QFP32 - raz że tańszy, dwa - mniejszy, a trzy - dzięki temu zyskałem dwa dodatkowe piny (ADC6/ADC7),
    * dodanie dwóch osobnych przycisków (OK/ZMIANA) oraz przycisk RESETu, który wraca do głównego menu. Z uwagi na brak wolnych pinów, oba przyciski są podłączone za pomocą drabinki rezystorowej do pojedynczego wejścia analogowego ADC6
    * dodanie gniazda 15 pin (joypady od konsol IQ502/Terminator), 7 pin (NES), 7 pin (Famicom), 5 pin (znajdowanie kolejności wyprowadzeń na płytkach joypadów),
    * dodanie opcji testowania pistoletów !!,
    * dodanie opcji testera ciągłości przewodów.
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga


    Możliwości
    Za pomocą przycisku FUNCTION wybieramy jedną z kilku oferowanych funkcjonalności:

    1. C6 - C64/Atari/Amiga joypad test
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Sprawdzenie działania klawiszy na joypadach od konsoli C64/Atari/Amiga (9 pin) lub innych (o których nie słyszałem, a wykorzystują ten sam protokół).

    * Na pierwszym wyświetlaczu zapala się nazwa wciśniętego przycisku (U/D/L/R/B)
    * Na drugim wyświetlaczu zapalą się segmenty odpowiadające danemu przyciskowi (jeśli ten został wciśnięty) wg rozpiski poniżej - przydane do testowania kombinacji klawiszy:
    Code:

     BTN
    .   .
      U
    L   R
      D


    Opis działania joypada:
    Tego typu joysticki zawierają trzy (lub cztery) przyciski kierunkowe (U/D/L/R) oraz jeden przycisk strzału (FIRE). Każdemu przyciskowi odpowiada oddzielna linia w złączu, a w środku nie ma żadnej elektroniki - wciśnięty przycisk zwiera po prostu odpowiednie pole stykowe do masy. Czasami zdarzają się wersje z dwoma przyciskami - wtedy ten drugi pełni funkcję turbo (a w środku jest dodatkowa elektronika - generator sygnału prostokątnego)

    Code:

                                  1 |  UP
             1 2 3 4 5            2 |  DOWN
           +------------+         3 |  LEFT
           \ o o o o o /          4 |  RIGHT
            \ o o o o /           5 |  ANALOG Y             
             +-------+            6 |  FIRE
              6 7 8 9             7 |  +5V
    (widok na gniazdo w konsoli)  8 |  GND
                                  9 |  ANALOG X

    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga




    2. SE - SEga joypad test
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Sprawdzenie działania klawiszy na joypadach od konsoli SEGA (9 pin). Przycisk FUNCTION zmienia sposób prezentacji na jeden z dwóch poniższych:
    * U/D/L/R/A/B/C/X/Y/Z/St/Mo - na wyświetlaczu pojawi się nazwa wciśniętego przycisku (gdy wciśnięte jest kilka - pojawi się tylko jeden)
    * n wyświetlaczu zapalą się segmenty odpowiadające danemu przyciskowi (jeśli ten został wciśnięty) wg rozpiski poniżej - przydane do testowania kombinacji klawiszy:
    Code:

      U         Y
    L   R     X   Z
      D         B
    .   .     A   C
     STA       MOD


    Opis działania joypada:
    Oryginalne joysticki składają się z czterech przycisków kierunkowych (U/D/L/R), trzech przycisków ogólnych (A/B/C) oraz przycisku START. Stworzenie osobnej linii dla każdego przycisku wymagałoby zastosowania większej wtyczki, dlatego zdecydowano na dodanie multipleksera w padzie (np. układ 74157), a sygnał SELECT określa, stan których przycisków jest wystawiany. Warto zwrócić uwagę, że stan na pinach 3 i 4 wynosi 0V gdy zelect=0 - może to być używane np. do wykrywania, czy pad jest w ogóle podłączony do konsoli.

    Code:

                                  1 |                   UP
             1 2 3 4 5            2 |                 DOWN
           +------------+         3 |   LEFT (SELECT=1) ,    0V (SELECT=0)
           \ o o o o o /          4 |  RIGHT (SELECT=1) ,    0V (SELECT=0)
            \ o o o o /           5 |                  +5V                 
             +-------+            6 |      B (SELECT=1) ,     A (SELECT=0)
              6 7 8 9             7 |                 SELECT
    (widok na gniazdo w konsoli)  8 |                  GND
                                  9 |      C (SELECT=1) , START (SELECT=0)

    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga

    W późniejszym okresie pojawiły się też joysticki z dodatkowymi przyciskami X/Y/Z oraz MODE.
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Aby zachować zgodność z oryginalnymi kontrolerami, zdecydowano na następujące, dość ciekawe rozwiązanie:
    * Większość gier odpytuje stan joysticka raz na klatkę obrazu (co 20ms w wersji NTSC) co oznacza, że linia SELECT też musi zmieniać swój stan raz na klatkę
    Code:

    klatka |---1--------|---2--------|---3--------|
    SELECT  __---__________---__________---________


    * Joystick może znaleźć się w 8 różnych stanach (S1, S2, .., S8)
    * Przejście do następnego stanu następuje wraz ze zmianą poziomu na linii SELECT
    * Gdy poziom na linii SELECT utrzymuje się dłużej niż 1.5 ms, następuje wrócenie do stanu początkowego (S1)
    * W stanach S1, S2, S3, S4 joystick zwraca dane o przyciskach tak 3 przyciskowa wersja
    * W stanach S5, S6 joystick zwraca informacje, że ma dodatkowe przyciski (**) oraz stan tych przycisków, wg tabelki poniżej:
    Code:

    STAN | SELECT | PIN1 | PIN2 | PIN3 | PIN4 | PIN6 | PIN9
    -----+--------+------+------+------+------+------+------
     S1  |   0    |  U   |  D   |  0   |  0   |  A   | START
     S2  |   1    |  U   |  D   |  L   |  R   |  B   | C
     S3  |   0    |  U   |  D   |  0   |  0   |  A   | START
     S4  |   1    |  U   |  D   |  L   |  R   |  B   | C
     S5  |   0    |  **  |  **  |      |      |      |          (** = 0V)
     S6  |   1    |  Z   |  Y   |  x   | MODE |      |
     S7  |   0    |      |      |      |      |      |
     S8  |   1    |      |      |      |      |      |





    3. PE - PEgasus joyad test
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Sprawdzenie działania klawiszy na joypadach Pegasus(9 / 15 pin) lub NES (7 pin). Przycisk FUNCTION zmienia sposób prezentacji na jeden z dwóch poniższych:
    * U/D/L/R/Se/St/A/B - na wyświetlaczu pojawi się nazwa wciśniętego przycisku (gdy wciśnięte jest kilka - pojawi się tylko jeden)
    * Na wyświetlaczu zapalą się segmenty odpowiadające danemu przyciskowi (jeśli ten został wciśnięty) wg rozpiski poniżej - przydane do testowania kombinacji klawiszy:
    Code:

       U         .
     L   R     .   .
       D         .
     .   .     B   A
      SEL       STA


    Opis działania joypada:
    Oryginalne kontrolery od konsoli NES mają 4 przyciski kierunkowe (U/D/L/R), SELECT, START, B oraz A, a pady od klonów (Pegasus) mają dodatkowe przyciski TURBOA i TURBOB.
    Czasami obecny jest też przycisk C (którego wciśnięcie daje efekt wciśnięcia przycisków A i B na raz) oraz X (czyli TURBO C). Protokół komunikacji składa się z trzech linii - STROBE, CLOCK, DATA:
    * Joystick posiada rejestr przesuwny (układ 4021)
    * Opadające zbocze na linii strobe powoduje zapamiętanie w rejestrze stanu wszystkich przycisków, a na linii data pojawia się stan przycisku A
    * Kolejne zbocza narastające na linii CLOCK powodują wystawianie na linii DATA stanu kolejnych przycisków w kolejności: B, SELECT, START, UP, DOWN, LEFT, RIGHT
    * W przypadku dalszych zboczy na linii CLOCK, stan na linii data nie jest sprecyzowany, tzn. zależy od tego, do czego podłączona jest linia SI (Serial Input) układu 4021. W joystickach od klonów, które zamiast tego układu posiadają zalaną strukturę, zachowanie może być różne. Jest to o tyle ciekawe, że mogłoby być użyte do wykrywania obecności joysticka.
    Uwaga: w konsoli jest bufor odwracajacy wartość linii DATA, więc stan wciśniętego przycisku, który zwraca joystick jako niski jest odczytywany przez konsolę jako wysoki

    Code:

                                             
             1 2 3 4 5         1 2 3 4 5 6 7 8       +---+                 9p 15p  7p
           +------------+    +-----------------+   1-| o  \        DATA    2    8   4
           \ . o o o . /     \ o . . . . . . o /   2-| o o |-7     STROBE  3   12   3
            \ o . o . /       \ o . . o . . o /    3-| o . |-6     CLOCK   4    9   2
             +-------+         +-------------+     4-| o . |-5     +5V     6   15   7
              6 7 8 9           9 1 1 1 1 1 1        +-----+       GND     8    1   1
                                  0 1 2 3 4 5
               9 pin                15 pin            7 pin
          (-------------widok na gniazdo w konsoli-----------)
        
    STROBE   _+---+_______________
    CLOCK    __________+---+____+---+____+---+____+---+____+---+____+---+____+---+____+---+____
    DATA     -----| A  | B      | SELECT | START  | UP     | DOWN   | LEFT   | RIGHT  |

    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga



    4. SN - SNes joypad test
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Sprawdzenie działania klawiszy na joypadach SNES (7 pin). Przycisk FUNCTION zmienia sposób prezentacji na jeden z dwóch poniższych:
    * U/D/L/R/Se/St/TL/TR/A/B/X/Y - na wyświetlaczu pojawi się nazwa wciśniętego przycisku (gdy wciśnięte jest kilka - pojawi się tylko jeden)
    * wyświetlaczu zapalą się segmenty odpowiadające danemu przyciskowi (jeśli ten został wciśnięty) wg rozpiski poniżej - przydane do testowania kombinacji klawiszy:
    Code:

      U         . 
    L   R     X   A
      D         . 
    TL TR     Y   B
     SEL       STA



    Opis działania joypada:
    Joystick posiada cztery dodatkowe przyciski (X, Y, TL, TR), a protokół komunikacji jest identyczny jak w joypadach NES/Pegasus. Wewnątrz jest drugi rejestr przesuwny, połączony szeregowo z pierwszym, a odczyt stanu "dodatkowych" przycisków następuję w trakcie dodatkowych zboczy zegarowych.

    Code:

                                             
             1 2 3 4   5 6 7         1 +5V
           +---------+------\        2 CLOCK
           | o o o o | o o o )       3 STORBE4 
           +---------+------/        4 DATA
       (widok na gniazdo w konsoli)  7 GND
                                   
    STROBE   _+---+_______________
    CLOCK    __________+-+__+---+____+---+____+-+__+--+___+--+___+---+____+---+____+-+__+-+__+-+__+-+__+-+__+-+__+-+__+-+__+
    DATA     -----| B  | Y  | SELECT | START  | UP | DOWN | LEFT | RIGHT  | RIGHT  | A  | X  | TL | TR | 1  | 1  | 1  | 1  |

    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga



    5. PI - PIstol test
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Sprawdzenie działania pistoletu od konsol typu Pegasus (9 / 15pin) lub NES (7 pin). W testerze zacznie jasno migać dioda.
    * Na pierwszym wyświetlaczu zapali się napis T (Trigger), gdy spust w pistolecie zwiera do masy (*)
    * Na drugim wyświetlaczu zapali się napis L (Light), gdy pistolet będzie celował w migającą diodę
    (*) Niektóre pistolety zwierają spust do masy, inne do zasilania.

    Opis działania pistoletu:
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Sposób działania pistoletu świetlnego zna chyba każdy - w momencie wciśnięcia spustu, ekran w TV robi się cały czarny z wyjątkiem miejsca, do którego powinno się trafić - tam pojawia się biały prostokąt. Konsola odczytuje z pistoletu czy ten wskazuje w danej chwili na jasny czy ciemny punkt i na tej podstawie decyduje, czy zaliczyć strzał czy nie. Ale jak to jest zbudowane? Pistolet składa się z dwóch osobnych elementów, podłączonych do różnych linii:
    * spustu - czyli przycisku, który zwiera do masy, a jego wciśnięcie powoduje rozwarcie (zależy to od konkretnego egzemplarza; kod w grach nie sprawdza stanu logicznego na tej linii, tylko jej zmianę)
    * fotodiody, czyli elementu optycznego, spolaryzowanego zaporowo, która po oświetleniu zmniejsza kilkukrotnie swoją rezystancję (między fotodiodą a wyjściem lufy jest jeszcze soczewka dwuwypukła, która skupia obraz z większej odległości). 99% pistoletów wygląda jak poniżej:
    - linią sensor steruje tranzystor (w roli klucza nasyconego), normalnie nasycony (czyli kolektor ściąga do masy).
    - w momencie gdy dioda zostanie oświetlona, jej rezystancja spada, napięcie na niej się zmniejsza. Ten skok napięcia przenoszony jest na bazę tranzystora za pomocą kondensatora, który na chwilę zatyka tranzystor (kolektor przestaje zwierać do masy).
    - wartości elementów C1/R1/R2 mogą się różnić w różnych modelach, skutkując dłuższą (lub krótszą) zmianą stanu po oświetleniu fotodiody, jednak chwilę po oświetleniu kolektor znów zwiera do masy, bo sprzężenie jest AC. Zatem można już teraz obalić słynny mit, że wystarczy ciągle celować na źródło światła, aby zawsze trafiać kaczkę (pomijając to, że gra i tak pewnie zabezpiecza się przed takim oszustwem sprawdzając, czy pistolet wskazuje na coś czarnego w momencie przed wyświetleniem białego prostokąta)
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Code:

             1 2 3 4 5         1 2 3 4 5 6 7 8       +---+                  9p 15p 7p
           +------------+    +-----------------+   1-| o  \        TRIGGER   5   4  5
           \ o . . . o /     \ o . . o o . . . /   2-| . o |-7     SENSOR    1   5  6
            \ o . o . /       \ . . . . . . o /    3-| . o |-6     +5V       6  15  7
             +-------+         +-------------+     4-| . o |-5     GND       8   1  1
              6 7 8 9           9 1 1 1 1 1 1        +-----+       
                                  0 1 2 3 4 5
               9 pin                15 pin            7 pin
          (-------------widok na gniazdo w konsoli-----------)


    Ciekawostka 1:
    Jedyny pistolet jaki znam, ktory ma bardziej rozbudowany sposób detekcji to Casel - tam w torze detekcji jest nawet jakaś cewka (nie analizowałem działania tego, ale słyszałem, że na niektórych TV ten pistolet sprawia problemy podczas gdy inne, proste pistolety, działają). Dodatkowo jest też ciekawy układ, którego zadaniem jest odegranie dźwięku wystrzału po wciśnięciu spustu.

    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga

    Ciekawostka 2:
    Zanim stworzyłem obecną wersję testera, aby sprawdzić działanie pistoletu napisałem prosty program (grę) na kartridż, która wyświetla stan linii TRIGGGER oraz SENSOR. Następnie świeciłem lampką rowerową w lufę i sprawdzałem reakcję. Moja lampka ma trzy tryby świecenia:
    * jaśniejszy
    * ciemniejszy
    * miganie co pół sekundy.
    Tryb jaśniejszy i miganie działały zgodnie z oczekiwaniem, natomiast tryb "ciemniejszy" powodował bardzo szybką zmianę stanu wejścia SENSOR. Najpierw myślałem, że może poziom światła jest na granicy czułości fotodiody i ta jest przez to niestabilna. Rozwiązanie zagadki okazało się jednak dużo prostsze - w trybie "ciemniejszym" lampka rowerowa bardzo szybko włącza i wyłącza się (PWM, z częstotliwością kilohertzów). Ludzkie oko uśrednia to oczywiście, ale fotodioda w pistolecie potrafi to wykryć.



    6. WI - WIre continuity test
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Sprawdzenie ciągłości - przydatne do testowania ciągłości przewodów od joysticków, pistoletów, itp.
    * Jeden koniec przewodu podłączamy do szpilki "1", a drugi do "2".
    * Jeśli nie ma przerwy, dioda się zapali, a na wyświetlaczu pojawi się napis "OK"



    7. F5 - Find 5 wires
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga
    Ten test służy do odszyfrowania połączeń na płytce od pada typu Pegasus, gdy np. urwały nam się przewody. Jak już wcześniej zostało wspomniane, płytki tego typu posiadają 5 pól do przylutowania przewodów:
    * GND (masa)
    * VCC (zasilanie, +5V)
    * DATA (szeregowa linia danych)
    * CLK (sygnał zegarowy wystawiający stan kolejnych przycisków: A B Select Start Up Down Left Right)
    * STRB (sygnał stroba resetujący rejestr w padzie do pozycji A);
    * czasami jest jeszcze 6 pole do gniazda słuchawkowego
    Niestety ich kolejność na różnych płytkach jest w zasadzie dowolna, stąd przylutowanie przewodów "na chybił trafił" może zakończyć się uszkodzeniem (jeśli nie mamy szczęścia), całkowitym niedziałaniem albo działaniem błędnym. Ten test wykrywa, które pole stykowe za co odpowiada.

    Jak to działa:
    * sondę GND należy przyczepić do masy na płytce pada (masa jest łatwa do odnalezienia, bo przechodzi przez wszystkie 6 przycisków: UP, DOWN, LEFT, RIGHT, SELECT, START, B, A)
    Tester do joypadów Pegasus / Sega / C64 / Atari / Amiga

    * Sondy 1,2,3,4 przyczepić do pozostałych pól w dowolnej kolejności
    * Na wyświetlaczu pojawi się napis LL informujący, że należy wcisnąć (i trzymać) przycisk L na padzie. Następnie wciskamy przycisk OK.
    * Jeśli pojawi się napis ER (Error) - tester nie potrafił znaleźć odpowiedniej kolejności (płytka jest najprawdopodobniej uszkodzona)
    * Jeśli pojawi się napis OK - tester odnalazł odpowiednią kolejność. Wciskamy przycisk OK - wyświetli się kolejność znalezionych sygnałów, np. 1C 2D 3S 4V oznacza, że: pod sondą 1 jest CLOCK, pod 2 jest DATA, pod 3 jest STROBE, pod 4 jest zasilanie.
    * Kolejne wciśnięcie przycisku OK powoduje, że teraz możemy przetestować działanie wszystkich przycisków (jak w teście PE)

    Ciekawostka 1:
    Miszmasz w sposobie połaczeń jest nawet taki, że płytka do tego samego joysticka (quickshoot, od konsoli MT777DX, widoczna na zdjęciu powyżej) występowała w kilku wersjach, różniących się oznaczeniem i koklejnością pól stykowych:
    Code:

    plytka | pola stykowe (od lewej do prawej)
    -------|-----------------------------------      
    S051   | +5V STROBE CLOCK DATA   GND
    F112   | +5V STROBE CLOCK DATA   GND
    S046   | +5V DATA   CLOCK STROBE GND


    Dalsze usprawnienia (do następnej wersji)
    * dodanie obsługi 15 pinowych padów typu GAMEPORT (używanych w latach 90-tych, podłączanych do kart dźwiękowych w PC-ach)
    * dodanie opcji znajdowania miejsca pęknięcia w kablu - często przyczyną niedziałania joysticka jest pęknięta jedna (lub więcej) żył. W 60% pęknięcie następuje tuż przy wtyczce, w 30% przy padzie a w reszcie przypadków - gdzieś po środku. Miejsce pęknięcia bardzo łatwo znaleźć zwykłym multimetrem, gdy ten wyposażony jest w miernik pojemności:
    1) nalezy odlutować przewód od płytki
    2) szukamy dwóch żył, które są sprawne i badamy pojemność między nimi Cgood) (będą to dziesiątki pF)
    3) następnie badamy pojemność między sprawną a niesprawną żyłą (Cbad). Stosunek Cbad/Cgood określi w przybliżeniu miejsce pęknięcia (np. 0.5 będzie oznaczało że pęknięcie jest dokładnie w połowie przewodu)
    Celem jest pozbycie się multimetru i automatyzacja tego za pomocą testera.


    Link

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    phanick
    Level 28  
    Offline 
  • Multimetr FlukeMultimetr Fluke
  • #2
    Gizmoń
    Level 28  
    phanick wrote:
    Sposób działania pistoletu świetlnego zna chyba każdy - w momencie wciśnięcia spustu, ekran w TV robi się cały czarny z wyjątkiem miejsca, do którego powinno się trafić - tam pojawia się biały prostokąt. Konsola odczytuje z pistoletu czy ten wskazuje w danej chwili na jasny czy ciemny punkt i na tej podstawie decyduje, czy zaliczyć strzał czy nie.


    Nie miałem nigdy okazji pograć na takiej konsoli, więc z ciekawości zapytam: czy to krótkie wygaszenie ekranu jest widoczne? Wydaje mi się, że na dłuższą metę byłoby bardzo denerwujące dla gracza. W C64 taki system był zrobiony dużo sprytniej i wykorzystywał fakt, że obraz na ekranie kineskopu był kreślony linia po linii. Każde przejście plamki przez dany punkt na ekranie powodowało krótki rozbłysk tego punktu. Fotodioda w pistolecie lub piórze świetlnym wykrywała te rozbłyski i zamieniała je na impulsy elektryczne, trafiające do generatora obrazu w komputerze. Generator niejako sterował położeniem plamki na ekranie, więc zawsze dobrze "znał" jej aktualne położenie. Zapisanie stanu wewnętrznych liczników generatora (zawierających aktualną pozycję x, y plamki) w chwili otrzymania impulsu z fotodiody, pozwalało na uzyskanie współrzędnych punktu wskazywanego przez pistolet lub pióro. Zrobiłem kiedyś takie pióro świetlne i muszę powiedzieć, że działało bardzo fajnie nawet na ciemnym (byle nie całkiem czarnym) ekranie. Szkoda, że w erze ekranów LCD i LED nie można już tak łatwo zrobić interfejsu tego typu :D

    phanick wrote:
    Jedyny pistolet jaki znam, ktory ma bardziej rozbudowany sposób detekcji to Casel - tam w torze detekcji jest nawet jakaś cewka (nie analizowałem działania tego, ale słyszałem, że na niektórych TV ten pistolet sprawia problemy podczas gdy inne, proste pistolety, działają).


    Wygląda na to, że jest tam obwód rezonansowy o częstotliwości z grubsza takiej, jak odchylanie poziome w TV. Może po to, by lepiej odfiltrować impulsy z kilku kolejnych linii przechodzących przez wskazywany punkt, od wywołanych obcym oświetleniem? Jeśli TV miałby odświeżanie np. 100Hz, to mogłoby to nie chcieć współpracować.
  • #3
    phanick
    Level 28  
    Wygaszenie obrazu jest tylko w momencie wciśnięcia spustu. Każda gra tak robi, chyba nikomu to nie przeszkadzał.

    Procesor w pegasusie aż tak dokładnie nie śledzi, aby być piksel w piksel z tym, co generuje procesor graficzny, inaczej musiałby na bieżąco odliczać cyckle, nie mająć czasu na inne zadania (to nie Atari, gdzie główny procesor sam wystawiał w danej chwili piksele do zapalenia).
  • Multimetr FlukeMultimetr Fluke
  • #4
    Tommy82
    Level 40  
    @phanick
    Jest jakiś sposób na zmuszenie do działania pistoletu z nowym telewizorem czy tylko "bańka"?
  • #6
    Tommy82
    Level 40  
    @phanick
    No pomysł ciekawy ale poszli na grubo :P.
    Jednak bankę zostawię dla potomnych ;P
  • #7
    SylwekK
    Level 31  
    Cieszy mnie, że wciąż są ludzie, którzy naprawiają ten stary kawałek "historii" :) Sam ostatnio naprawiłem mojego Commodore+4 (padły układy ze starości), a najbardziej zdziwił i zarazem ucieszył mnie fakt, że odzyskałem z kaset magnetofonowych i zgrałem na PC pod emulator, praktycznie wszystkie(!) gotowe programy jak i źródła w asemblerze, które kiedyś napisałem jako nastolatek (hehe, wreszcie spełniło sie marzenie z tamtych lat o pokazaniu tych wypocin całemu światu :) ). Co w tym dziwnego? Kasety mają średnio 30 lat(!) i sygnał z nich jest idealny. Nawet głowicy nie musiałem bardzo przestawiać :)
  • #8
    Pokey
    Level 17  
    phanick wrote:
    (to nie Atari, gdzie główny procesor sam wystawiał w danej chwili piksele do zapalenia).


    Cześć.
    Chciałbym, żeby jednak "nie zacierać" informacji o Atari.
    Przecież główny procesor nie zajmował się wyświetlaniem pikseli - nie miał by już czasu na nic innego. Miał dwóch pomocników ANTIC i GTIA. Program wyświetlania obrazu obrabiał ANTIC. I to on właśnie podawał pozycje tak zwanego "pióra świetlnego". Jego rejestry $D40C oraz $D40D to odpowiednio współrzędne X i Y miejsca na które aktualnie wskazuje element światłoczuły w "pistolecie".

    Pozdro.
  • #9
    Tommy82
    Level 40  
    @phanick
    Z głupoty zrobiłem testa czy czasem duckshot nie zadziała na LCD przez grabber na PC. Niespodzianek brak nie działa :P
  • #10
    phanick
    Level 28  
    Tommy82 wrote:
    @phanick
    Z głupoty zrobiłem testa czy czasem duckshot nie zadziała na LCD przez grabber na PC. Niespodzianek brak nie działa :P

    Mi działal na takim małym ekraniku LCD jak to są chyba przeznaczone do oglądania filmów w samochodzie. Podobno te prymitywne wyświetlacze nie buforują obrazu z kabla tylko od razu go puszczają na "kryształ".

    Quote:

    Chciałbym, żeby jednak "nie zacierać" informacji o Atari.

    Nie wiem o jakim konkretnie modelu mówimy, ale mówiąc atari miałem na myśli Atari 2600 i tam to właśnie tak wygląda.
  • #11
    Tommy82
    Level 40  
    @phanick
    Wyłączyłem buforowanie liczyłem że może jakimś cudem zasymuluje LCD to co dostanie na wejściu jednak nie.
    Może jeszcze pokombinuje z ustawieniami przychodzącego sygnału ale konsole to mam mega gówno nawet kartridży nie odpala..
  • #12
    phanick
    Level 28  
    Zrób prosty eksperyment. Odpal jakąś gre, która miga ekranem, podepnij się oscyloskopem do sygnału wideo oraz do wyjścia fotodiody z pistoletu i sprawdź jaki jest opóźnienie.

    W przypadku LCD oprócz opóźnienia role tez może odgrywać jasność obrazu - nie wiem jak podświetlenie oferowane przez matrycę ma się do luminoforu i wiązki elektronowej.

    Gdyby był jakiś tani sposób określenia, na co wskazuje lufa pistoletu (nie wiem - podczerwony punkt + kamera, żyroskopy) to bez problemu można byłoby to dostosować aby działało z grami Pegasusowymi
  • #13
    Tommy82
    Level 40  
    @phanick
    Uj dla mnie nie prosty bo starego oscyloskopu się dawno pozbyłem. Już jakiś czas nie bawię się w krótkofalarstwo i elektronikę, nowego nie potrzebowałem. Ale może kiedyś ;) obecnie mam inne zabawki ;).. Ale jak będę się pod koniec roku zastanawiał nad kosztami może o oscyloskopie pomyślę ;P.
    Albo skombinuje drugiego do noszenia i ogarnę z innej lokalizacji CRT bo samemu nie mam ochoty bez wózka paletowego :P
  • #14
    Pokey
    Level 17  
    phanick wrote:

    Quote:

    Chciałbym, żeby jednak "nie zacierać" informacji o Atari.

    Nie wiem o jakim konkretnie modelu mówimy, ale mówiąc atari miałem na myśli Atari 2600 i tam to właśnie tak wygląda.


    Rzuciło mi się tu w oczy C64, więc pomyślałem, że piszesz o Atari XE/XL. Ale procesor w Atari 2600 faktycznie, nie miał żadnych "pomocników".