1

Składałem ostatnio Atari w wersji mini ITX według projektu użytkownika x_angel i przy tej okazji naszła mnie myśl, aby podłączyć do niego klawiaturę USB. Takie klawiatury są obecnie dużo bardziej popularne niż te w standardzie PS2, dodatkowo obudowa w której umieściłem Atarynkę ma przewidziany otwór na port USB i nie chciałbym zostawić go pustego.

Bawiłem się wcześniej Arduinami i różnymi płytkami rozszerzającymi, w tym hostem USB. Eksperymentalnie podłączałem różne myszki, pady (załącznik), klawiatury MIDI i sprawdzałem, czy zadziałają. Reakcją na wciśnięcia przycisków było co prawda wypisywanie różnych debugowych komunikatów na serial port, ale dzięki temu przetarłem szlaki i myślę, że zdołam zaprogramować interfejs klawiatury USB dla małego Atari. Takie urządzenie, jeśli faktycznie powstanie, przyda się pewnie tylko mi, gdyż będzie zbudowane z myślą o obudowie, jaką wybrałem, a wepnę się w miejsce PICa obsługującego AKI na płycie mini ITX, którego w standardowym Atari nie ma...

W międzyczasie jednak zaświtał mi inny pomysł. Oprócz klawiatury mogę obsłużyć joypad w standardzie HID. Nie ukrywam, że Atari zbudowałem głównie dla gier. Chciałbym obsłużyć klawisze "Start", "Select" i "Option" z pada i 90% gier zdołałbym uruchomić i obsłużyć w ogóle bez udziału klawiatury. Atari byłoby wtedy bardziej "konsolą" niż "komputerem". Jednak i to urządzenie łatwo mi będzie zainstalować w Atari mini ITX, a niekoniecznie w standardowym.

I tu pojawił się trzeci pomysł: interfejs do padów wpinany w port joysticka (db9). Takie urządzenie mogłoby być całkowicie zewnętrzne.

Zbudowałem prototyp. Ostatnio leżą mi pady od PlayStation 4 i w pierwszej wersji softu na Arduino obsłużyłem właśnie tego typu pad. "Obsłużyłem" jest trochę na wyrost, całą robotę odwalili za mnie twórcy biblioteki USB Host Shield: https://github.com/felis/USB_Host_Shield_2.0
Prototyp zadziałał właściwie. Kod pierwszej wersji umieściłem tutaj: https://github.com/vandalton/DaltonAJKI
Grałem w River Raid, Boulder Dash, Syn Boga Wiatru, Montezuma's Revenge... I grało się zaskakująco dobrze :) Jako kierunków można używać zarówno krzyżaka, jak i lewego joysticka. Tym lewym joystickiem z pada PS4 bardzo łatwo ruszyć równocześnie w górę i prawo/lewo, nie było więc konieczności programowania "skoków w bok" znanych z rozwiązania (S)NESctrl kolegi Mq. Choć dla innych padów pewnie takie funkcje będą potrzebne.

USB Host Shield istnieje w dwóch wersjach. "Dużej", przeznaczonej do współpracy z Arduino Uno, Mega itp. i "małej", dla Arduino Pro Mini. "Mała" wersja działa na 3.3V, a "duża" na 5V. Do szybkiego prototypowania użyłem wersji "dużej", jednak chciałbym, aby docelowy interfejs joysticka był możliwie mały. Wiąże się to jednak z problem. Standard USB to 5V i nie wszystkie urządzenia współpracują z "małą" wersją Host Shielda. Pady z załącznika działają. Klawiatura działa, ale np. pad od PlayStation 4 działa tylko z wersją "dużą".

Poza tym problemem widzę wiele zalet USB. Wraz z rozwojem projektu można:

1) podłączyć hub i obsłużyć pad i klawiaturę jednocześnie, albo 2 pady i klawiaturę
2) podłączyć "pestkę" bluetooth i obsłużyć pady/klawiatury bezprzewodowe

Są i wady w porównaniu do AKI, a w zasadzie jedna... Cena. USB Host Shield jest sam w sobie dość drogi, pewnie ze 3 AKI dałoby się zbudować za te same pieniądze, a Arduino w ogóle pominąłem w tych obliczeniach.

Pytanie: czy w ogóle jesteście zainteresowani tego typu projektem? Jeśli tak, jakie funkcje byłyby dla Was najważniejsze? Jakie urządzenia warto obsłużyć w pierwszej kolejności?

Post's attachments

IMGP3379.JPG 529.39 kb, liczba pobrań: 1 (od 2019-04-30) 

IMGP3380.JPG 501.5 kb, nikt jeszcze nie pobierał tego pliku. 

IMGP3387.JPG 518.35 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.

2 Ostatnio edytowany przez pajero (2019-05-01 07:44:02)

Fajnie, że pokazujesz drogę i udostępniasz źródło.

Plusy:
- liczba sprawnych joysticków spada a dostępność słaba (idą z ceną w górę);
- pady to już coś innego, ale wersja bezprzewodowa to spora zaleta;
- ... no jeśli mówimy jeszcze o klawiaturze, to ma sens

Wady:
- obecna forma/cena: mało osób ma bieduino

A pomyśl, czy dasz radę zrobić konwerter USB-portjoya lub USB-Pokey jako własny interfejs?
Może obecne rozwiązanie znajdzie sporo odbiorców na zachodzie...

3 Ostatnio edytowany przez ccwrc (2019-05-01 07:40:13)

Napiszę o czym ja myślałem i zrobiłem prosty prototyp (rozleciał się, ale działał).

Zwykła klawiatura jako 'joystick' :)
Tzn. wpiąłem się w folię i klawisze kierunków działały jak kierunki, klawisz lewy Ctrl jako fire + bezpośrednie podłączenie do DB9. Taka klawiatura jest niesamowicie wygodna do niektórych gier. Użyłem tego modelu HP:
https://allegro.pl/oferta/klawiatura-pr … 7522346255
ze względu na to, że jest niezniszczalny (dosłownie, pomijam jakość mojego połączenia) i tani bo był dołączany kiedyś do wszystkiego co możliwe.

Marzy mi się przejściówka USB (PS/2?) -> DB9, załatwiałaby problem zbyt małej ilości joysticków.
Pomysł luźno związany z tematem, ale napisz co o tym sądzisz.


Edit: widzę, że @pajero myśli o czymś podobnym  :)
Edit2: nówka za 9zł:
https://allegro.pl/oferta/oryginalna-no … 7161120562

4 Ostatnio edytowany przez pajero (2019-05-01 08:00:08)

Zasadniczo odwrotność znanych rozwiązań a dostępnych podłączenia Atari joystick do PC.

Ja chcę pada/joystickPC podłączyć do Atarki.
Taniość ma sens, bo chińskie klony są dostępne ca.60pln.  Więc interface powyżej 120zł mija się z celem....

5

@pajero

Tak, w odwrotną stronę, czyli klawa jako joy do atarki. Jakby nie patrzeć klawiatury do PC są bardzo tanie.

6 Ostatnio edytowany przez pajero (2019-05-01 08:04:28)

Plug & play winno być - dla wszystkich rozwiązanie.

Z ebaya za $12 joya kupisz, albo w euro z DE.

Tak więc interface ma sens ale znowu te koszty. I odbiorców w kraju dla Atari będzie z 30. Reszta wysyłki za granicę....



@Dalton - masz ochotę, zadziałaj, to rozłoży się na wszystkie 8/16bit. Fanów na różnych forach PL znajdziesz.


.... a mieliśmy go zachęcić

7 Ostatnio edytowany przez Candle (2019-05-01 08:44:08)

ZTCP kolega Piotr Wiszowaty zrobił przejściówkę USB -> DB9 dostępną na licencji open hardare/software - powinna być na githubie, gdzieś

https://github.com/piotr-wiszowaty/db9_usb_adapter

przechodze na tumiwisizm

8

Wydaje mi się to dobrym pomysłem. Pozostań przy wersji wpinanej jako AKI i bazuj na chyba najtańszym Arduino - czyli UNO. Zastanawia mnie, czy konieczny jest ten HOST, bo w sumie komunikację (co prawda jako RS) zapewnia sam port USB w Arduina, a prędkość powinna być wystarczająca. Jeśli nie starcza - to fakt, można użyc tego hosta...
Ponieważ to Arduino - to kod łątwo zmienia. Pomyśl od razu nad wersją obsługującą kilka urządzeń - klawiaturę/mysz/pady/joye, ale też może obsługa pendrive-ów USB lub głośników/mikrofonów/kamerek USB?  Oczywiście po stronie podpięcia i komunikacji, może urządzenia (handler) - ale to może ogólnie załatwić ogólny handler Arduino (ustanowić jako standard U na przykład).
Powodzenia i działaj z tematem.

Sikor umarł...

9

pajero napisał/a:

Fajnie, że pokazujesz drogę i udostępniasz źródło.
(...)
A pomyśl, czy dasz radę zrobić konwerter USB-portjoya lub USB-Pokey jako własny interfejs?
Może obecne rozwiązanie znajdzie sporo odbiorców na zachodzie...

Chyba nie dam... Jakbym się mocno zaparł, to pewnie bym i zrobił, ale paradoksalnie wyszłoby drożej, bo użyłbym z grubsza tego samego: Atmegę, MAX3421E itp. Masowość klonów Arduino sprawia, że nie muszę projektować płytek, zamawiać ich, lutować części. Jedynie wykombinować, jak się dostosować do tego, co jest dane w ramach platformy.

Nawet nie chodzi o szukanie odbiorców. Kodzior, schematy, wszystko udostępnię. Kto będzie chciał, sobie złoży. Ewentualnie jak ktoś byłby bardzo zainteresowany takim urządzeniem, a nie miałby warunków/umiejętności, by je wytworzyć, wtedy pomyślałbym o sprzedaży gotowców. Nie jestem elektronikiem i robię to czysto hobbistycznie. Dużą frajdą jest, gdy po podłączeniu kilku kabelków i napisaniu kilku linii kodu takie proste urządzonka faktycznie działają.

ccwrc napisał/a:

Marzy mi się przejściówka USB (PS/2?) -> DB9, załatwiałaby problem zbyt małej ilości joysticków.
Pomysł luźno związany z tematem, ale napisz co o tym sądzisz.

Nie myślałem o tym, ale pomysł interesujący... I nawet prostszy do wykonania, protokół PS/2 można obsłużyć "gołym" Arduinem, nie trzeba żadnych USB Hostów. Rozważę taką opcję, gdy będę rozwijał projekt. Tryb "klawiatura jako joystick" mógłby być też etapem pośrednim przed pełnym obsłużeniem klawiatury USB.

pajero napisał/a:

Taniość ma sens, bo chińskie klony są dostępne ca.60pln.  Więc interface powyżej 120zł mija się z celem....

Z ceną (w porównaniu do AKI) jest może źle, ale nie aż tak :) Arduino Pro Mini to koszt około 10 złotych w Polsce, USB Host, co prawda w wersji 3.3V kosztuje około 20 zł z Chin (na Allegro spotkałem tylko dużą wersję). To niestety ten bardziej problematyczny zestaw, ale w "dużej" do 120 zł też trochę brakuje. Mówię oczywiście o cenach klonów, nie oryginalnych Arduin i hostów, bo te są faktycznie z kosmosu...

Candle napisał/a:

ZTCP kolega Piotr Wiszowaty zrobił przejściówkę USB -> DB9 dostępną na licencji open hardare/software - powinna być na githubie

O, to ciekawe, dzięki! Jak szukałem podobnych rozwiązań, to niestety na to nie trafiłem. Widzę, że w tym projekcie użyty jest mikroprocesor PIC z funkcją USB Host. Na PICach się nie znam, ale jako że najważniejszą cechą programisty jest lenistwo, to porównując kod mojego prototypu i rozwiązania kolegi Piotra zostanę przy Arduino :)

Sikor napisał/a:

Zastanawia mnie, czy konieczny jest ten HOST, bo w sumie komunikację (co prawda jako RS) zapewnia sam port USB w Arduina, a prędkość powinna być wystarczająca.

Jest konieczny. W Arduino jest konwerter USB na Serial, używany do programowania Atmegi i łatwego debugowania, ale ten konwerter nie obsłuży urządzeń typu HID.

Sikor napisał/a:

Ponieważ to Arduino - to kod łątwo zmienia. Pomyśl od razu nad wersją obsługującą kilka urządzeń - klawiaturę/mysz/pady/joye, ale też może obsługa pendrive-ów USB lub głośników/mikrofonów/kamerek USB

Tak, chciałbym obsłużyć pady/joye/klawiatury, ale co konkretniej miałaby robić taka kamerka USB po podłączeniu do Atari?

10

Dalton napisał/a:

Tak, chciałbym obsłużyć pady/joye/klawiatury, ale co konkretniej miałaby robić taka kamerka USB po podłączeniu do Atari?

Robić zdjęcia ala VideoInterface. Myślę, że jak by już była - obsługę by się dopisało. Tak samo może skaner albo drukarkę po USB?

Sikor umarł...

11

nic by sie nie dopisało - drukarki są głupie i wymagają wysłania firmware przed drukowaniem czegokolwiek, sam protokół nie jest ustandaryzowany, na kamere też nie masz co liczyć, nie na full spid usb dodatkowo obciętym przez arduino do jakiś 7mbit
nikt też nie weźmie kodów, schematów, nie kupi klocków do arduino, nie okopie się w środowisko aby skompilować szkic - zrobisz sobie - może znajdzie się jakiś entuzjasta z nadmiarem czasu i pieniędzy aby się w to wepchać, albo jakimś cudem zrobi się to popularne bo fejsbuk czy inne twitery - takie czasy
ekonomicznie nie jest to uzasadnione - drogie zarówno w liście elementów jak i czasie jaki trzeba poświęcić by coś w ogóle z tego mieć
ale nie zniechęcam - tylko odzieram ze złudzeń

przechodze na tumiwisizm

12 Ostatnio edytowany przez Mq (2019-05-01 16:28:53)

Ja się niestety muszę zgodzić w całej rozciągłości z Candle oraz z pajero w kontekście ilości potencjalnych chętnych i popularności takiego projektu w ogóle.
Zrobiłem kilka różnych projektów dla retro i chociaż robiłem je głównie dla siebie i dla zabawy, to publikowałem i umożliwiałem zakup takowych. Z doświadczenia wiem, że na tanie projekty niszowego zastosowania jest chętnych od kilku do maksymalnie 20-30 osób. Może czasami troszeczkę więcej, ale w długiej perspektywie czasowej i ze sporymi inwestycjami czasowymi typu odświeżanie tematów na różnych forach, wystawianie na allegro itp. chwyty popularyzujące.
Wg mojego doświadczenia taki projekt musi być maksymalnie łatwy w implementacji, mały, zgrabny, posiadać mało elementów i ogromne możliwości będące uniwersalnymi i potrzebnymi dla wszystkich userów danego komputerka. Na projekty wykonywane na gotowych modułach typu arduino, z tego co obserwuję, to praktycznie w ogóle nie ma chętnych. Arduino dla mnie ma tylko taką zaletę, że ma gotowe środowisko, gotowe biblioteki i może to sobie programować każdy dla zabawy - ale dla gotowych projektów jest to niewygodne, niewydajne, zbyt drogie, a do tego niezgrabne i niedopasowane do poszczególnych zastosowań.

Krótko mówiąc Dalton, chcę powiedzieć, że to co robisz będzie (i już jest) bardzo fajnym rozwiązaniem indywidualnym, świetnie się sprawdzi w Twoim przypadku i z racji otwartości kodu i schematów być może ktoś się skusi, żeby też coś podobnego sobie zrobić, ale nie liczył bym na jakieś masowe spopularyzowanie.
Gdybyś jednak chciał zrobić z tego uniwersalne urządzenie "na gotowo" dla wszystkich, to ja bym arduino widział jako prototyp, ale później jednak projekt płytki i pozbycie się arduino na rzecz dedykowanego projektu układu.

Podsumowując, nie chcę Cię zniechęcać, będę z zaciekawieniem obserwował sobie postępy w tym projekcie i chętnie zobaczę ostateczną wersję jaką przedstawisz, ale w takiej formie jak to przedstawiasz, to uważam, że robisz to dla siebie.

PS. Piszecie o USB->DB9, to jest coś takiego już na rynku jak np. RYŚ-MKII: https://retro.7-bit.pl/?lang=en&go= … e=rys_mkii
Nie wiem czy to fajne, czy nie, ale obsługuje HID w każdym razie. Chyba Larek też to kiedyś prezentował coś tak przez mgłę pamiętam, ale potem przesiadł się na moje (S)NESctrl, które po uzupełnienie o bezprzewodowy odbiornik bluetooth od 8bitdo współpracuje między innymi z padami bezprzewodowymi od PS3 i PS4 oraz wszystkimi padami bluetooth od 8bitdo. Ja bym szedł w kierunku tego, żeby robić komunikację bezprzewodową, ale przydało by się malutkie urządzenie wpinane w DB9 bez żadnych kabli i przejściówek. Chciałem coś takiego zaprojektować jako następcę mojego (S)NESctrl, ale jakoś nie mam czasu i weny, więc nie wiem czy kiedyś do tego wrócę... Wspominam o tym natomiast, bo wiem, że wśród miłośników retro jeżeli są tacy, którzy grają padami, to cenią sobie nie bylejakie pady, ale właśnie np. te od 8bitdo, oraz od PS3 i PS4. Po prostu jest spora grupa która chce pady, ale nie byle jaki, tylko konkretne i uznane.

Edit: odniosę się jeszcze do użycia klawiatury jako joysticka. Tak jak napisał perinoid, że wpiął się bezpośrednio w folię i podłączył klawisze do DB9, to jest technicznie ok, natomiast nie da się zrobić przejściówki w postaci podłączenia takiego USB do DB9. Z prostej przyczyny: klawiatura pecetowa nie daje możliwości wciskania jednocześnie dwóch klawiszy, a więc nie da się zrobić np. odczytu dwóch kierunków naraz, więc nie będzie skosów.

13

Mq napisał/a:

Na projekty wykonywane na gotowych modułach typu arduino, z tego co obserwuję, to praktycznie w ogóle nie ma chętnych. Arduino dla mnie ma tylko taką zaletę, że ma gotowe środowisko, gotowe biblioteki i może to sobie programować każdy dla zabawy - ale dla gotowych projektów jest to niewygodne, niewydajne, zbyt drogie, a do tego niezgrabne i niedopasowane do poszczególnych zastosowań.

Właśnie zupełnie nie rozumiem, skąd ta pogarda dla Arduino, którą obserwuję od dłuższego czasu w różnych środowiskach. Może się nie znam, nie jestem elektronikiem, ale czym by się różniło zaprogramowanie Arduina z Atmegą i MAX3421E od zaprogramowania Atmegi z MAX3421E na samodzielnie zaprojektowanej płytce?

Niewygodne? Z Arduino UNO podłączonym do laptopa przez USB mogę je programować i debugować "w akcji", od razu widzę efekt działania. Nie muszę podłączać programatora, ani nawet posiadać go.

Drogie? Za klon Arduino Pro Mini płaciłem ostatnio jakieś 6 złotch na Ali, na Allegro są po 10. Za goły procesor Atmega328P zapłacę obecnie 8 złotych.

Na niezgrabne i niedopasowane do poszczególnych zastosowań to akurat się zgodzę :)

W zasadzie, jakby faktycznie szukać klientów na takie urządzenie, to myślę, że takiego klienta nie interesuje, czy w środku siedzi niezgrabne Arduino czy cokolwiek innego.

Mq napisał/a:


Krótko mówiąc Dalton, chcę powiedzieć, że to co robisz będzie (i już jest) bardzo fajnym rozwiązaniem indywidualnym, świetnie się sprawdzi w Twoim przypadku i z racji otwartości kodu i schematów być może ktoś się skusi, żeby też coś podobnego sobie zrobić, ale nie liczył bym na jakieś masowe spopularyzowanie.

Podsumowując, nie chcę Cię zniechęcać, będę z zaciekawieniem obserwował sobie postępy w tym projekcie i chętnie zobaczę ostateczną wersję jaką przedstawisz, ale w takiej formie jak to przedstawiasz, to uważam, że robisz to dla siebie.

Tak, to właściwie prawda. Robię to dla siebie i najbardziej interesuje mnie wariant z przyciskami Select, Start i Option obsługiwanymi z pada. Jeśli ktoś kiedyś napisze: "słuchaj Dalton, zbudowałem to urządzonko według twoich źródeł, fajne", to bardziej się ucieszę, niż z ze sprzedaży 30 ewentualnych gotowców.

Mq napisał/a:


Wspominam o tym natomiast, bo wiem, że wśród miłośników retro jeżeli są tacy, którzy grają padami, to cenią sobie nie bylejakie pady, ale właśnie np. te od 8bitdo, oraz od PS3 i PS4. Po prostu jest spora grupa która chce pady, ale nie byle jaki, tylko konkretne i uznane.


O, tak. Pady od PS4 bardzo mi leżą, słyszałem też wiele dobrego o padach do XBoxa. Może faktycznie warto skupić siły na Bluetooth... Padami 8bitdo nie grałem, ale ich przejściówka, aby pady od PS4 podłączyć do SNESa, to bardzo fajne urządzenie.

Mq napisał/a:

Edit: odniosę się jeszcze do użycia klawiatury jako joysticka. Tak jak napisał perinoid, że wpiął się bezpośrednio w folię i podłączył klawisze do DB9, to jest technicznie ok, natomiast nie da się zrobić przejściówki w postaci podłączenia takiego USB do DB9. Z prostej przyczyny: klawiatura pecetowa nie daje możliwości wciskania jednocześnie dwóch klawiszy, a więc nie da się zrobić np. odczytu dwóch kierunków naraz, więc nie będzie skosów.

:O To dla mnie wiadomość z gatunku "nagle runął świat". Aż sprawdziłem. Na laptopie Lenovo E330 mogę wcisnąć "skosy", nawet razem z Ctrl. Problem jest jedynie z niektórymi kombinacjami typu: Lewo, Prawo i Góra, których w praktyce nie użyję.  Na klawiaturze bezprzewodowej USB, też Lenovo, także nie mam problemów. Ostatnio moda na klawiatury "dla graczy", mechaniczne, wydaje mi się, że w ich przypadku nawet wszystkie klawisze na raz zostaną obsłużone.

14

Dalton napisał/a:

Właśnie zupełnie nie rozumiem, skąd ta pogarda dla Arduino, którą obserwuję od dłuższego czasu w różnych środowiskach. Może się nie znam, nie jestem elektronikiem, ale czym by się różniło zaprogramowanie Arduina z Atmegą i MAX3421E od zaprogramowania Atmegi z MAX3421E na samodzielnie zaprojektowanej płytce?

Tu nie chodzi o pogardę, tylko o to, że jak właśnie dalej się zgodziliśmy urządzenie zbudowane w oparciu o moduły jest niezgrabne i duże. Zwróć uwagę, że wszelkie przejściówki i adaptery robi się tak, że są to zwykle bardzo małe urządzenia, które mieszczą się w małym donglu, czy tam w obudowie wtyczki np. DB9. Jeśli planujesz zamknąć to w dużym pudle, to faktycznie użytkownika końcowego nie będzie obchodziło za bardzo co jest w środku. Z tym że może mu się nie spodobać, że będzie miał duże pudło postawione na biurku. Tylko tyle. Co do wygody, to nie pisałem o wygodzie debugowania i innych takich tam spraw, bo do prototypowania faktycznie arduino może być fajne, natomiast chodziło mi o wygodę używania ostatecznego produktu - powtórzę się: dongle vs pudło.
Jest jeszcze jedna rzecz, która mnie do arduino nie przekonuje i nie lubię go, ale oczywiście oceniam to subiektywnie. Projektując urządzenia wybieram mikrokontrolery z pełnej ich gamy, a arduino narzuca mi konkretne. Do tego wybieram taki mikrokontroler, który ma odpowiednią ilość pamięci dla mnie i mieszczę w nim bez problemu kod - żeby natomiast zrobić to samo w arduino, to trzeba się liczyć ze stratą miejsca w pamięci na bootloader, który nikomu do niczego nie jest potrzebny i inne bzdety, czasem nieoptymalne biblioteki, biblioteki kobyły, z których korzystamy tylko częściowo itd, itp. - ja wolę to wszystko oprogramować samemu i mieć pełną kontrolę nad zasobami mikrokontrolera.

Dalton napisał/a:
Mq napisał/a:

Edit: odniosę się jeszcze do użycia klawiatury jako joysticka. Tak jak napisał perinoid, że wpiął się bezpośrednio w folię i podłączył klawisze do DB9, to jest technicznie ok, natomiast nie da się zrobić przejściówki w postaci podłączenia takiego USB do DB9. Z prostej przyczyny: klawiatura pecetowa nie daje możliwości wciskania jednocześnie dwóch klawiszy, a więc nie da się zrobić np. odczytu dwóch kierunków naraz, więc nie będzie skosów.

:O To dla mnie wiadomość z gatunku "nagle runął świat". Aż sprawdziłem. Na laptopie Lenovo E330 mogę wcisnąć "skosy", nawet razem z Ctrl. Problem jest jedynie z niektórymi kombinacjami typu: Lewo, Prawo i Góra, których w praktyce nie użyję.  Na klawiaturze bezprzewodowej USB, też Lenovo, także nie mam problemów. Ostatnio moda na klawiatury "dla graczy", mechaniczne, wydaje mi się, że w ich przypadku nawet wszystkie klawisze na raz zostaną obsłużone.

Wiesz co, to dobrze, w takim razie się trochę wycofam rakiem jeśli nie ma z tym problemu i da się to oprogramować. Nie zgłębiałem tematu w tym konkretnym momencie, ale pamiętam, że np. w AKI nie da się wciskać jednocześnie start+select+option - może klawisze kursorów rządzą się swoimi prawami i da się jakoś odbierać ich kombinacje. Ctrl działa trochę inaczej i zawsze można go czytać z innym klawiszem, to wiadomo. Chciałem tylko zwrócić uwagę, żeby właśnie sprawdzić najpierw, bo coś tam mi świtało w głowie, że może być z tym kłopot.

15 Ostatnio edytowany przez Sikor (2019-05-02 17:27:13)

Mq napisał/a:

ale pamiętam, że np. w AKI nie da się wciskać jednocześnie start+select+option - może klawisze kursorów rządzą się swoimi prawami i da się jakoś odbierać ich kombinacje.

A jak jest START/SELECT/OPTION w Aki obsługiwane? (serio - nie używam, więc nie wiem). O ile pamiętam z Pascala sprzed lat... nastu (więc niewiele) - klawisze w PC są obsługiwane w większości bezproblemowo hordami, za wyjątkiem klawiszy specjalnych, takich jak Fxx, Tab, Home, itp. Ale mogę się mylić.

Sikor umarł...

16

Start,select i option jest w AKI na klawiszach F5,F6,F7 - tak samo jak w emulatorach chyba. W prawdziwym Atari te klawisze można obsługiwać niezależnie i odczytywać ich kombinacje, co jest często wykorzystywane w grach, np. jako tajne kody itp. Nie wiem jak to dokładnie działa w AKI, ani w emulatorach, bo ja używam tylko normalnych oryginalnych klawiatur Atari:-) Natomiast czytałem, że nie działają równocześnie w AKI i jest to jak dla mnie poważna wada rozwiązania.

17

Mq napisał/a:

Tu nie chodzi o pogardę, tylko o to, że jak właśnie dalej się zgodziliśmy urządzenie zbudowane w oparciu o moduły jest niezgrabne i duże. Zwróć uwagę, że wszelkie przejściówki i adaptery robi się tak, że są to zwykle bardzo małe urządzenia, które mieszczą się w małym donglu, czy tam w obudowie wtyczki np. DB9. Jeśli planujesz zamknąć to w dużym pudle, to faktycznie użytkownika końcowego nie będzie obchodziło za bardzo co jest w środku. Z tym że może mu się nie spodobać, że będzie miał duże pudło postawione na biurku. Tylko tyle.

Chyba wciąż patrzysz przez pryzmat zdjęcia z pierwszym prototypem opartym o Arduino Uno, które faktycznie jest duże. Ale robiłem np. kilka takich adapterków jak w załączniku, aby joysticki od Atari podłączyć pod USB. W środku, w obudowie siedzi Arduino Pro Micro, który co prawda jest za duży do obudowy DB9, ale trudno też powiedzieć, aby był w "pudle". Ale i tak wyszło na dobre, że nie umieszczałem go na siłę w żadnym donglu, bo bym obsłużył tylko jeden joystick, a tak mogłem dwa :)

Są też takie Arduina: https://store.arduino.cc/arduino-pro-mini
Albo wręcz takie: https://www.wanhunglo.com/2018/beetle-v … i2c-whl-37

Ja niezgrabność rozumiem raczej tak, że nie umieszczę tego złącza DB9 albo USB dokładnie tak, jakbym chciał, albo czasami muszę przeciąć jakąś ścieżkę, bo mi bruździ, że jest tam wyprowadzenie portu itp.

Mq napisał/a:

Jest jeszcze jedna rzecz, która mnie do arduino nie przekonuje i nie lubię go, ale oczywiście oceniam to subiektywnie. Projektując urządzenia wybieram mikrokontrolery z pełnej ich gamy, a arduino narzuca mi konkretne. Do tego wybieram taki mikrokontroler, który ma odpowiednią ilość pamięci dla mnie i mieszczę w nim bez problemu kod - żeby natomiast zrobić to samo w arduino, to trzeba się liczyć ze stratą miejsca w pamięci na bootloader, który nikomu do niczego nie jest potrzebny i inne bzdety, czasem nieoptymalne biblioteki, biblioteki kobyły, z których korzystamy tylko częściowo itd, itp. - ja wolę to wszystko oprogramować samemu i mieć pełną kontrolę nad zasobami mikrokontrolera.

Tu akurat pełna zgoda. W bibliotekach jest bajzel, a co gorsza prowadzi on czasem do konfliktów. Chcę na przykład użyć jakiegoś portu jako wejście, a biblioteka zrobi mi z niego wyjście i już jest klops.

Sikor napisał/a:

O ile pamiętam z Pascala sprzed lat... nastu (więc niewiele) - klawisze w PC są obsługiwane w większości bezproblemowo hordami

Wychodzi na to, że klawiatury są najróżniejsze i niektóre faktycznie mają problem już z dwoma klawiszami wciśniętymi jednocześnie: https://en.wikipedia.org/wiki/Rollover_(key)
Albo tu: https://gaming.stackexchange.com/questi … on-presses

Niestety, nie widziałem nigdzie źródeł oryginalnego AKI, ani xaki, ani DarkAKI, nie wiem więc, jak obsłużone są Start, Select i Option, ale wydaje mi się, że jeśli faktycznie nie da się wcisnąć trzech jednocześnie, to jest to wina konkretnej klawiatury a nie implementacji AKI.

Post's attachments

adapter.jpg 499.2 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.

18

Słuchaj, ja się nie chcę w tym wątku spierać na temat tego czy arduino jest fajne czy nie. Ja jestem elektronikiem i robię sobie wszystko sam bezpośrednio na tym na czym chcę, raczej nie używam gotowych modułów, a swoje urządzenia robię na wymiar dopasowane do celów jakie stawiam projektom. Z drugiej strony pozytywnie oceniam arduino jako platformę do nauki, do tego żeby każdy mógł łatwo coś tam sobie sklecić i ewentualnie do prototypowania późniejszych urządzeń.
A adapter do tych dwóch joysticków wyszedł Ci bardzo fajnie i zgrabnie - ładna rzecz, gratuluję udanego projektu.

19

Spoko, rozumiem i też nie zamierzam się spierać. Sam jestem przypadkiem, który dzięki Arduino w ogóle wszedł w podstawy elektroniki i faktycznie do nauki się to nadaje. Gdybym kiedykolwiek zaprojektował jakąś płytkę od A do Z samodzielnie to też inaczej bym śpiewał ;)
Kończę ten arduinowy offtop i wracam do tematu - prototyp numer 2 z obsługą pada od PS4 przez Bluetooth zadziałał. Zaczęło się falstartem, ale winny okazał się dongle Esperanzy, który nie działał w ogóle. Wymieniłem go na jakiś starszy i z nim nie było problemu.

Post's attachments

20190503_205259.jpg 630.34 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.

20

Skończyłem tzw. "wersję dla mnie". Wyszedł pająk, którego przykręciłem w obudowie mini ITX w miejsce normalnie przeznaczone dla dysku twardego.
Obsługuję klawiaturę bluetooth oraz pad od PS4 po kablu. Dlaczego tak? Klawiaturę kupiłem specjalnie dla Atari i nie zamierzam jej używać z niczym innym, natomiast pada używam też z PlayStation i chciałem uniknąć ciągłego ponownego parowania raz z Atari, raz z PS4.
Teraz pora na refactoring kodu, szczególnie części odpowiedzialnej za klawiaturę. A potem ruszę wersję miniaturową dla zwykłego Atari.

Post's attachments

20190620_194411.jpg 1.82 mb, nikt jeszcze nie pobierał tego pliku. 

20190620_213003.jpg 1.51 mb, liczba pobrań: 1 (od 2019-06-25) 

Tylko zalogowani mogą pobierać załączniki.