Kontroler do Gier na bazie klawiatury

Kontroler do Gier na bazie klawiatury

Witam, chciałbym wam zaprezentować jak zbudowałem panel sterowania do Gry Kerbal Space Program.
Chociaż wspomniany panel jest przystosowany tylko do tej konkretnej gry (chociaż zmieniając ustawienia sterowania w innych grach również dałoby rade z niego korzystać) to jednak bazując na tym projekcie każdy mógłby zbudować swój przystosowany do swojej ulubionej gry :)

Lista potrzebnych elementów:

  • Klawiatura USB/PS2 (USB dale możliwość dalszej rozbudowy o inne urządzenia i daje większa mobilność bo gniazd PS2 chociażby nie ma w laptopach)
  • Kawałek Sklejki czy innego materiału na obudowę
  • 9 przycisków chwilowych niebieskich/zielonych
  • 8 przycisków chwilowych czerwonych
  • 8 przełączników on/off dźwigniowych
  • 4 osłony na przełączniki dźwigniowe typu “lotniczy”
  • 8 przełączników krańcowych z dźwignią
  • Moduły Przekaźników (ilość zależna od samej klawiatury)
  • Trochę (dużo) przewodów
  • 2 śruby z kołkiem rozporowym
  • 2 Małe sprężynki mieszczące się ma śrubach od kołków rozporowych

Etap 1

Cała nasza przyszłą zabawę z budowaniem kontrolera należny zacząć od 3 punktów:

  1. Jakie funkcje ma pełnić w grze kontroler?
    • U mnie, kontroler ma pełnić funkcje panelu sterowania i kontroli rakiety w grze Kerbal Space Program, za jego pomocą muszę móc sterować lotem rakiety jak i silnikami manewrowymi na orbitach. Musze mieć możliwość włączania i wyłączania podstawowych funkcji rakiety i kontrolować poszczególne fazy lotu.
  2. Gdy wiemy już co nasz kontroler ma robić, przyszedł czas na zaprojektowanie samego kontrolera, chociażby w paincie, chodzi jedynie o schemat rozstawienia przycisków, rodzai przycisków itd.Bez tytułu
  3. Na koniec musimy spisać sobie jaki klawisz klawiatury odpowiada za którą z funkcji, a następnie je sobie zanotować, tutaj też warto zastanowić się nad dodatkowymi funkcjami.
    • Doszedłem do wniosku, że lewym Joystickiem sterować będę przepustnicą rakiety oraz obrotem wokół własnej osi, prawym natomiast sterować będę wszelkimi wychyleniami rakiety. Jednak by uzyskać również sterowanie silnikami manewrowymi, dodam Przełącznik pomiędzy jednym a drugim sterowaniem który przełączy przekaźniki i w efekcie prawy Joystick działać będzie na przyciskach W/S/A/D lub I/K/J/L, a lewy Shift/Ctrl/Q/E lub H/N/Q/E

Etap 2

Po skończeniu planowania rozbieramy naszą klawiaturę na części pierwsze dostając się do jej wnętrza, nie musimy się przejmować wypadającymi z środka elementami klawiszy, nie będą nam potrzebne, a przynajmniej nie w tym projekcie, dlatego warto je sobie zachować :)

DSC_0481

Wyciągamy z niej przyszły mózg panelu – kontroler klawiatury znajdujący się w prawej górnej części klawiatury, odkładamy go na bok, bo na tym etapie nie będzie nam potrzebny to co nas interesuje w tym momencie to folie obsługujące klawisze. Wyciągamy je z obudowy i zwykle są one w kilku miejscach ze sobą zgrzane, jako że łatwiej będzie nam pracować na pojedynczej foli szukamy miejsc zgrzewu i delikatnie tak by nie uszkodzić ścieżek wycinamy zgrzewy – pozwoli to nam na rozdzielenie ich.
Dalej czas na żmudną pracę z multimetrem w ręku, korzystając z górnej części obudowy klawiatury rozpoznajemy które szare okrągłe piny odpowiadają którym przyciskom na klawiaturze, gdy już to ustalimy, sprawdzamy któremu wyjściu w miejscu gdzie wcześniej był kontroler klawiatury odpowiada dany klawisz.

DSC_0500

Robimy tak zarówno dla górnej jak i dolnej foli (środkowa folia jest niepotrzebna, stanowi tylko izolacje pomiędzy foliami), wyniki naszych poszukiwań należny oczywiście gdzieś w przystępny dla siebie sposób zapisać. Trudniejsza w opisie jest górna folia bo by sprawdzać piny trzeba ją odwrócić, przez co cały uklad klawiszy jest odbiciem lustrzanym.

UWAGA!
Każda klawiatura ma inny układ odpowiadania klawiszy, dlatego należy samemu sprawdzić piny!

UWAGA!

Jak widać efekty moich poszukiwań wpisałem w tabelkę reprezentującą poszczególne piny, warto tak jak ja, korzystać z dwóch kolorów, jednym oznaczać dolną folię (zielony) a drugim górną (fioletowy).

Jak działa kontroler klawiatury?
By sprawić by komputer uznał że klawisz został naciśnięty, należy zewrzeć ze sobą piny przypisane do danego klawisza zarówno z górnej jak i z dolnej folii, kontroler odczyta to zwarcie jako naciśnięcie klawisza i wyśle do komputera o tym informację.

Etap 3

Mając już ogarnięte przyciski przystępujemy do dolutowania przewodów do naszego kontrolera, jednak zanim to zrobimy, należny zauważyć, że piny na kontrolerze pokryte są szarym czymś (prawdopodobnie grafitem) do którego nie da się nic dolutować.

DSC_0484

By móc cokolwiek do nich przylutować, pierw musimy delikatnie zetrzeć szarą powlokę papierem ściernym, nie należy przesadzać z silą by nie uszkodzić samej płytki, gdy zetrzemy już całą szarość, bierzemy wacik (czy chociażby patyczek do uszu) i przy jego pomocy czyścimy alkoholem styki z resztek szarego pyłu (Przyznam się bez bicia, nie wiedziałem jak to zrobić, i w efekcie zniszczyłem pierwszy kontroler rozwiercając nieprzemyślnie ścieżki, na szczęście miałem jeszcze jedną klawiaturę i jeszcze jeden kontroler, no ale tabelkę musiałem zrobić od nowa).
Dopiero przy tak przygotowanej płytce możemy przystąpić do lutowania przewodów.

DSC_0498

Podgrzane lutownicą ścieżki lubią się odklejać, a następnie odłamywać, dlatego też musiałem je łapać izolacją.

Etap 4

Teraz czas na obudowę, znalazłem odpowiedni kawałek sklejki, a następnie przymierzyłem pierw ułożyłem dłonie tak by wygodnie spoczywały na nim i zaznaczyłem miejsce gdzie znajdować będą się przyszłe joysticki. Po ich zaznaczeniu według wcześniej przygotowanego schematu na próbę rozłożyłem wszystkie przyciski, tak by łatwiej było to wszystko sobie z wizualizować przy wymierzaniu miejsc na otwory.

DSC_0486

Gdy już wiedziałem co gdzie będzie, przeszedłem do dokładniejszego wyznaczenia miejsca na otwory.

DSC_0488

Następnie przeszedłem do wywiercenia ich, miałem o tyle szczęścia, że zarówno przełączniki dźwigniowe jak i przyciski przechodzą przez takiej samej wielkości otwór, więc nie musiałem jeszcze zamieniać po drodze wiertła tylko wszystko wierciłem na raz :)

DSC_0490

Po wywierceniu, małym pilnikiem wyczyściłem nowo powstałe otwory z zadziorów tak by wszystkie rzeczy ładnie do środka pasowały, po czym przystąpiłem do szlifowania sklejki najpierw ręcznie by po chwili ułatwić sobie życie odrobiną techniki.

DSC_0492

Przyszedł czas na przymierzenie przycisków i sprawdzenie, czy przyszłe śrubowe joysticki nie będą za blisko przycisków i jedno z drugim nie będzie sobie wzajemnie przeszkadzać. Najpierw jednak odciąłem górną część sklejki, tak by zmniejszyć ją do odpowiednich dla mnie rozmiarów.

DSC_0494

Gdy wszystko jest jak trzeba, pozostało wywiercić otwory pod Joysticki, a następnie je zamontować.

DSC_0495

Słów kilka o montażu Joysticków
Otwory pod śruby, muszą być trochę większe niż średnica śruby, tak by po zamontowaniu jej luźno chodziła w otworze, kolejną sprawa jest to, że dokręcając kołek rozporowy (wcześniej odcinając z niego wszystkie wystające, ostre wąsy) należy również zostawić trochę luzu, tak by łepek śruby luźno bujał się na spodniej części sklejki. To właśnie dzięki tym luzom zwykła śruba zmieni się w Joystick. Dodatkowo by ustabilizować Joystick tak by samoczynnie wracał do pionowej pozycji warto między łepek śruby a sklejkę (czyli od spodu kontrolera) dodać Sprężynkę, która odpychając główkę, będzie prostować Joystick.

Na koniec tej części zabawy z obudową pozostało powyciągać przełączniki, a sama płytę pomalować na wybrany kolor.

DSC_0497

Po wyschnięciu, ponownie wszystko składamy w całość, podziwiając jak wszystko nabiera już sensownego wyglądu.

DSC_0499

U mnie przełączniki dźwigniowe ukryte pod osłonkami “lotniczymi” dopiero przerywają obwód z przyciskiem obok jeżeli nie są włączone, by przycisk obok niego zadziałał, najpierw trzeba otworzyć osłonkę, przestawić dźwignie i dopiero w takiej pozycji przycisk obok będzie działał, jest to swego rodzaju zabezpieczenie, przed przypadkowym uruchomieniem sekwencji odpowiedzialnej za dany przycisk :)

Etap 5

Kolejna żmuda część pracy. Na podstawie wcześniej opracowanej tabelki pinów kontrolera należy połączyć wszystkie przyciski z kontrolerem tak by po naciśnięciu przycisku czy przełączeniu dźwigni zewrzeć piny odpowiedzialne za tą sama literę i tym samym spowodować by kontroler myślał, że dany klawisz został wciśnięty.

UWAGA!
Na początku warto tylko pozaplątywać przewody z przełącznikami, pomoże to w ewentualnych szybkich poprawkach przy teście kontrolera, nie trzeba wtedy rozlutowywać połączeń.
UWAGA!

Gdy to zrobimy czas na pierwszy test, podłączamy kontroler do komputera, czekamy aż wykryje go jako klawiaturę (USB) lub musimy uruchomić ponownie komputer (PS2, chyba że kontroler był podłączony podczas uruchamiania systemu, a dopiero potem odłączony, wtedy wystarczy chwilkę poczekać nacisnąć np. NumLock i powinno działać).
Następnie uruchamiamy jakiś edytor tekstu, chociażby notatnik i naciskamy kolejno przyciski sprawdzając czy w notatniku pisze się nam to za co dany przycisk jest odpowiedzialny.

Znane problemy:

  • Przycisk nie działa, chociaż powinien, to odwracamy nasz kontroler i poprawiamy styki w przyciskach i wszelkie łączenia po drodze do przycisku upewniając się że wszystko jest dobrze podłączone.
  • Litera pisze się ciągle jakby jakiś klawisz był zablokowany (a nie jest to przełącznik dźwigniowy) odwracamy kontroler i sprawdzamy czy kabelki przypadkowo nie zwierają się ze sobą w wyprowadzkach przycisku, jeżeli jednak wszystko jest dobrze to chociażby w przypadku takich przycisków jak moje, końcówka z wyprowadzeniami jest odkręcana, należny wtedy odczepić przewody, delikatnie końcówkę odkręcić i ponownie je połączyć, powinno wtedy wszystko działać. Problem wynika z tego, że końcówka była przykręcona tak mocno, że płytka zwierająca przycisku cały czas dotykała wyprowadzeń, delikatne odkręcenie tej końcówki, przerywa zwarcie, ale przycisk cały czas działa.
  • W programie pojawia się inna litera. Odwracamy kontroler i sprawdzamy wszystkie styki czy nic nie zwiera, jeżeli wszystko jest dobrze, a litera nadal zwiera, to oznacza, że niezbyt uważnie podłączaliśmy przyciski, lub pomyliliśmy się przy rozpoznawaniu pinów i rozwiązania są dwa, albo na upartego szukamy odpowiedniego pinu tak by wszystko naprawić, lub jeżeli to możliwe zmieniamy w opcjach sterowania gry.

Gdy wszystko działa jak należy, bierzemy lutownice do łapki i wszystkie kabelki na przyciskach zabezpieczamy przy pomocy lutownicy.

Etap 6

Mając już działający panel kontrolny czas na nadanie funkcjonalności joystickom. Sam jeszcze nie ukończyłem tego etapu ze względu na problem ze skutecznym zamontowaniem krańcówek, ale założenia i teorię powiedzieć mogę.

By nadać Joystickom jakiekolwiek funkcję, musimy odwrócić nasz kontroler i wokoło główek śrub zamontować krańcówki. Sam montaż jest dość dzieżki ze względu na to, że muszą one być ustawione w dość precyzyjny sposób. Mianowicie muszą znajdować się na tyle blisko główki śruby, ta ta gdy będziemy nią ruszać aktywowała przełącznik w krańcówce, ale jednocześnie na tyle daleko, by ruszając joystickiem w inne strony nie aktywować go. z wyjątkiem skosów gdy również powinien być aktywowany. Będzie to kolejna żmudna część dopasowywania, mocowania i poprawiania, mocowania i poprawiania.

Gdy już krańcówki zostaną zamocowane wystarczy je połączyć z wyprowadzeniami z kontrolera klawiatury odpowiedzialnego za klawisze W/S/A/D. Należy jednak pamiętać, że patrząc od spodu krańcówki należy podłączyć naprzemiennie tak by po patrząc od spodu na nasz kontroler krańcówka na górze odpowiadała na [S], na dole za [W] po prawej za [A], a po lewej za [D]

 

Teraz pozostaje już tylko dociąć, pomalować, a na końcu dokręcić boczne ścianki i podstawę obudowy. następnie wydrukować/nanieść sobie opisy przełączników  (u mnie na razie prowizorka – taśma malarska + marker) i gotowe :)

DSC_0501

I to byłby koniec tego poradnika, mamy w pełni funkcjonalny, spersonalizowany kontroler i od tej pory możemy cieszyć się zupełnie nowymi wrażeniami z gry i o wiele mocniej wczuć się w jej klimat.
Tak jak wspomniałem na początku, kierując się wskazówkami z tego poradnika, możemy zrobić zupełnie sami kontroler do dowolnej gry (czy też uniwersalny kontroler) zupełnie sami i całkowicie tak jak to my chcemy.

Pozdrawiam!
Shido

Ocena: 4.13/5 (głosów: 15)

Podobne posty

8 komentarzy do “Kontroler do Gier na bazie klawiatury

    • kacperwinnicki: tak jak wspomniał roxik0 niżej, pierwotnie miał to być tylko stan przejściowy, jednakże tak bardzo zaczęła się ta niestaranność wpisywać w koncepcję z gry, że tak już zostało.

      O niestaranności samych konstrukcji w grze może świadczyć, że bardzo dużo części rakiet w grze pochodzi z… Korporacji Zakłady Złomiarskie i Części do Statków Kosmicznych Jebediaha Kermana, czyli robione są po prostu ze złomu. Inna firma zajmuje się budową części aerodynamicznych jest jednocześnie… drukarnią, co może świadczyć że te części są z papieru.

      Odpowiedz
  • Trzyma się stylu kerbalowego :) Kacper grałeś w tą grę? :) Toć uznałbym tą niestaranność za trzymanie stylu biorąc pod uwagę że rakiety tam trzymają się na tzw taśmę :) Mnie bardziej dziwi użycie klawiatury zamiast odpowiedniego moda :) który by pozwalał na realizację komunikacji (np kRPC, telemachus). Generalnie jednak 5/5 :) Sam planuję podobną rzecz zrobić acz na arduino i właśnie korzystając z jakiejś komunikacji :)

    Odpowiedz
    • roxik0: Nie podejmowałem się arduino, bo nie miałem z nim jeszcze nic do czynienia, do tej pory Tylko Malina.
      Użycie arduino na pewno pozwoli wyciągnąć wszelkie dane z gry od wysokości przez paliwa po pewnie niewzruszenia wybuchami Jeb’a :D

      Odpowiedz
  • Alternatywą może być mikrokontroler z interfejsem USB lub gotowa płytka np. Arduino Leonardo Micro. Dodatkową zaletą jest masa gotowego kodu, które emuluje klawiaturę i często to lepiej niż gotowe kontrolery z klawiatur jakie można kupić w sklepie.

    Odpowiedz
    • Sebastian: Mikrokontrolery jak najbardziej są alternatywą i to dużo lepsza jak wybebeszanie klawiatury, bo dają dużo więcej możliwości (chociażby w wypadku Kerbali, sa biblioteki które wyciągają z gry wszystkie parametry lotu), jednak są poza zasięgiem nieprogramujących majsterkowiczów.

      Odpowiedz

Odpowiedz

anuluj

Masz uwagi?