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

Własny kontroler do gry - jak zastąpić przycisk przełącznikiem dźwigienkowym?

07 Sty 2018 12:49 666 5
  • Poziom 9  
    Witam.

    Chcę zbudować własny kontroler do gry ETS2.
    Elektroniczną "bazą" do tego byłby układ "LeoBodnar": http://www.leobodnar.com/shop/index.php?main_page=product_info&cPath=94&products_id=204
    Urządzenie to pozwala na podpięcie do 8 analogowych potencjometrów (4 z nich to np: kierownica, pedał gazu, pedał hamulca i pedał sprzęgła) oraz do 32 przycisków (w matrycy).

    W grze ETS2 (podobnie jak w innych grach) domyślnie steruje się klawiaturą. Można też sterować gamepadem lub kierownicą z pedałami. Na klawiaturze są klawisze, w gamepadzie czy w kierownicy - przyciski (pushbutton). W grze wieloma rzeczami steruje się na zasadzie przełącznika (toggle). Np: światła, wycieraczki, kierunkowskazy, światła awaryjne, itp. - czyli pierwsze wciśnięcie klawisza na klawiaturze (lub przycisku na kontrolerze) włącza coś. Drugie wciśnięcie tego samego klawisza (lub przycisku na kontrolerze) - wyłącza.

    Ja w swoim kontrolerze chciałbym zastosować kilka przełączników dźwigienkowych (SPDT).

    Oczywiście da się: łączę środkowy i skrajny styk przełącznika ze stykami przeznaczonymi dla pushbuttona. I działa to tak: dźwigienka w górze - np. światła wyłączone. Przestawiam dźwigienkę w dół (odpowiada to wciśniętemu w sposób ciągły przyciskowi) - i jest OK: światła się włączają.
    Problemem jest to, że gdy chcę tym przełącznikiem wyłączyć światła i przestawiam dźwigienkę z powrotem do góry, to światła nie gasną. I to normalne, bo odpowiada to puszczeniu ciągle wciśniętego przycisku. Więc, żeby te światła w grze wyłączyć - muszę ten dźwigienkowy przełącznik przestawić do góry, potem znów na dół i jeszcze raz do góry. Ale nie o takie działanie mi chodzi.

    Powie ktoś, że można zastosować przełącznik astabilny - dźwigienka w położeniu środkowym i wychylenie jej w górę czy w dół powoduje impuls (jak pushbutton), a po jej puszczeniu wraca do spoczynkowej, środkowej pozycji. Tylko, że ja chciałbym - patrząc na przełącznik - widzieć czy coś (np. światła) jest włączone czy nie.

    I teraz moje pytanie: czy da się elektronicznie, w jakiś prosty sposób (bez mikrokontrolera?), zastąpić przycisk (pushbutton) dźwigienkowym, dwupozycyjnym przełącznikiem SPDT tak, żeby gra odczytywała KAŻDE przestawienie jego dźwigienki (obojętnie, w którą stronę) jako krótkie wciśnięcie klawisza (przycisku) - czyli jako zwarcie dwu styków?

    Dwa styki dla przycisku (także na tej płytce LeoBodnar) chyba można zewrzeć ze sobą tranzystorem w stanie nasycenia (wpinając jeden z nich do kolektora a drugi do emitera). Jeśli tak, to wystarczy w momencie przestawienia dźwigienki SPDT wygenerować krótki impuls do wysterowania tranzystora. Znalazłem w necie taki układ oparty o "nieśmiertelny" timer N555.
    Jednak taki układ reaguje tylko na jedno: pojawienie się stanu wysokiego - lub na pojawienie się stanu niskiego. A potrzeba, żeby reagował na obydwie te rzeczy (niezależnie od tego, która z nich wystąpiła). Dwa układy z dwoma N555?

    Może. Ale tu dochodzimy do tego, że sposób ma być jak najbardziej prosty.

    Jeden taki układ z N555 musi zawierać kilka kondensatorów i rezystorów. A gdy przełącznikami SPDT będę chciał zastąpić kilka (albo co gorsza - kilkanaście) przycisków? Wtedy tmerów N555 będzie dużo i układ się komplikuje. W takim przypadku chyba korzystniej będzie zrobić dla tych kilku (kilkunastu) przełączników uklad na mikrokontrolerze.

    Ale jakoś nie wierzę w to, żeby nie istniał jakiś prosy sposób, z minimalną ilością elementów elektronicznych dla jednego przełącznika SPDT.

    I jeszcze jedna rzecz: układ LeoBodnar jest zasilany z portu USB komputera (5V).
    Te przełączniki dźwigienkowe w moim kontrolerze (i układ generowania pojedynczego impulsu) będą wymagały dodatkowego zasilania przez zewnętrzny zasilacz (też 5V?). Czy połączenie dodatkowego zasilania układu przełączników dźwigienkowych i zasilania z portu USB nie spowoduje problemów (mam na myśli komputer)? Potrzebna wspólna masa?

    Podpowiecie?

    Liczę na Waszą pomoc i z góry dzięki!
  • Poziom 30  
    NOR (w scalaku lub na tranzystorach) + rc na wyjściu dla podtrzymania. W pojedynczym scalaku masz więcej bramek. To chyba najprostsze rozwiązanie, ale uC i tak zająłby najmniejszą ilość miejsca.
    Co do zasilania, zależy jakie będziesz miał tam prądy (jeśli dasz duże oporniki do podciągania, prądy będą małe i usb nic nie będzie)
  • Poziom 9  
    Dzięki Ci drobok za szybką odpowiedź.

    Elektroniką interesuję się zupełnie od... niedawna. Ale bramki NOR już znam. Układy czasowe RC dla podtrzymania (czegokolwiek) też.

    Ale zupełnie nie "kumam" Twojej podpowiedzi. Jak niby miałoby to być połączone?
    Jeśli na środkowy styk przełącznika dźwigienkowego SPDT dam 5V, a jego dwa skrajne styki połączę z wejściami bramki NOR - to co to mi da?
    I co niby miałby podtrzymywać układ RC na wyjściu tej bramki NOR?
    Przecież (zgodnie z "tablicą prawdy") na wyjściu bramki NOR otrzymam sygnał wysoki TYLKO wtedy, gdy na obydwu wejściach bramki NOR - RÓWNOCZEŚNIE oba sygnały będą niskie. Nieprawdaż?

    Bez urazy. Może to ja wciąż czegoś nie rozumiem. Jeśli tak - to poproszę o jakiś schemat połączeń...
    I żeby była całkowita jasność - elektroniką zainteresowałem się dopiero około 3 lat temu.
    Pozdrawiam - encelados
  • Poziom 30  
    Dobrze myślisz, zapomniałeś tylko o tym że twój przełącznik nie jest idealny i na czas przełączania między jednym a drugim pinem nie zwiera on niczego (to czas przez który na obu pinach nor będą zera). A że czas jest krótki (warto sprawdzić czy twój układ jest w stanie go wychwycić, czy uzna to jako drganie styków) to musisz wziąć i wydłużyć czas tego piku.
  • Poziom 9  
    Dzięki.

    Oczywiście przed zadaniem tego pytania tutaj - miałem do dyspozycji (do testu) przełącznik dźwigienkowy dwupozycyjny (trójpozycyjny też). Oraz dwa mierniki (multimetry). Jedna (wspólna) końcówka obu multimetrów była podłączona do środkowego styku przełącznika SPDT - a pozostałe do pozostałych styków przełącznika. Chodziło mi właśnie o wybadanie czy w trakcie przestawiania dźwigienki z jednego położenia w drugie następuje to co napisałeś: "(...) przełącznik nie jest idealny i na czas przełączania między jednym a drugim pinem nie zwiera on niczego (...)". Ale tą metodą nie udało mi się zaobserwować momentu podczas przełączania (przestawiania dźwigienki z jednego położenia w drugie), w którym przełącznik nie zwierałby niczego. Przełączanie było natychmiastowe. Albo przełączniki zbyt dobrej jakości - albo metoda "wybadania" zbyt słaba. Być może niezbędny byłby tu oscyloskop (którym nie dysponuję). Zjawisko drgania styków znam też już od jakiegoś czasu.

    Napisałeś: "(...) A że czas jest krótki - warto sprawdzić czy twój układ jest w stanie go wychwycić, czy uzna to jako drganie styków (...)".

    O.K. Mam gdzieś scalaka z bramkami NOR. Więc wolną chwilą popodłączam odpowiednio i wypróbuję.

    I dalej: "to musisz wziąć i wydłużyć czas tego piku".
    Rozumiem, że wydłużeniu "tego piku" ma służyć ten układ RC na wyjściu NOR?
  • Poziom 9  
    Weekend właśnie się kończy. Wczoraj i dziś miałem trochę wolnego czasu - więc na płytce stykowej złożyłem układ sugerowany przez droboka.
    Mój scalak z bramkami NOR to CD4001 - czyli układ CMOS zawierający cztery dwuwejściowe bramki NOR.
    Wnioski:
    1. Rzeczywiście przełącznik SPDT nie jest idealny. I podczas przestawiania jego dźwigienki z jednego położenia w drugie jest moment, w którym nie zwiera on niczego. Bramka NOR wychwytuje ten moment.
    2. Niestety, ten moment gdy przełącznik SPDT "nie zwiera niczego" (a tym samym czas trwania stanu wysokiego na wyjściu bramki NOR) jest tak krótki, że dołączenie tam jakiegokolwiek układu RC (wydłużającego impuls stanu wysokiego) nic nie daje. Bramka NOR z układu CD4001 działa tak samo szybko - niezależnie czy z układem RC na jej wyjściu, czy bez niego.