Game port több mint négy gombbal Delphiben

Game port több mint négy gombbal Delphiben
2005-06-10T18:34:09+02:00
2005-06-13T09:32:04+02:00
2022-10-25T12:40:43+02:00
B_JANOS
Van egy programom (Delphi), amely egy külső eszközről fogad nyomógomb megnyomás eseményeket. Az eszközt jelenleg a számítógép game portjához csatlakoztathatom, mert ebben van négy nyomógomb csatlakoztatási lehetőség.
Bővítenem kéne a funkciót 6 gomb kezelésére, de nem tudom mitévő legyek. Úgy tudom egyes játékvezérlők képesek több mint négy gomb észlelésére a game porton kersztül, de nem tudom hogyan.
Minden egyéb megoldás is érdekel!!
Előre is köszi!
Mutasd a teljes hozzászólást!
google -> digital joystick.
Használhatod gombnak az X-Axis, Y-Axis bemeneteket, amikor is a digital jojstickhoz hasonlóan egy(két) kapcsolóval és két ellenállással vezérled az analóg bemenetet. De hangkártyából 3-4-et is elbír a PC, és úgy emléxem a gameportok is mind működtek egymás mellett (erre ne vegyél mérget).
Mutasd a teljes hozzászólást!

  • Meg soha nem hasznaltam ezt a portot(talan ez az egyetlen a regiek kozul :), de halvanyan az remlik, hogy van 1(2) olyan bemenete, amelyen analog modon egy potenciometer(pontosabban reosztat) allasat kepes erzekelni!!!

    Nos, ez igy hasznalhato eleg sokszamu kapcsolo lekezelesere is...
    Jelen esetben a reosztatot behelyettesited 6+1 ellenallassal, melyben az ellenallasok a 2 hatvanyai szerint viszonyulnak egymashoz. Ez mind sorba van kotve egymassal. A 7 kozul 6 ellenallassal parhuzamosan kotod a 6 kapcsolot. Igy barmelyik kapcsolot(akar tobbet is egyszerre) kapcsolod be, az ellenallasok osszege egy elore meghatarozhato, diszkret erteket vesz fel, amit a programban leolvashatsz...

    Remelem ertheto volt...
    Mutasd a teljes hozzászólást!
  • Elméletileg működne ez, de a 63 jelszint meghaladja a gameport tudását. Fizikailag egy osczcillátort vezérelsz a potenciométerrel, és a driver azt számolja. Csapnivalóan rossz a linearitása, és meglehetősen nagy a driftje. Elméletileg pluszmínusz 127 értéket ad vissza de már a 0 pont is mászkál úgy pluszmínusz 5-10-et néhány perc alatt.
    De ha már ellenálláshíd, az ilyesmire jobb az R-2R híd. A standard 6/12-es értéksorból elég nehéz összeállítani a 2^n sorozatot, a válogatásról nem is beszélve.
    Mutasd a teljes hozzászólást!
  • Csak otlet volt...De holnap(ma) utananezek a harver kezikonyveben ennek!

    Az ellenallasokkal igazad van, csak azert irtam a fenti elvet, mert nem ismerem a portot, es csak a poti remlett, amit igy egyertelmuen lehet helyettesiteni, mig a R-2R hidnal ugye nem foldfuggetlen, igy enm pont ugyanaz... Persze jelen esetben lehet, hogy igy is hasznalhato, es valoban sokkal egyszerubb, pontosabb a 2 hatvanyai megalkotasa...
    Most megyek aludni...holnap majd uj verziot mondok
    Mutasd a teljes hozzászólást!
  • A gameport bekötése itt van
    lényegében egy kondenzátor töltődik fel ellenálláson keresztül tápfeszültségre. Ergo lényegében mindegy, hogy a töltőfeszültséget változtatjuk, vagy az ellenállást. De a feszültségváltoztatásnak is meg van a hátulütője, az IC komparálási szintje, ami olyan ~2 V lehet (per has).
    De 2-3 gombot biztonsággal lehet kezelni az "analóg" bemeneten, ehhez nem kell különleges linearitás, ránézésre egy 22k, 47k, 100 k ellenállás-sorral már megbízhatóan megkülönböztethető értékeket ad vissza. És van belőle 4.
    Mutasd a teljes hozzászólást!
  • De a feszültségváltoztatásnak is meg van a hátulütője, az IC komparálási szintje, ami olyan ~2 V lehet (per has).

    Na, valami ilyesmit sejtettem en is, ezert ajanlottam a biztos lancot a hid helyett...

    Megneztem a leirast! Hat..., a kis kezikonyvemben nem sok info volt rola, talan 1 keplet, ami a legtobbet ert:

    T(us)=24.2+0.011*R(kOhm)

    Ebbol nekem az jonne le, hogy olyan nagyon pontatlan nem lehet, ha ilyen pontos keplet van az ido szamitasara...
    Az nem lehet, hogy az idomero programresz volt pontatlan, mert en ugy ertettem, hogy pollozassal kell figyelni mikor rakja ki 1-be a megfelelo bitet a hardver ???!!! Itt konnyu elszurni, es pontatlansagot bevinni...
    De elhiszem neked!!!!

    Akkor viszont az van, ami absolute logukus, es magatol adodik..., kette kell szedni a 6 kapcsolot, egy 2-szer 3 ellenallasbol allo lancra. Mind a ketto teljesen egyforma lenne, es az ertekek lehetnek 6.2K+18k+56k. Ez igy mar nem a 2 hatvanyai, de az lenyegtelen, viszont igy nagyobb biztonsaggal lehet az egyes ertekeket megallapitani!!! Mindegyik ellenallassal parhuzamosan megy egy kapcsolo. Tovabbi ellenallas nem kell, mivel a portnak van 1 beepitett 2.2k ellenallasa.

    Igy 2 analog csatornara rakotve a ket "halot", ket meressel megtudhato a gombok allasa...
    Mutasd a teljes hozzászólást!
  • Én ugyan nem írtam drivert a joystick kezeléséhez, dosból int15h-tel lehet kiolvasni, windózból meg valami apival. De amikor a fijajim játékos korban voltak, majd később egy pseudo MIDI-controllerrel (VMidiJoy) meggyűlt a bajom, jobb-rosszabb hangkártyákkal, alaplapi portokkal, különböző olcsóbb-drágább joystickekkel, de a midi-controllerrel is, amelyikben precíziós potenciométerek voltak.

    Felteszel egy joysticket a gameportra (vagy csak 2 50k-s ellenállást), installálod win alatt, elindítod a kalibrációt, oszt nézzed a képet. Hozzá se nyúlsz, a célkereszt mégis szépen fog össze-vissza mászkálni a képernyőn.
    Szóval nem metrológiához van ez kitalálva.
    Mutasd a teljes hozzászólást!
  • Köszi!
    Nagyon jó ötlet, az analóg bemeneteket úgy sem használtam!
    Nem kell túl precíznek lennie, mert csak 2-2 értéket kell érzékelnie, a többire ott vannak az eredeti gombok.
    Mutasd a teljes hozzászólást!
  • Neked is köszönöm! Sokat segítettél!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd