Welcome, Guest. Please login or register.


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

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #15 on: 2014.September.28. 22:38:29 »
Lehet basic -ből azokat a portokat írogatni/olvasgatni amiket a control portok kezeléséhez kell használni ?

Tudom hogy lehet basic -ből in/out -olni, csak azt nem tudom, hogy a conrol portok portjait azt frissíti az exos megszakban, vagy nem ?

Szóval tudom stabilan tesztelni a cuccomat majd basic -ből,
vagy assembly -ben kell teszteljek, letiltott megszakok mellett ?

Basic -ben könnyebb az output kijelzés ...
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re:HW készítés Arduino-val
« Reply #16 on: 2014.September.28. 22:42:34 »
Nem, mert pl a billentyűzetkezelés is bezavar. Esetleg POKE 56,201-el...

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #17 on: 2014.September.28. 22:45:31 »
Quote
Nem, mert pl a billentyűzetkezelés is bezavar. Esetleg POKE 56,201-el...

Á, ha nem tudjuk biztosan, akkor inkább assembly -ben letárolom a memóriába, meg ilyenek ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #18 on: 2014.September.28. 23:34:53 »
Quote
Direktben persze lehet hogy a táppal is bajaim lennének

Mégse, csak rendesen el kell olvasni:

Ha van stabil 5V -od, akkor adhatsz neki stabil 5V -ot egy erre való lábra, ha nincs stabil 5V -od, akkor 7V-12V (vagy max. 6V-20V) -t adhatsz neki egy másik lábra, amit ő majd leszabályoz magának 5V -ra, de ilyenkor az 5V -os inputra nem szabad(érdemes) már rakni semmit.

Magyarul megy ez mindennel, ami szem-szájnak ingere ...



Mondjuk így kapcsiból viszont benéztem az USB -t is valószínűleg, mert nem azt írták, hogy képes kezelni egy USB bill/mouse -t, hanem azt, hogy számítógépre dugva bill/mouse -nak tudja mutatni magát a számítogép fele.
Magyarul pont azt a fordítást néztem be, mint korábban a kékfognál ... :)

Én nem tom mi van itt, mindenki számítógépeknek akarja magát mindenféle input eszköznek kiadni ? Most "potyára" figyel rajta majd az az USB ? :)
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #19 on: 2014.September.29. 00:26:47 »
Hopi, itt van egy olyan, amilyennek (is) hittem én azt a rendelt mikrokontrollert:

http://www.hobbytronics.co.uk/usb-host-keyboard

és szinte minden típusú USB eszközhöz adnak előre megírt szoftvert hozzá.

Ilyennel lehetne pld. megcsinálni, hogy egy ilyet belülre szerelve, belenyomva egy USB wireless vevőegységet, akár vezeték nélküli billentyűnk legyen.

Felszerelve egy USB csatlakozót a gépre persze vezetékes is lehetne.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #20 on: 2014.September.29. 02:04:34 »
És ugyanazzal a vassal, de másik szoftverrel lehet kezelni USB egeret:

http://www.hobbytronics.co.uk/usb-host-mouse

De bevallom olyan "apróságokra" még nem sikerült rájönnöm, hogy:

Ez most egy önálló mikrokontroller kell legyen, ha cserélgethetem a szoftverét, de akkor ebből a pár bájtból kezelik az USB eszközöket, amit a download -nál le lehet tölteni az egyes USB eszköz típusokhoz ?

Ha pedig önálló mikrokontroller, amiben az egyes USB eszköz típusok kezelése implementálva van, akkor miért nem adják ki a szoftvert úgy, hogy én testreszabhassam, kiegészíthessem ?

Most ez mégis inkább egy kiegészítő modul, és az értékek kezelését már egy másik mikrokontrollerrel kell végezzem ? Miért nem használhatom ki azt, amit csak tud az USB HOST -os mikrokontroller ?

Ez mitől egy dedikált "USB HOST BOARD", mitől HOST -abb ez, mint a korábbi mikrokontroller, ami pedig kifejezetten USB DEVICE (SLAVE) ? Ha minden USB kezelés egy szoftverben van megvalósítva, akkor a korábbi mikrokontroller -be miért nem tudok én egy olyan szoftvert tölteni, amitől az is USB HOST lesz ?

Szóval jó nagy kavarc ez bennem ...

De az azért 99%, hogy legrosszabb esetben egy ilyen USB HOST kártyával összekötve a már megrendelt típusú mikrokontrollert, akár ki is hagyhatom a PS/2 protokol implementálását a mikrokontrolleremben, olvashatom mindjárt az USB HOST MOUSE mikrokontroller mouse értékeit (egyszerőbb, és direktben USB -ből jön, nem kell USB->PS/2 átalakíto az USB egereimhez), és azokat tolhatom boxsoft formátumban az EP -nek ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #21 on: 2014.September.29. 02:11:32 »
Ez a PS/2 wiki oldaláról van, és nagyon a direkt USB kezelés mellett szól szerintem:

Conversion between PS/2 and USB

Many keyboards and mice were specifically designed to support both the USB and the PS/2 interfaces and protocols, selecting the appropriate connection type at power-on. Such devices are generally equipped with a USB connector and ship with a passivewiring adapter to allow connection to a PS/2 port. Such passive adapters are not standardized and may therefore be specific to the device they came with. They cannot be used to adapt other devices to PS/2 ports.[citation needed] While combi-devices supporting USB and PS/2 are still available, most USB keyboards and mice in the 2010s no longer come with or even support the PS/2 protocol.[citation needed] Connecting them to a PS/2 port would require an adapter, actively translating between the protocols. Such adapters only support certain classes of USB devices such as keyboards and mice, but are not model- or vendor-specific.
Older PS/2-only peripherals can be connected to a USB port via an active adapter, which generally provides a pair of PS/2 ports at the cost of one USB port.[citation needed]
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #22 on: 2014.September.29. 03:29:03 »
Kipróbáltam gyorsan mindkét vezeték nélküli logitech egeremet, hogy megy -e USB->PS/2 átalakítón keresztül, és persze nem megy egyik sem.

Van egy olyan érzésem, hogy a ps/2 az a vezetékes egerekhez lesz jó, ha valaki beéri a vezetékessel ... :)

Persze elvben lehetne tökéletes USB->PS/2 átalakító, de nem akarok olyat keresgélni (mellesleg konkrétan nem is találtam :)) mindíg azzal vacakolni, ha van egy USB -s egerem (és úgyis az lesz) ...

Szóval meg fogom csinálni először a PS/2 kezelést, vezetékes PS/2 egérrel, de csak a gyakorlás kedvéért, hogy belejöjjek a dologba (meg végülis miért ne tudjon olyat IS a szuper átalakítóm, ha egyszer képes rá), de én nem fogok itt megállni, kell a direkt USB a vezeték nélküli egérhez ...

És ha az is meglesz, addigra semmi nem állhat a vezeték nélküli billentyűzet útjába se ... :)
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #23 on: 2014.September.29. 10:34:15 »
A boxsoft egér mennyi lábat használ konkrétan a serialról ?

Mert a control portokon max 8* 2 láb használt, a serialon meg 5 láb használt elvben,
ami összesen 21 láb, és nekem összesen csak 20 lesz.

De szerintem nem használja mind az 5 lábat a serial -ból az illesztő, kérdés hogy mennyit ?
Ha csak 1 -et is szabadon hagy, akkor lefedhető lenne egyetlen IC -vel mindhárom csatlakozó.

Következő lett a haditerv:

- Először meg kell csinálni egy síma c64/cpc/atari joy kiosztás kezelést. Idővel meg lehet mindhármat, először egy olyat amit tud az én joy -om (a komolyabb joy -ok kapcsolóval tudnak több félét).

- Aztán második lépésnek meg kell csinálni egy sega megadrive kontroller kezelést, ez annyiban bonyolultabb mint az előző(k), hogy itt már a kontroller oldalon is kell trükközni, nem csak az EP oldalon.

- Aztán jöhetne a PS/2 egér kezelés.

- Végül pedig az USB egér kezelés.

- Slusszpoénnak pedig meg kéne csinálni valami nyomógomb + led kombóval, hogy az előbb felsorolt eszközök között váltani tudjon (esetleg a kimeneti control portok között is váltani tudjon, vagy pedig esetleg 2 szett legyen az input csatlakozókból, és szolgálja ki mindkét control portot egyszerre).

Szép fokozatos haditerv ... :)
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #24 on: 2014.September.29. 10:37:15 »
Az okos haditervemből kihagytam, hogy ezek csak az EP oldali csatlakozók, inputom is kell legyen 4+3 (*2) minimum ... :)

Szal egy (ilyen) panellel csak egy control port lesz kezelve ...
Z80 System

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re:HW készítés Arduino-val
« Reply #25 on: 2014.September.29. 10:39:49 »
ezt is esetleg lehetne nézegetni:
http://www.aliexpress.com/item/Free-shipping-PS2-keyboard-driver-module-serial-transmission-keyboard-capture-module/1867214268.html

PS/2 átalakitó soros vagy párhuzamos jelre.

Billentyűzethez reklámozzák, de elvileg a PS/2 egér jelalakja (maga a protokoll) ugyanaz, mint a billentyűzeté.

Persze ez is mikrokontrollerrel működik (mintha manapság már elfelejtettek volna diszkrét kapukból építeni bármit is, az eredeti MGY féle XT bill. kártya még léptetőkkel és shift-regiszterekkel oldotta meg hardveresen a bill. soros jelét 8bites párhuzamosra alakítást.
*** Speicherplatz zu klein

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #26 on: 2014.September.29. 10:50:25 »
Nem rossz tipp (ha lehet egérhez is használni, ha nem), bár ennél azért több leírás kéne róla ... :)

Lehet hogy mások kitalálgatják hogy kell használni az ilyet, de én meg igazából az elvi sémákat, "buszokat", kapcsolódási felületeket sem értem ...

(Kemény 2 napja se nézegetem én ezeket ugye ...)

De beszélnek ezek serial -rol, SPI, ISP, ICSP, FTDI -ről, a rosseb se érti mi mire jó ... :)

Érdekes egy projekt lesz ez ... és miközben azt sem tudom mi min keresztül tud kommunikálni mivel, még azt is találjam ki, hogy épp milyen protokollt implementál pld. "serial" -on az adott cucc ... vazze ... :)
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #27 on: 2014.September.29. 19:40:58 »
Aham, lehet hogy megvan a válasz, hogy miért is nem enged (valójában azt töltesz fel amit akarsz, tehát enged, de miért nem támogatják magától értetődően) pld. egy korábban linkelt USB HOST mikrokontroller kártya szoftverében turkálni (bár végülis a testreszabás még a következőktől függetlenül is hasznos lehetne) a gyártója:

Hát azért, mert valószínűleg nem sokat tudnál mellé rakni már ... vagy ha mégis, akkor is van értelme kompakt egységként kiadni (ami pld. jelen esetben az EP -hez nem biztos hogy jó lesz),

mert ezeket a kompakt mikrokontrolleres kártyákat úgy tervezik, hogy valami részfeladatot oldanak meg csak, memóra és számítási kapacitás limitek miatt, aztán ezek a kártyák kommunikálnak utána egymással valamilyen interfészen keresztül.

Tehát van egy mikrokontrolleres kártya, amit például most megrendeltem olyan 6-7 ezer környékén, az tud vagy 3-4 különböző interfésszel kommunikálni a síma GPIO -n kívül, aztán hogy melyiket használod a tényleges feladatvégzésre, vagy melyiket debuggolásra, az már a felhasználón múlik. (A kivezetések száma egyébként behatárol, tehát ha te épp X lábakon serial (vagy akármi más típusú) kommunikációt végzel, azt addig nem tudod GPIO célra használni.)

De az olcsóbb típus, ami úgy 2-3 ezer körül van, az is majdnem ugyanennyi féle kommunikációs szabványt, és majdnem ugyananyni GPIO -t.

És akkor az a USB HOST kártya pedig úgy kapcsolódik a mókához, hogy nyilván az is tud valamilyen (minimum egy serial)  módon kommunikálni, elvégzi a saját feladatát, kezeli az USB -t, ellátja az USB HOST funkcióit, és mellesleg képes valami nem annyira teljesítményigényes módon adatokat (pld. egérnél koordináta, billentyűnél ascii kód) küldeni a másik mikrokontrolleres kártya számára, aki feldolgozza azt.

Tehát nem azt mondom, hogy jó hogy nem tudom a kódjukat testreszabni, de ha jó nekem a kód amit adnak, akkor nem is feltétlen kellhet, és amúgy meg teljesen belepasszol ebbe a "minden mikrokontrolleres kártya végzi a saját feladatát" képbe ...

Legfeljebb nekem nem azt kell majd választanom a billentyűkezeléshez, ha az ascii protokollja nem engedi pld. az EP fele rendesen kezelni a CTRL,SHIFT vagy hasonló gombokat ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #28 on: 2014.September.29. 23:42:41 »
Na, oszladozgat a köd, kezdem felismerni a fogalomkategóriákat ... :)

Szóval nem voltam olyan nagyon eltévelyedve USB (host) ügyileg, mint amennyire el voltam ...

Ha jól értem, akkor:

Csak a nagyobb, drágább kártyákra tesznek beépítve USB host képességet, mint pld. ebbe:

http://arduino.cc/en/Main/ArduinoBoardDue

Más gyártóknál is igaz, hogy csak a nagyobb, fullosabbakban van, vagy azokban sincs. Nagyon derága az USB host, ezért külön kártyákon adják. Legalábbis a nem fullosabb kártyákhoz külön kell megvedd.

A nem fullosabb kártyákon (olyan elektronikákat szedtek össze, amik nem tartalmaznak) nincs USB host funkció,
hanem az USB csak a kártya programjának feltöltésére,
program futása közben serial kommunikációra,
valamit szintén futás közben egy MÁSIK eszköz fele (amelyik USB host) keyboard és mouse eszközként tud viselkedni.

Ilyen például az, amit rendeltem:
http://arduino.cc/en/Main/ArduinoBoardMicro

Aztán van a még olcsóbb dolog:
http://www.adafruit.com/products/2000

ahol az USB csatija az semmire nem használható futás közben, csak a programjának feltöltésére szolgál.
Mert kispórolták belőle azt a funkciót. Ami sztm nem is baj, attól olyan olcsó.



Namost azoknál az eszközöknél, amik nem tartalmazna USB host elektronikát, azokhoz lehet plussz panelek formájában azt hozzácsapni.
Célszerű is árban is és méretben is ezt a 2 -ből összerakást csinálni, mert olcsóbbra is jön ki (tud kijönni), meg méretben kisebbre is (tud kijönni), mintha egyben vennénk meg egy fullos panelt.

Ilyemsik vannak ilyen USB host "shiled" -ekből (valamiért pajzsoknak hívják a periférikus bővítő paneleket, amik persze lehet hogy nagyobb teljesítményűek minden szempontból, mint a main panel ...):

https://www.sparkfun.com/products/9947
http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino/
http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-for-arduino-pro-mini/


És az a helyzet hogy nem is van nagyon több ... vagyis én még nem találtam.
És ezek közül a kicsi, az sajna 3V -os, én meg az EP miatt 5V -ot választottam a main panelemnek, mert nem akartam jeleket illesztgetni, és a 3V -os kis USB host nem kompata az 5V -os "fő panelemmel".

Ez az előző három cuccos azért lenne jó, mert ezeket direkt az általam választott mikrokontrollerhez készítették, így annak szoftvere vagy kompatibilis az USB shield -ekkel, vagy pedig adják a full szoftvert. (Amit én választottam mikrokontroller deszkát, az nyílt forrású szabványokra épul hardveresen és szoftveresen is.)


Találtam ugyan mégegyet, ezt:
http://www.hobbytronics.co.uk/usb-host-keyboard

ami jó lenne méretben (jó kicsi), nagyjából jó árban, csakhogy ezzel meg az a helyzet, hogy ehhez binárisban (hex -ben) adják a szoftvert, ami az egérhez jó lenne, de a billentyűhöz nem. Forrást meg nem adnak hozzá, de legalábbis nem verik nagy dobra.
Még mindíg írhatnék hozzá sajátot, de ez ráadásul nem is az az "AVR" mikrokontroller "család" mint a fő deszkám (amit valamilyen szinten nyilván most megtanulok majd programozni), hanem egy "PIC" nevű mikrokontroller "család" egy tagja, mely mellesleg tartalmaz USB host elektronikát is.

Szóval ha ezt választom a billentyűzethez (is, mert egérnek jó lesz a gyári szoftverrel), akkor meg kell tanuljak "PIC" -ül is, és nem tudom hogy ahhoz is adnak -e olyan USB host kezelő könyvtár támogatást, mint amit az Arduino által gyártott, AVR mikrokontrollercsaládomhoz. Gyanítom nem ... hanem valahonnan nyílt forrású cuccokból kéne tudjak valamit lefordítani alá ... legjobb esetben ... vagy implementálni egy sajátot, direktben kommunikálva az USB host elektronikával a mikrokontrollerben ... szívesebben kihagynám ...


Az arduino platform ilyen API -t nyújt az USB keyboard- hoz:

[ul][/ul]
Ez tökéletes, ennél bonyolultabb nem kell. Ha a PIC -es cucchoz is lenne ilyen API, akkor azzal se lenne semmi gáz ...
Persze az is lehet, hogy van is ... csak még nem néztem utána ... Csak itt arduino alatt az embernek az arcába tolják ... viszont megfelelő vas meg nem nagyon van arduinóra ... persze az is lehet hogy beférnének ... ha meg befér, akkor mit vacakoljak ...

Kívülre az egérnek lesz ilyen PIC -es kicsi, ahhoz jó a gyári szoftver,
belülre a bilentyűnek meg lenne a nagyobb, arduino kompatibilis cucc ...

Persze meg kell nézni, hogy elég -e a memória neki a kis mikró kártyán, amit választottam ...

Szóval jó komplex kis legó ez ... :)

Lehet tényleg az a legtisztább, ha az ember magának rakja össze a mikrokontrolleres kariját, és akkor azon minden pont úgy van, ahogy neki kell ...

De hát pont ezt akarom elkerülni ... hogy tervezési, gyártási folyamatok legyenek ...

Bárki megvehetne egy (vagy kettő, ha akar USB -t is) kártyát, drótokkal összeforraszti, feltölti program, és kész ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re:HW készítés Arduino-val
« Reply #29 on: 2014.September.30. 00:04:39 »
De pld. itt van ez:

http://microcontrollershop.com/product_info.php?cPath=407_418&products_id=2649&osCsid=a7gcafrbs00r5p2elafkaohhs3

ez elég kicsi, nem méregdrága, 2 USB eszközt is tudna kezelni, és van neki akár 28 GPIO -ja, nekünk meg csak 16 kell a billentyűzethez, vagy max +1 a reset -hez ...

már megint csak az a kérdés, hogy vajon milyen magas szinten lehetne elérni az USB billentyűzet funkcióit belőle, van -e hozzá ilyen magas szintű támogatás,
de azért még ne legyen annyira magas szintű, hogy fogjak egy másik hardvert, és kérdezzem le ettől a hardvertől, valami protokollal ...
Z80 System