Temat: Sterowanie portem joysticka przez mikrokontroler.

Krąży mi po głowie pewien pomysł - zastanawiam się jak połączyć jakiś mikrokontroler np. Arduino z portem joysticka, aby nim sterować.
* Złącza kierunkowe i fire - tu chyba najłatwiej. Połączyć piny cyfrowe z Arduino z pinami Joya, nie wiem tylko czy bezpośrednio, czy walnąć sobie jakiś mały rezystor dla ograniczenia prądu? Inicjuje piny stanem wysokim, chcę ustawić dany kierunek => ściągam na niski
* Paddle. No właśnie, co tu mogę zrobić. Zastosować jakiegoś DACa, w wariancie "bieda" drabinka rezystorowa R-2R? Jakie są opcje?

Cel jest taki, aby zdrutować Wii Nunchucka z Atari. Bobik kiedyś miał prototyp, ale gotowego projektu nie widziałem.
Na Githubie są dw na projekty na PIC16Fxxx ale jeden nie obsługuje paddle, a drugi ma otwarty tylko design płytki, a czipa kup.

grzybson/SSG^NG

2

Odp: Sterowanie portem joysticka przez mikrokontroler.

Ustaw porty jako open drain/open collector. Nie trzeba rezystorów.
Potencjometry sa troche trudniejsze. najdokładniej jest sterowac timerami ale to wymaga nieco gimnastyki.
Nie pamietam dokładnie ale w Atari chyba dac też zadziała.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

3

Odp: Sterowanie portem joysticka przez mikrokontroler.

Potencjometr w Atari nie jest sterowany napięciem.
To jest rezystor nastawny (przypinany do portu joysticka z zewnątrz) podłączony jednym końcem do +5V, a druga końcówka idzie do Atari. Ten prąd ładuje w Atari pojemność wewnętrzną, a konwersja ADC polega na tym, że przy inicjacji (zapis do POTGO) ta pojemność jest rozładowywana do 0V, licznik POTx jest resetowany, i następuje zliczanie czasu (taktów CPU, albo linii skanningowych, czyli fcpu/114, zależnie od trybu konwersji - czy szybka, czy wolna) w którym napięcie na tej pojemności osiągnie logiczną "1". Wtedy następuje zasygnalizowanie w POTST że wartość jest gotowa.
Więc musiałbyś tam chyba sterować prądowo to wyjście.

Ostatnio edytowany przez mono (2024-03-30 12:52:47)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

4

Odp: Sterowanie portem joysticka przez mikrokontroler.

Bardzo łatwo tym się steruje stosując zamiast rezystora (potencjometru) fotoopornik. Nie fotodiodę a fotoopornik.
Połączyć jak pisze mono i oświetlać żarówką, diodą LED. Do sterowania intensywnością oświetlenia fotoopornika stosować można przysłonę, sterowanie PWM, i tym podobne. Przetwornik W Atari jak dobrze pamiętam daje odczyt od 0 do 228.
Zaleta taka że wnętrzności Atari galwanicznie oddzielone są od tego czegoś co nadaje intensywność świecenia. Można zastosować żarówkę na 220V i nic się nie stanie :) oczywiście dbając o odległość od fotoopornika

5

Odp: Sterowanie portem joysticka przez mikrokontroler.

Temat z fotorezystorem trzeba by przetestować, bo sterowanie w taki sposób faktycznie było by bardzo wygodne. Natomiast obawiam się (stąd mówię, że trzeba by przetestować) czy to by zdało egzamin w wykorzystaniu np. w sterowaniu grami, bo fotorezystory mają pewną bezwładność i zmiana rezystancji w funkcji zmiany mocy światła jest dość powolna. Trzeba by przetestować właśnie tą szybkość zmian i czy to jest użyteczne.

6

Odp: Sterowanie portem joysticka przez mikrokontroler.

A tranzystor polowy się nie nada jako fotorezystor? Rezystancja kanału zależy od napięcia bramki.

Nikt nam lekkiego życia nie obiecał i słowa dotrzymał.
8bitów ; dereatari
Apple Hadware

7

Odp: Sterowanie portem joysticka przez mikrokontroler.

Panowie, dzięki za komentarze, ale trochę odpływacie. Chciałbym zamiast potencjometru stawić coś, co mógłbym sterować jakimś mikrokontrolerem...

grzybson/SSG^NG

8

Odp: Sterowanie portem joysticka przez mikrokontroler.

Hmmm, nie robiłem takich eksperymentów.

9

Odp: Sterowanie portem joysticka przez mikrokontroler.

Grzybson, no właśnie możesz. Mikrokontroler sterować może jasnością diody LED jako nadawczej na fotoopór. Czy koniecznie mikrokontroler musi być masą połączony z masą Atari? No nie musi.

10

Odp: Sterowanie portem joysticka przez mikrokontroler.

Przeczytawszy opis Mono i "Altirra Hardware Reference manual" zaczynam rozumieć, że wejścia POTx Pokey-a nie należy traktować jaki typowego przetwornika ADC.
Znalazłem coś takiego. Jest wersja 1MOhm, a tyle chyba mają wiosełka CX30. Da radę?
https://www.analog.com/en/products/ad5242.html

grzybson/SSG^NG

11

Odp: Sterowanie portem joysticka przez mikrokontroler.

Owszem, są potencjometry cyfrowe, ale to też by trzeba przetestować po prostu. Skąd mamy to wiedzieć, skoro nikt tego nigdy nie robił w Atari?

12

Odp: Sterowanie portem joysticka przez mikrokontroler.

Robił robił: http://www.atari.org.pl/forum/viewtopic … 90#p312390

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

13

Odp: Sterowanie portem joysticka przez mikrokontroler.

Potencjometr Paddle jest włączony między pin 7 (+5V) i wejście POTn gniazda JOY. Jeden koniec ścieżki potencjometru jest podłączony do +5V, suwak do wejścia POT, a drugi koniec ścieżki jest niepodłączony.
Między pinem POTn Pokeya a pinem złącza JOY jest jeszcze posobnik 1k, który nie pozwala na zwarcie POTn z +5V (gdy suwak jest zwarty z +5V).

Kiedyś, jeszcze w końcu lat 80-tych ub. w.  zrobiłem program w Basicu, który mierzył oporność ciała ludzkiego w punktach meridianowych muszli usznej (tzw auriculotest).

Ostatnio edytowany przez jer (2024-04-04 13:12:03)

Nikt nam lekkiego życia nie obiecał i słowa dotrzymał.
8bitów ; dereatari
Apple Hadware

14

Odp: Sterowanie portem joysticka przez mikrokontroler.

willy napisał/a:

najdokładniej jest sterowac timerami ale to wymaga nieco gimnastyki

Poprawcie nie - w Atari 5200 też jest pokey, schematy wyglądają podobnie, obsługa potencjometrów jest tam identyczna jak w Atari XL/XE?
Znalazłem taki projekt, gdzie autor obsługę POTów ogarnął właśnie na Timerach
https://github.com/Danjovic/Stingray

Interface with analog joystick is performed using precise timing method: The internal analog comparator is used to detect the moment that the pokey chip in Atari 5200 releases the POT lines to start charging the timing capacitors. The comparator triggers an interrupt before the voltage across the capacitors reach the Vih threshold of POKEY POT lines. Then the AVR forces the POT lines LOW during an interval of time proportional to the position of the corresponding axis. At a given moment the POT line is pushed HIGH, exceeding Vih threshold immediately which makes POKEY capture a counting value that is equivalent to the potentiometer position.

grzybson/SSG^NG