ENTERPRISE KLUB
2021. október 2., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Belépés kizárólag klubtagok részére! (Klubkártyával vagy előfizetéssel!)
Welcome, Guest. Please login or register.


Author Topic: Fénypisztoly, fényceruza (Read 6714 times)

Offline vizor

  • EP fan
  • *
  • Posts: 239
  • Country: hu
    • View Profile
    • http://vizor.uw.hu
Fénypisztoly, fényceruza
« on: 2007.January.02. 12:24:08 »
Üdv, hardver guruk.

A kérdés, hogy az EP alapból képes-e valamelyik joystick porton fényceruzát kezelni ? Ha igen, akkor már csak egy ugrás a fénypisztoly. Maga a pisztoly "hardver" már adott piacos TV játékokból (pl. hamis Sega), a csatlakozója régi joy-os. Tudtommal a fényceruza felépítése és mûködése elég egyszerû, visszaad egy szórt X és egy pontos Y értéket plusz a tûzgomb. Ha a gép le tudná kezelni az eszközt, milyen jó kis játékokat lehetne csinálni  :ds_icon_cheesygrin:

Ha az EP mégse tartalmazna megfelelõ dekódolást, lehetne valamilyen külsõ áramkörrel szabványos joystick bemeneti jeleket generálni a pisztoly jeleibõl ?

Offline Tuby128

  • EP lover
  • *
  • Posts: 971
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.13 Firefox 3.6.13
    • View Profile
Re: Fénypisztoly, fényceruza
« Reply #1 on: 2011.March.04. 02:13:50 »
Áhh, itt egy nagyon jó téma, amit ha felhozok a srácoknak a munkahelyen, nem hisznek nekem.
Mielõtt válaszolnánk a kérdésre tisztázzuk, hogy is mûködik a fényceruza. Sajnos LCD megjelenítõvel rendelkezõ EP tulajdonosok errõl nem is álmodhatnak, ugyanis ez a technika feltételezi, hogy Katódsugárcsöves monitoron (TV-n) használjuk kedvenc gépünket.

 Képzeljük el, hogy van egy ceruzánk, amit a képernyõhöz érintve, az ott található fényt egy optikai üvegszálon keresztül elvezeti egy fényérzékelõ diódához, aminek a jelét aztán a számítógép kapja meg.

 Ha lelassítanánk az idõt, és úgy néznénk a képernyõt, azt látnánk, hogy egy világos pont halad balról jobbra a képernyõn, majd ahogy végigért, balról újrakezdi, de már egy picivel lejjebb, ezt addig ismételve míg el nem éri a képernyõ alját. Ezek után újrakezdi fentrõl.
 A valóságban ez olyan gyorsan történik, hogy a fénypontot, nem látjuk, csak azt a képet, amit a képernyõn hagyott fluoreszkálni, és mivel újra és újra végigmegy, úgy tûnik mintha folyamatos lenne minden fénypont világítása.

 Hogyan tudja a számítógép, hogy éppen hova tettük a fényceruzát, mikor csak egyetlen vezeték megy a ceruzából?

 A számítógép mindig tudja, hogy merre van ez a fénypont, hiszen pont õ irányítja.

 Vegyünk egy példát: Ha a ceruzát a kép kellõs közepére helyezem. A sugár meg pont fent van a legtetején, és halad folyamatosan jobbról-balra, miközben lassan lefelé is megyeget... A ceruzámnál csak sötétség van egészen addig, amíg oda nem ér a sugár. Ekkor a ceruza jelez a számítógépnek, hogy "Igen, most itt van!!".
 A számítógép gyorsan eltárolja, hogy hanyadik sort pásztázta, és a sorban körülbelül hanyadik pixel lehet.
 Tulajdonképpen ennyi.

 Ha jobban belemászunk a dologba ahhoz, hogy megállapítsuk merre jár a fény, azt kell megmondani, hogy mennyi idõ telt el a V-sync óta (ez lesz az Y koordináta) és mennyi idõ telt el H-sync óta (ez lesz az X) amikor jelzett a fényceruza.

 Fekete képernyõn sajnos alig látszódik a pásztázó sugár, ezért azt szokták csinálni, hogy világos (fehér) háttéren dolgoznak, másik lehetõség, hogy felemelik a fényerõt (Brightness - Napocska) így erõsebben világít, felismerhetõbb a ceruzának.

 Itt jött az, hogy nem hittek nekem, és gyártották a munkatársak a kérdéseket:
- Mi van akkor ha pont egy fehér folton áll a ceruza, nem zavar be?
Válasz:
- Ami nekünk fénypaca, az a lassított világban egy fénypont, ami tapogat. Nincsenek alakzatok, az csak érzéki csalódás. Nagyon leegyszerûsítve a képernyõ mindig sötét, kivéve ha ott a sugár.

Kérdés:
- Ugyan már, a fénypisztolyon amikor mehúzod a ravaszt, honnan tudod hogy éppen akkor van ott a sugár? Olyan gyorsan úgysem lehet meghúzni a ravasz.

Válasz:
- Ezt nem így kell értelmezni. A fénypisztolynak van egy lencséje, ami kinagyítja a fotodiódára a képernyõ egy adott területét. Amikor meghúzod a ravaszt, tulajdonképpen csak jelzel a számítógépnek, hogy pont a célra tartod a fegyvert. Ekkor, ahogy fent említettem a fényceruzánál, a pásztázó sugár alapján meghatározza, hogy kb. hova nézhet a fegyvered. Ha éppen ott a madár, amit le kell lõni, akkor eltaláltad. Ha egy picit arréb van, akkor nem. A ravaszt kb. fél másodpercig tartod meghúzva, ezalatt lemegy vagy 25 félkép, tehát 25-ször vizsgálhatja, hogy merre néz a puskacsõ. Természetesen csak az elsõ párat nézi, mert az ember keze is remeghet picit.

Kérdés:
- Ugyan már, ezek a gagyi piaci cuccok, akkor is jelezték hogy eltaláltam, amikor a lámpa felé tartottam, ez kamu!

Válasz:
- Azok a piaci cuccok lehet, hogy kamuk. Egy igazi berendezésnél ha a fény felé fordítod a fegyvert, és meghúzod a ravaszt, akkor az jelez a számítógépnek, hogy folyamatosan kapja a fényt. A TV irányából nem érkezhet folyamatos jel, hanem impulzusokban jelenik meg. Tehát nem is a TV felé fordítottad a pisztolyt.
 Visszatérve az igazi játéktermi gépeknél meg lehet figyelni, hogy a képernyõn valóban ott jelenik meg a jel, ahova lõttél.


A commodore-nál szerintem a joy helyére lehetett csatlakoztatni a fényceruzát. És amikor érzékelte a fénypontot, adott egy tûzgomb parancsot. Volt plusz két regiszter, ami a joystick tûzgombjának megnyomásakor mindig eltárolta a sugár x és y koordinátáit. Ezeket a regisztereket csak akkor vették figyelembe, ha épp rajzolóprogramot használtak. A többi progi figyelmen kívül hagyta, noha mindig ott van/volt.

Most hogy már tudjuk hogyan mûködik a berendezés, kérnék javaslatokat, hogy EP-nél hogyan lehetne megoldani a dolgot. Szerintem a Joy port kizárva. Túl lassú. Külsõ kártya kellene.

Offline Ferro73

  • EP lover
  • *
  • Posts: 819
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 2.0.0.9 Firefox 2.0.0.9
    • View Profile
Re: Fénypisztoly, fényceruza
« Reply #2 on: 2011.March.04. 06:00:36 »
fényceruzával már probálkoztam de nem találtam olyan regisztert amivel az X kordinátát megálapithatnánk
az Y meg kevés

Offline lgb

  • EP addict
  • *
  • Posts: 3555
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Safari Safari
    • View Profile
    • http://lgb.hu/
Re: Fénypisztoly, fényceruza
« Reply #3 on: 2011.March.04. 09:31:56 »
A commodore-nál szerintem a joy helyére lehetett csatlakoztatni a fényceruzát. És amikor érzékelte a fénypontot, adott egy tûzgomb parancsot. Volt plusz két regiszter, ami a joystick tûzgombjának megnyomásakor mindig eltárolta a sugár x és y koordinátáit. Ezeket a regisztereket csak akkor vették figyelembe, ha épp rajzolóprogramot használtak. A többi progi figyelmen kívül hagyta, noha mindig ott van/volt.

Jah, C64-en a VIC-II alapbol fel volt keszitve erre, en is epitettem hozza egy egyszeru aramkort meg gyerekkoromban, igaz, az valamiert igen megbizhatatlan volt (bar lehet koze van ahhoz, hogy az akkori TV-nken a kepernyo elott volt par centire egy vegu uveg, amit nem lehetett egyszeruen kioperalni - vagy nem mertem -, ez meg fenyceruza volt, es nem pisztoly, szoval megertem en, hogy gondja volt ezzel, de az is lehet, hogy en rontottam el valamit, ki tudja ma mar megmondani igy utolag).

http://en.wikipedia.org/wiki/MOS_Technology_VIC-II#Registers
http://www.c64-wiki.com/index.php/Light_pen

Megjegyzem, hogy ez egy eleg regi technika, wikipedia szerint 1952-ben volt mar ilyen, szal' nem ertem a kollegaid hozzaallasat, nem olyan nagy durranas ez (bar ketsegtelen, hogy pontossaga, megbizhatosaga nem mindig volt a toppon, ugymond):

http://en.wikipedia.org/wiki/Light_pen

« Last Edit: 2011.March.04. 09:36:01 by lgb »