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

Dziwny potencjometr z pada do gier

nelik1987 10 Wrz 2009 13:46 3268 10
  • #1 10 Wrz 2009 13:46
    nelik1987

    Poziom 31  

    Witam, wykonuje projekt sterowania ramieniem robota i do sterowania ręcznego chciałem wykorzystać pad do gier. Początkowo miał to być joystick ale pad miał więcej przycisków i lepiej się do tego nadawał. Kupiłem jeden używany pad w internecie rozebrałem i troszkę się rozczarowałem bo myślałem że te małe joysticki działają tak samo jak ich duży odpowiednik na zasadzie mikro-styków, czyli jak pochylę joystick w prawo to z prawej strony zewrze się styk, ale okazuje się, że w padzie jest troszkę inaczej. Zostały wykorzystane tam joysticki potencjometryczne które utrudniają mi sprawę.

    w położeniu neutralnym rezystancja po obu stronach jest taka sama i wynosi około 3kΩ, po przesunięciu w np. lewo z jednej strony rezystancja spada do około 120Ω a z drugiej strony tak gdzie sądziłem że rezystancja jeszcze bardziej wzrośnie jest zupełnie inaczej spada do około 2kΩ, może to być problem elektroniki znajdującej się na płyce bo jeszcze niczego nie wlutowywałem i może dlatego zachowuje się tak dziwnie?

    drugie pytane dotyczy tego jak połączyć taki joystick potencjometryczny do µC tak by dostawał on wyraźne stany niski i wysokie tak by nie było problemów ze sterowaniem bo chyba bezpośrednie podłączenie napięcia zasilania procka do wspólnej nózki potencjometru i badanie stanu wysokiego na pozostałych nóżkach nie jest dobrym pomysłem? dodam ze nie chce wykorzystywać przetworników bo są mi potrzebne do czegoś innego

    0 10
  • #2 10 Wrz 2009 18:15
    199693
    Użytkownik usunął konto  
  • #3 10 Wrz 2009 19:04
    nelik1987

    Poziom 31  

    potencjometr jest, tylko mój przyrząd pomiarowy się wyeksploatował, podłączyłem to na chwile pod przetwornik A/D i zobaczyłem jak działa niestety nie jest zbyt liniowy :/ bardzo małe wychylenie znacznie zmienia rezystancja a później aż do końca wychylenia joysticka prawie się nie zmienia co utrudni sterowanie. Wpadłem na pewien pomysł, poczytałem notę ATmega8 i znalazłem wartości progowe stanu wysokiego i niskiego i właśnie Ty też o tym napisałeś, wygląda na to że będzie działało tak jak chciałem czyli w stylu ON/OFF, zastanowię się na wykorzystaniem przetworników na przykład do sterowania prędkością ramienia ale to dopiero jak uruchomię je. Ten problem z potencjometrami w sumie dał mi nowy pomysł a mianowicie bedzie mozna zmniejszyć ilośc przewodów wychodzących z pada bo od jednego potencjometry będą tylko 2 przewody z czego 2 to zasilanie i masa

    0
  • #4 10 Wrz 2009 19:58
    OldSkull
    Poziom 27  

    Ja się może podepnę. Używaliście może kiedyś w jakimś programie pada do gier? Szukam przystępnie napisanego przykładowego programu w C++ wykorzystujacego analogi i przyciski pada.

    0
  • #5 10 Wrz 2009 20:25
    nelik1987

    Poziom 31  

    Niestety okazuj się że AVR nie ma strefy nieczułości :/ dla sprawdzenia tego podłączyłem potencjometr jako dzielnik napięcia i podpoiłem do PC0. napisałem prosty programik do sprawdzenia czy istnieje coś poza stanem wysokim i niskim ale niestety nie :/

    oto fragment sprawdzający stany portu

    Code:

       if(bit_is_clear(PINC,0)) //jeżeli przycisk w prawo
       {      
          LCD_GoTo(0,0);
          LCD_WriteText("NISKI   ");   
       }
       else
       {
             if(bit_is_set(PINC,0)) //jeżeli przycisk w prawo
          {

             LCD_GoTo(0,0);
             LCD_WriteText("WYSOKI     ");   
          }
          else
          {
             LCD_GoTo(0,0);
             LCD_WriteText("?????????   ");   
          }
          
       }


    nidy nie pojawił się napis "????????" co zonaczało by że nie ma stanu nieustalonego.

    wiec mam 2 wyjścia albo zrobic to na 2 tranzystorach i tak je wysterować by podawały ustalony stan na 2 oddzielne piny po znacznym wychyleniu joysticka lub zastosowanie przetwornika A/D co prze chwilą zrobiłem i działa całkiem nieźle

    0
  • #6 10 Wrz 2009 23:55
    soklos
    Poziom 12  

    W każdym układzie cyfrowym istnieje coś takiego jak poziomy napięć „pasmo” zabronione i nawet sam producent nie powie Tobie czy przykładowo 1,5V będzie interpretowane jako stan wysoki czy stan niski… zakładając, że dla stanu niskiego jest max 1V a dla stanu wysokiego minimum 4V… zależy to od zbyt wielu czynników.

    Proponuje komparator z rozsądną pętlą histerezy a najlepiej jak już masz analogowe wyjście z pada to przetwornik ADC.
    Wiadomo im bardziej złożony układ tym trudniej uruchomić, więc nic nie stoi na przeszkodzie tymczasowo dołożyć kilka wzmacniaczy OP i uruchamiać z samą funkcją ON/OFF

    Pozdrawiam.

    0
  • #7 11 Wrz 2009 11:30
    Tremolo
    Poziom 43  

    z tego co wiem w przemyśle oporność dla małych odgięć jest niewielka - jest tak zwany martwy przedział, potem zmienia się do min i max w sposób liniowy. Mógłbym Ci "pożyczyć" manipulator bardziej przydatny, nie wiem czy do końca działa. A próbowałeś odpalić sterownik na zwykłym potencjometrze typu "Lin" działał?

    0
  • #8 11 Wrz 2009 13:46
    tzok
    Moderator Samochody

    Stare pady do PC na GamePort miały przełączniki zwierające rezystory, bo wejścia osi w GamePorcie są analogowe (ale pad podawał tylko skrajne wartości).
    Kup pad od Atari, Comodore czy jakieś prostej 8-bit konsoli, albo przerób ten co masz.

    0
  • #9 11 Wrz 2009 15:50
    nelik1987

    Poziom 31  

    ten programik który miał wyswietlić ?????? w strefie nieczułości badałem na potencjometrze zwykłym kreciłem bardo wolno i nic z tego nie ma strefy inne niż stan wysoki i niski, a co myślicie żeby systerować 2 tranzystory tak by załączał się po podaniu odpowiedniego napięcia na bazę

    0
  • #10 11 Wrz 2009 16:23
    soklos
    Poziom 12  

    Tranzystor tak… Ale ja napotkałem kiedyś na taki problem, że przy wolno zmieniającym się sygnale widać było, że niepewnie przełącza (brak pętli histerezy).
    A może scalak: 7414 , jest to sześciokrotny inwertor z wejściem schmitta ;) mniej elementów niż z tranzystorami ;) myślę że powinno przygrać.
    A że zaneguje sygnał to chyba nie przeszkadza, bo przecież wszystkie jednocześnie będą negowane, choć zapewnie są też jakieś scalaki bez inwersji.

    Pozdrawiam

    0
  • #11 09 Sty 2010 00:01
    nelik1987

    Poziom 31  

    Rozwiązałem problem podłączając potencjometry do wejścia przetwornika A/D i tak odczytuję napięcie jakie jest na środkowej nodze potencjometru, tym samym wiem w którą stronę wychylony jest joystick. Dziękuję wszystkim za pomoc.

    0