Welcome, Guest. Please login or register.


Author Topic: HID kezelés Arduino -val (Read 75038 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #270 on: 2014.October.13. 20:11:17 »
Ugye azt jól értem,

hogy mind a billentyűzet mind a joystick vonalainak beolvasásához a b5 portot kell írni, és a b5 portra kiírt 4 bites érték jelenik meg majd azon az IC -n, amit Zozo korábban megjelölt ( plussz az az egy drót, aminek valami éle a változást jelzi) ?

Tehát mind a billentyűzet, mind pedig a joystick kérelem megváltozását lehet detektálni ugyanazon az egy dróton ?

Tehát ha egy billentyűzet illesztő úgy lesz megvalósítva, hogy a billentyűzet 8+4+1 drótja ki lesz vezetve az EP -ből hátul,

és én egyenlőre így tervezem (rájöttem mostanra, hogy a lehetőségek végtelenek, kinek mi az ízlése, kinek mi jó, maximum talán az ultimate minden usb eszköz belülről, csak egy szal usb kivezetés módszer emelhető a többiek fölé, de az sem 100% -osan, mert arra tuti nem dugsz régi fajta joystickot, max ha először a régi fajta joystick -ot illeszted az USB -hez ... :)),

naszóval először 8+4+1 kivezetéssel tervezem a billentyűzet illesztőket,

és akkor már igaz az, hogy ha egy vezérlő elkapja a változás jelet azon az egy biten, majd beolvassa a 4 bitet, és annak megfelelően beállítja a billentyűzet 8 drótját plussz a joystick 3 drótját is (vagy 6 drót, ha két joystickban gondolkodunk), akkor az egy teljesen korrekt működés lesz ?

Ugyanis ezzel a módszerrel meg lehetne úszni a joystick portok 4+1 drótján a változás figyelést ... (mint említettem ha csak 4 vagy még annál is kevesebb megszakítás láb van egy kontrolleren, ott gázos tud lenni a 4+1 megszakítás ... :))

Azon kívül hogy ez korrekt eredményt adna -e,

még kérdezném azt is, hogy annó lgb mondta, és Zozo megerősítette, hogy ha a billentyűzeten a 10 vonalas kérelemváltozás figyelést valósítanám meg,
akkor ezeken a típusú drótokon még a 11 z80 ciklusnál is rövidebb ideig van csak meg az információ, hogy mit kér éppen a z80,

ez egyébként a joystick 4+1 vonalára is érvényes vagy ott megintcsak van több idő, mint a billentyűzet 4 vonalas módszerében ?
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14743
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #271 on: 2014.October.13. 20:28:40 »
mind a billentyűzet mind a joystick vonalainak beolvasásához a b5 portot kell írni, és a b5 portra kiírt 4 bites érték jelenik meg majd azon az IC -n, amit Zozo korábban megjelölt ( plussz az az egy drót, aminek valami éle a változást jelzi) ?

Tehát mind a billentyűzet, mind pedig a joystick kérelem megváltozását lehet detektálni ugyanazon az egy dróton ?
Igen.

Quote
még kérdezném azt is, hogy annó lgb mondta, és Zozo megerősítette, hogy ha a billentyűzeten a 10 vonalas kérelemváltozás figyelést valósítanám meg,
akkor ezeken a típusú drótokon még a 11 z80 ciklusnál is rövidebb ideig van csak meg az információ, hogy mit kér éppen a z80,

ez egyébként a joystick 4+1 vonalára is érvényes vagy ott megintcsak van több idő, mint a billentyűzet 4 vonalas módszerében ?
A mit kér az ott van mindaddig amíg nem változik. A változás észrevétele korlátos, amit vagy a +1 dróttal, vagy pedig az előzöleg beolvasott 10 vonalas értékhez hasonlítgatással lehetne elkapni.
A billentyű 10 vonal az egyenlő a 2xjoy 4+1-el.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #272 on: 2014.October.13. 20:52:54 »
Quote
A mit kér az ott van mindaddig amíg nem változik. A változás észrevétele korlátos, amit vagy a +1 dróttal, vagy pedig az előzöleg beolvasott 10 vonalas értékhez hasonlítgatással lehetne elkapni.
A billentyű 10 vonal az egyenlő a 2xjoy 4+1-el.

Szerintem nem értetted meg mit akarok kérdezni (két helyen is van 4+1) ...

Tehát billentyűnél EP szempontjából nézve:

4+1 bites kimenet 11 orajelciklusos feleléssel működik, és 8 bitet kell válaszoljak

vagy

10 bitet (drótot) figyelek, amelyiknél mindíg csak egyik lesz kijelölt, de ez az információ (hogy melyik kijelölt) még a 11 órajelciklusnál is csak rövidebb ideig van meg.
Élfigyelt megszaknál ez nem gáz, de ehhez 10 megszak drót kellene (megszakos módszernél). Mindegy, a lényeg hogy az infó nincs meg rajtuk 11 ciklusig, csak még rövidebb ideig.


Namost joystick:

lehet használni ugyanazt a 4+1 bites módszert mint a billentyűnél,

DE

ha nem azt használom, nem a billentyűzet 4+1 vonalát,
hanem a 4+1(X2) drótot hátul a joystick csatlakozó(ko)n, amelyek közül szintén egyszerre csak egy lesz aktív, akkor AZOKON is csak a 11 ciklusnál jóval kevesebb ideig van ott a kérelem ?


Vagy lehet hogy azért sem érthető a kérdésem, mert a joystick csatlakozókon összesen lévő 10 vonal, AZ PONT UGYANAZ, konkrétan ugyanaz a drót mint a billentyűnél a 10 drótos módszernél ?
És mivel pont ugyanaz, ezért nyilvánvalóan azokon is csak rövidebb ideig van az információ, mint 11 ciklus ?
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #273 on: 2014.October.13. 21:09:24 »
Quote
A billentyű 10 vonal az egyenlő a 2xjoy 4+1-el.

Amit itt írtál is ... :)

(Csak ott még nem értettem meg, majd magam is megkérdeztem, aztán visszaolvasva már megértettem ... :))
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14743
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #274 on: 2014.October.13. 21:12:30 »
10 bitet (drótot) figyelek, amelyiknél mindíg csak egyik lesz kijelölt, de ez az információ (hogy melyik kijelölt) még a 11 órajelciklusnál is csak rövidebb ideig van meg.
Nem. Az ott van a "végtelenségig", pontosabban amíg újabb B5h port írás nem történik.
Egy gomb, vagy azonos sorban lévő gombok esetén nem kell újra írni a B5h-t, akárhányszor lehet újból a lekérdezni.

De ott van ugyanaz a korlát, hogy a változást időben észre kell venned, hogy a lehetséges legkorábbi beolvasásánál már a jó sort olvassa.

Quote
a joystick csatlakozókon összesen lévő 10 vonal, AZ PONT UGYANAZ, konkrétan ugyanaz a drót mint a billentyűnél a 10 drótos módszernél ?
Igen, pont ugyanaz.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #275 on: 2014.October.13. 21:19:29 »
Ha engem nem érdekel (egyenlőre) a joystick emulációs kérdéskör az egérnél,
akkor a serial csatlakozás teljesen elhagyható ?

Hol van infó arról, hogy konkrétan mit kell kommunikálnia (joystick és serial portokon) a boxsoft illesztőnek az EP -vel ?
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #276 on: 2014.October.13. 21:34:51 »
Egyébként a joystick port -ok 6 bemeneti bitjét azt éppúgy ki tudnám vezetni a billentyűzet 8 bementi vonala mellé, nem ?

Vagy a joystick portoknak valójában csak 3 bementi vonaluk van, mely hol az egyik, hol a másik port bemeneteit tartalmazza ?

Akkor azt a hármat (vagy hatot) ... azt honnan lehetne kivezetni ?



Ha már kihozok csatit, kivezetgethetek akármit is, és akkor esetleg nem kell a csatolómnak több csatlakozón az EP- n lógnia ...

Szóval ha már kiviszek 4+1+8 -at, és első körben a joystick -ot is a 4+1 -ről fogom meghajtani, akkor már a bemeneti vonalait is kihúzhatom,
és akkor minden ezen a csatin lesz, nem kell külön a joy portra is csatlakozzak ...

Úgyis kell átalakítás (értsd: zsinórok beforrasztása) a billentyű miatt, azt nem lehet megúszni, akkor már párral több nem oszt,
ha kényelmesen elférnek.

« Last Edit: 2014.October.13. 21:39:11 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #277 on: 2014.October.13. 21:42:01 »
Csak most ki ne derüljün, hogy a joystick portok bemenetei IS megegyeznek a bill. bemeneti vonalaival ... :)
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14743
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #278 on: 2014.October.13. 21:43:21 »
Vagy a joystick portoknak valójában csak 3 bementi vonaluk van, mely hol az egyik, hol a másik port bemeneteit tartalmazza ?
Így van.

Legegyszerűbb az RP2 lábairól, azon ott van a 8 billentyű meg a 3 joy is.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14743
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #279 on: 2014.October.13. 21:44:46 »
Csak most ki ne derüljün, hogy a joystick portok bemenetei IS megegyeznek a bill. bemeneti vonalaival ... :)
Nem, a bill a B5h portra megy a 27-es IC-n keresztül, a joy meg a B6h portra megy a 28-as IC-n.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #280 on: 2014.October.13. 22:07:49 »
Quote
A Tigrian féle bekötésben igen. De az általam javasolt, az U25 kimenetéről szedjük a 4 bit megoldásban, a 4 bit ott van "örökké", így ez nem gond. Csak a változását jelző WR0 jel után kell neked időben áttérni a megfelelő 8 bites kimenetre, hogy a Z80 már a kívánt sort lássa.

Akkor ezek szerint a Tigrian féle bekötéssel kevertem ezt össze,
és ezek szerint a Tigrian féle bekötés egy HARMADIK féle bekötés ?

Tehát sem a 4+1 -es sem a 10 -es, hanem egy harmadik féle, aminél igaz, hogy még a 11 órajelnél is kevesebb idő van a kérelem beolvasására ?

Tigrian direkt maga ellen dolgozott, vagy mi ? :)
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14743
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #281 on: 2014.October.13. 22:19:45 »
és ezek szerint a Tigrian féle bekötés egy HARMADIK féle bekötés ?

Tehát sem a 4+1 -es sem a 10 -es, hanem egy harmadik féle, aminél igaz, hogy még a 11 órajelnél is kevesebb idő van a kérelem beolvasására ?
Igen.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #282 on: 2014.October.13. 22:26:53 »
Bár addig USB irányba konkrétan nem fogok elmozdulni, míg a PS/2 eszközök, és a sokgombos hagyományos konrollerek kezelése kész nincs,
de alacsony prioritásban mindíg fut az USB kérdéskör is, mindíg rákeresek a felbukkanó vonatkozásokra,

egy ilyen eredménye egy ilyen találat:

http://uk.farnell.com/atmel/at90usbkey/at90usb1287-usb-jtag-demo-board/dp/1455078

Ez a kari olyan árban van, mint az is amit épp most használok, AVR, 16 MHz -es,
de egy olyan AVR van rajta (AT90USB1287), ami USB HOST képes, és dedikáltan megy ezzel az USB (HOST is) könyvtárral:

http://www.fourwalledcubicle.com/LUFA.php

Itt olvasható, hogy igen, tuti megy ezzel a könyvtárral, USB HOST módban is:

http://www.fourwalledcubicle.com/files/LUFA/Doc/140928/html/_page__a_v_r8_support.html



Szóval, ez egy jó kis lépésnek tűnik nekem az USB HOST megoldás felé,
egyetlen lapba integrálva ami kell az USB HOST -hoz, nem kell több lapot passzintsak,

de a sheet -jéből:
http://www.farnell.com/datasheets/5088.pdf

a következő információkra nem sikerült rájönnöm:

- Milyen feszkóval lehet ezt tápolni
- Hány GPIO lábat tud kezelni
- GPIO -k 5V -osak -e, vagy legalább tolerálják -e az 5V input -ot

Ha ezekre lenne pozitív válasz,
akkor a PS/2 és hagyományos cuccok lezárása után,
mikor az EP kommunikációs sebesség kérdéskör már lezáródott,

akkor egy ilyennel lenne célszerű folytatnom az USB irányba ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #283 on: 2014.October.14. 02:02:34 »
Na közben kiderült, hogy amit én jól feltelepítettem linux -ra, az avr-libc friss verzióját,
azt rohadtul nem látja az avr-gcc, vagyis nem mászott bele az include path -ba,
azt meg kimazsolázni hogy akkor mi ennek a path mókának a korrekt beállítása nem fogom most,
úgyhogy mérgemben gyorsan feltelepítettem a régebbi avr-libc -t, megnéztem hova települ,
aztán leszedettem a package manager -rel, és a helyukre bemásoltam az új avr-libc
iclude/lib könyvtárait. Hála istennek csak valami dokumentációval kapcsolatos binárisai voltak,
azt hagytam is, netről doksizok.

Persze még mindíg lehet gáz, hogy valami alkönyvtár dolog nem stimmel a két verzió között,
de egyenlőre működni tűnik. Kiderül, ha valami alkönyvtár path mégsincs hozzáadva az újból.

Úgyhogy végre lefordult az új immár arduino független hello-world progi, az új avr-libc -vel
és sikerrel fel is avrdudáztam a kártyára. Ugye hogy sokkal szebb, mint az arduino -s verzió :) :

Code: [Select]
#include <avr/io.h>

#define F_CPU 16000000UL
#include <util/delay.h>

#include <avr/interrupt.h>

void main()
{
cli();

DDRD= 0xff;

while (1)
{
PORTD= 0xff;
_delay_ms(50);
PORTD= 0x00;
_delay_ms(2000);
}

/*
asm volatile
(
"ldi r16, %1" "\n\t"
"ldi r17, %2" "\n\t"

"Loop:"

"out %0, r16" "\n\t"
"out %0, r17" "\n\t"

"rjmp Loop" "\n\t"
:
: "I" (_SFR_IO_ADDR(PORTD)), "M" (255), "M" (0)
:
);
*/
}

A Gány meg mint editor nagyon bejövős egyenlőre, tanx lgb!

Úgyhogy ha más nem jön közbe, akkor a következő etáp már valami hasznos dolog is lehet:

- kitalálni melyik portokat használom majd az AVR -ből, milyen funkciókkal az egyes biteken ...
- kitalálni a portok kivezetései melyik lábon vannak az AVR -en és melyiken az arduino micro kártyán ...
- utánanézni, hogy tud -e az ATmega32u4 akkor sok megszakítást is, vagy csak 4 -et ...
- összedrótozni a PS/2 egeret ( a billentyűm még mindíg nem jött meg :( ) az arduino micro -val ...
- írni egy pár soros C/ASM kódot mely kiloggolja PS/2 egér feldolgozott adatfolyamát ...
- összedrótozni az EP -t az arduino micro -val ...
- írni egy pár soros C/ASM kódot mely megtáplálja az EP -t a PS/2 egér adatokkal ...

Utóbbiról jut eszembe: még mindíg gőzöm nincs mit kell betápoljak az EP -nek az egérrel kapcsolatban. Mit adjak a joystick port -ra, mit kell olvassak a serial portról ?
Hol van erről szó ? Van erről szó ? Help, help, help! :)
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #284 on: 2014.October.15. 11:32:28 »
Majd ha lgb még meg is mondja a hiányzó dolgokat a boxsoft<->EP kommunikációról,

közben párhuzamosan gondolkodok a "billentyűzet egérről" is,

ami ugye abból állna, hogy nem a joystick/serial vonalakat használó, meglévő mouse.xr kommunikáció zajlana,
hanem a mouse a nem használt 6 darab billentyű sorban lenne visszaolvasható.

hogy pontosan hány darabot használna, az részletkérdés,
ahogy a dolgok épp most kinéznek (vezérlő nem csatlakoztatható a gépre bármikor, hanem bekapcsolástól kezdve folyamatosan ott kell legyen), akkor akár 1 vagy max. 2 bill. sor is elég,
ha akkor is tudom érzékelni a b5 port írást mikor ugyanaz az érték van rá kiírva,
akkor elég egyetlen bill. sor is, mert a b5 port írás jel lehet a strobe jelem is, hogy lépjek a következő értékre,
ha csak a változást tudom észrevenni, akkor 2 kell, hogy azokat lehessen váltogatni,
ahol egymás után felváltva lehet felelgetni az X,Y relatív koordinátával,
és akkor egyikre mindíg az X- et másikra mindíg az Y -t lehetne felelni.



Amitől ez a módszer nagyon jó lenne:

8 (bill. sor)+ 4 (bill. sor kiválaszt)+ 1 (bill. sor kiválaszt írás történt)+ 2 (PS/2 bill.)+ 2 (PS/2 mouse) = 17 darab
GPIO -t igénylő (kb. 3000 Ft) alkatrésszel + némi drótozgatással úgy tűnik megoldható lenne a PS/2 bill. + PS/2 egér illesztése,

és mindenki saját maga dönthetne arról, hogy belülre szereli és PS/2 aljzatokat szerel a gépre,
vagy kilógatja az EP -ből a szükséges drótokat roncsolásmentesen, és kívülre rakja az illesztő panelt.



Ami a módszer hátránya: kell hozzá módosított mouse.xr.

Zozo azt mondtad, hogy a módosított mouse.xr az már a legkevesebb. Ezt mennyire lehet készpénznek venni ?
Tehát abban az esetben ha a beolvasás olyan pofon egyszerű, mint fent írtam, akkor mennyire "legkevesebb" a módosított mouse.xr ? Pikkpakk összeraknád ? Vagy még neked is napokig kéne hekkelni ? Esetleg konkrétan ismered már belülről ? Vagy mi ezzel a helyzet ?
« Last Edit: 2014.October.15. 11:39:45 by Z80System »
Z80 System