Hirdetés

Új hozzászólás Aktív témák

  • válasz Urna #21221 üzenetére

    Szia!

    Teljesen replikálni szeretnéd a projektet, vagy hasonlót elérni? Hol helyezkedik el a projekt az árérzékenység/bütykölés arányon?

    Csak azért kérdezem, mert ez az egész simán megoldható egy Attiny85-el, 4db 8bites kaszkádolt shift regiszterrel, és egy 8 bites multiplexerrel.

    Az Attiny tud billentyűzetet emulálni, csak kevés az IO rajta (5, ill reset kiiktatásával 6)

    A shift registereket 2 pinnel meghajtva meg tudod címezni a billentyűzet 23 pinjét, és a 8 bites multiplexer 3 címző bemenetét. A multiplexer a 8 visszatérő ágat 1 kimenetre fésüli be címzés szerint, így 1 pinnel olvashatod a visszatérő eredményt. 1 pint használhatsz resetnek a multiplexeren és a regisztereken.

    Sebességét tekintve persze lassabb lesz. Attiny85-ön sima digitalWrite-al 132kHz egy output sebessége, portmanipulációval ~800kHz+

    Ahhoz, hogy végigscanneld a billentyűzetet, a 23 kimenetet mind-mind meg kell címezni, és mellé minden alkalommal a 8 multiplexer címet is. Ez 184 teljes címzés ami 26 kimenet címzéséhez ~4800 output művelet. 800kHz mellett ez azt jelenti, hogy másodpercenként 166x tudod lescannelni a teljes billentyűzet állapotát. Azaz 6ms-ig el kell tartson egy lenyomás, és két lenyomás közti szünet, hogy legyen esély észrevenni. A valóságban szeretünk ilyen műveleteknél 3 ütemet fenntartani, hogy kiszűrhetőek legyenek a zavarok.

    Itt leteszteltem hogy átlagosan meddig tartom nyomva a laptop billjét gépelés közben. 50ms jött ki, és a legrövidebb amit szándékosan okozni tudtam 34ms volt.

    Szóval szerintem bőven jó lehet.

    Szerk.: Ja és a scannelés amivel számoltam, az szimpla bruteforce, ennél léteznek okosabb megoldások, amivel minimum le lehet felezni a ciklust.

Új hozzászólás Aktív témák