Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Nowe życie dla kierownicy PC

^Rachel 10 Sie 2011 13:05 21471 14
  • Nowe życie dla kierownicy PC

    Witam!
    Kiedyś kupiłem kierownicę Twin Turbo 4, która dobry rok leżała w śmieciach, ponieważ była bardzo niewygodna w użyciu. W starsze gry nie dało się nią w ogóle grać, zachowywała się bardzo dziwnie, sama skręcała, czasami w ogóle nie reagowała.

    Postanowiłem, że wymienię jej "bebechy". Użyłem do tego celu znanego MJoy-a na ATmega8. Płytkę zaprojektowałem w Protelu:

    Nowe życie dla kierownicy PC

    Cała elektronika kierownicy znajdowała się na płytce z przyciskami, poprzecinałem ścieżki od padów przycisków ostrym narzędziem i do każdego wlutowałem po 2 kabelki ze skrętki:

    Nowe życie dla kierownicy PC

    Ostatecznie wyglądało to tak:

    Nowe życie dla kierownicy PC

    Wszystko skręciłem do kupy, kierownica wykrywana jest jako MJoy. Po podłączeniu musiałem ją tylko skalibrować i wszystko ładnie działa.
    Można powiedzieć, że dałem jej nowe życie :)

    Jeszcze jedna ważna uwaga - nieużywane osie, czyli pozostałe 4 należy uziemić, a Fuse bity ustawić tak:

    Nowe życie dla kierownicy PC

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    ^Rachel
    Poziom 21  
    Offline 
    Sprzedam zestaw uruchomieniowy z układem FPGA Altera Cyclone II wraz z programatorem.
    http://www.elektroda.pl/rtvforum/viewtopic.php?t=2208414&highlight=

    PicKIT 2, LCD 3.2" , najtaniej ! :
    http://allegro.pl/listing/user.php?us_id=24792493
    Specjalizuje się w: programowanie we wszystkim po trochu.
    ^Rachel napisał 597 postów o ocenie 144, pomógł 15 razy. Mieszka w mieście Częstochowa. Jest z nami od 2010 roku.
  • PCBway
  • #2
    Ele_Tronik
    Poziom 13  
    Witam ;)
    Powiem że wyszło ci super.
    Ale czy wszystkie gry działają teraz na tej kierownicy ?? Kolega zrobił coś podobnego i niektóre gry nie działały tak jak powinny.
  • PCBway
  • #3
    Soho
    Poziom 12  
    O, miło, sam z trzy-cztery lata temu przywróciłem do życia starą kierownicę Dexxa (2 osie + 4 przyciski, w czasach jej zakupu wzbudzała zainteresowanie :P), korzystając właśnie z MJoya. Dodatkowo z racji tych 112 możliwych 'kanałów' cyfrowych dorobiłem z pomocą ojca HShiftera. TDU nabrało zupełnie nowego wymiaru w porównaniu z grą na klawiaturze.

    Co do problemów z grami - zauważyłem że kabel USB jest strasznie czuły na zakłócenia, położenie go w pobliżu telefonu powodowało straszne 'miotanie' się osi. A tak poza tym jedyna gra jaka miała problem to NfS: Underground, ale to raczej zrozumiałe na Win7.
  • #4
    WesolyWojtek
    Poziom 9  
    Witam. Powiedz jak wygląda sprawa ze sterownikami. Jak ta ATmega komunikuje się z komputerem?
    Kilka miesięcy temu myślałem nad przerobieniem starej kierownicy z gameportu na ATmegę przesyłającą dane po RS232. Pomysł legł w gruzach gdy zacząłem myśleć o sterownikach dla Windowsa.
  • #6
    ja.czekanski
    Poziom 12  
    WesolyWojtek napisał:
    Pomysł legł w gruzach gdy zacząłem myśleć o sterownikach dla Windowsa.

    Kiedyś, gdy zaczynałem zabawę z mikrokontrolerami i uczyłem się obsługi ADC zrobiłem na szybko "kierownicę". Atmega zczytywała wartość z jednego z pinów, wynik wysyłała jako bajt po UART, następnie przez MAX232 do pc. Na pc zainstalowany był program PPJoy wraz ze stworzonym wirtualnym gamepadem. Nastepnie napisałem program, który otwierał urządzenie stworzone przez PPJoya za pomocą funkcji CreateFile, a następnie używając IOCTL (funkcja DeviceIoControl) wysyłałem parametry takie jak stan przycisków, wychylenie osi. Program działał w tle, zczytywał dane z portu COM i przekazywał je do wirtualnego joysticka :)
    Brzmi strasznie skomplikowanie, a tak naprawdę to 15 minut roboty.
  • #7
    Maticool
    Poziom 20  
    WesolyWojtek napisał:
    Powiedz jak wygląda sprawa ze sterownikami. Jak ta ATmega komunikuje się z komputerem?

    Mjoy'e pod Windowsem są wykrywane jako standardowy kontroler gier USB. Nie trzeba żadnych sterowników - wszystkie potrzebne są już w systemie.
    Sam niedawno przerobiłem starą kierownicę Geniusa bazując na tym projekcie.

    Pytanie do Autora - nie masz problemów z latencją t.j opóźnieniem sygnału? Bo ja w swoim MJoy'u nie mogłem się jej pozbyć. Ok 1/4 sek. opóźnienia pomiędzy skrętem kierownicy a skrętem kół w grze powoduje, że nieprzyzwyczajony gracz zaczyna się u mnie "odbijać od band". Jak się trochę poćwiczy można się nauczyć ale wydaje mi się, że tak nie powinno być. A jak jest z tym u Ciebie?
  • #8
    ^Rachel
    Poziom 21  
    Ele_Tronik:
    Jak na razie testowałem na NFS Underground 2 i Hard Truck 3 klasyka :)
    ale myślę, że w innych grach nie będzie problemu, skoro to jest zwykły kontroler.

    Soho:
    Zakłócenia te pochodziły pewnie od tego, że na nieuziemionych nóżkach ADC Atmegi pojawiały się zakłócenia, które były przetwarzane przez przetwornik, dlatego też trzeba nieużywane nóżki uziemiać.

    WesolyWojtek:
    Sterowników żadnych nie instalowałem, kierownica zostaje wykryta jako MJoy, tutaj masz screena jak to u mnie wygląda :
    Nowe życie dla kierownicy PC

    xanio:
    jest także wersja na Atmega16, ale w moim przypadku te pozostałe przyciski były by nieużywane, teraz zostały się 4 osie i jakieś 10 przycisków, więc plany na przyszłość są takie, żeby dodać dodatkowe pedały jako sprzęgło.

    Maticool:
    Sprawa wygląda dość ciekawie, bo u mnie na Widnows 7 wszystko chodzi idealnie, jednak jak podłącze kierownicę u brata na Windows XP, wtedy sygnał jest opóźniony lub kierownica reaguje skokowo.
  • #9
    marcelek93
    Poziom 15  
    Witam
    Jak wyglądała by sprawa zbudowania takiego sterownika dla 2 osi i 4 przycisków - prosta kierownica z pedałami?
    Trzeba coś zmieniać? czy wystarczy po prostu nie podłączać niepotrzebnych wejść (uziemić ?)
    A i był bym jeszcze b. wdzięczny za schemat bo widzę że nie ma też w załączniku.

    Pozdrawiam
  • #10
    ^Rachel
    Poziom 21  
    Przycisków nie trzeba uziemiać, tylko nieużywane osie, sterownik wyglądał by tak samo, oto schemat , jak ktoś chce to mogę też wrzucić pliki Protela :
    Nowe życie dla kierownicy PC

    Może schemat niezbyt wyraźny z magistralami, lepszy jest tutaj :
    http://www.flightsim.com/main/howto/mind.htm

    Ale brakuje tam kondensatorów przy rezonatorze kwarcowym i diód zenera 3v3 na liniach D+ D- .
  • #11
    marcelek93
    Poziom 15  
    Ok wielkie dzięki.
    Mam jeszcze jedno pytanie, które wejścia odpowiadają osią X i Y bo o te mi chodzi?
    Aha i jeszcze jedno, jak rozwiązał kolega podłączenie pedałów ?
  • #12
    Tomekob
    Poziom 14  
    Czy wartości potencjometrów muszą być jakieś określone czy nie jest to istotne?
    Jeśli można to poprosze o pliki w protelu.
  • #13
    Soho
    Poziom 12  
    Obojętnie jakie wartości, raczej liniowe (chyba że planujemy inne zastosowanie), działają one jak dzielnik rezystorowy, w swojej kierownicy wrzuciłem 10k.
    ^Rachel, neee, wszystkie nieużywane osie zmasowane, bez zmasowania M16 w ogóle się zwiesza zaraz po podłączeniu pod usb. Problem z 'drganiem' osi występuje też jedynie przy położeniu przewodu usb w pobliżu innych przewodów... W skrócie - bywa :P
    Swojszego MJoya opierałem głównie na tej ( https://sites.google.com/site/mjoy16/home ) stronie, wersja na DIPowej Mega16, płytka zamawiana aczkolwiek jest udostępniony schemat i pcb z tego co pamiętam. Swoją drogą zalecam też lekturę dokumentacji oryginalnego M16, jest tam trochę przydatniejszych rzeczy :)
  • #14
    ^Rachel
    Poziom 21  
    marcelek93 napisał:
    Ok wielkie dzięki.
    Mam jeszcze jedno pytanie, które wejścia odpowiadają osią X i Y bo o te mi chodzi?
    Aha i jeszcze jedno, jak rozwiązał kolega podłączenie pedałów ?


    Właśnie tutaj nie ma konkretnego wejścia które odpowiada za oś X, jest tylko oś Z i oś Y co w niczym nie przeszkadza. Oś Y jest to oś na wejśćiu PC5 a Z na PC1.
  • #15
    WesolyWojtek
    Poziom 9  
    Dziękuje wszystkim za informację. Na forum widzę same *.hex, nie ma plików źródłowych. Poszukałem w internecie i znalazłem projekt implementujący USB 1.1 do AVRów (Strona projektu). W wolnym czasie zapoznam się z nim i spróbuję uruchomić na nim kierownicę.
    Pozdrawiam