Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2017:hid-prez

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2017:hid-prez [2018/01/14 17:13]
Miroslav Děcký [Závěr]
2017:hid-prez [2018/01/14 20:28] (aktuální)
Miroslav Děcký [Závěr]
Řádek 14: Řádek 14:
 ---- ----
 ====== Použité prostředky ====== ====== Použité prostředky ======
- Při vývoji ​reprezentant ​byly kromě vlastního HW a SW využit i následující prostředky:​+ Při vývoji ​prezentéru ​byly kromě vlastního HW a SW využity i následující prostředky:​
  
   * IAR Embedded Workbench 7.80.4   * IAR Embedded Workbench 7.80.4
Řádek 25: Řádek 25:
 ====== Vývoj HW ====== ====== Vývoj HW ======
  
-Zadání specifikuje využití vývojové desky firmy NXP a to platformu Freedom ve velice známé verzi KL25z. ​+Zadání specifikuje využití vývojové desky firmy NXPa to platformu Freedom ve velice známé verzi KL25z. ​
 KL25z je mikrokontrolér rodiny ​ Kinetis s járdrem ARM Cortex-M0+. KL25z je mikrokontrolér rodiny ​ Kinetis s járdrem ARM Cortex-M0+.
  
  
  
-Platforma freedom obsahuje arduino kompatibilní konektory. Rozložení pinůna těchto konektorech je možné vidět na následujícím obrázku[1]: ​+Platforma freedom obsahuje arduino kompatibilní konektory. Rozložení pinů na těchto konektorech je možné vidět na následujícím obrázku[1]: ​
 {{ :​2017:​hid-prez:​frdm-kl25z_headers2.png?​600 |}} {{ :​2017:​hid-prez:​frdm-kl25z_headers2.png?​600 |}}
  
 ==== Rozšiřující destička ==== ==== Rozšiřující destička ====
-Prezentér má umožnit použít ukazovátko,​ přepínat snímky, zapínat prezentaci, zatmavit prezentaci. K tomu je nutné mít dostatek tlačítek. ​na FRDM-KL25z je k dispozici pouze tlačítko reset, je tedy nutné vyrobit rozšiřující dceřinou destičku s tlačítky.+Prezentér má umožnit použít ukazovátko,​ přepínat snímky, zapínat prezentaci, zatmavit prezentaci. K tomu je nutné mít dostatek tlačítek. ​Na FRDM-KL25z je k dispozici pouze tlačítko reset, je tedy nutné vyrobit rozšiřující dceřinou destičku s tlačítky.
  
 === Seznam součástek: ​ === === Seznam součástek: ​ ===
Řádek 41: Řádek 41:
   * [[https://​www.gme.cz/​oboustranny-kolik-s1g20-2-54mm|Oboustranný kolík S1G20 2,54mm ]] 1ks    * [[https://​www.gme.cz/​oboustranny-kolik-s1g20-2-54mm|Oboustranný kolík S1G20 2,54mm ]] 1ks 
  
-Schéma zapojení rozšiřující destičky je jednoduché,​ obsahuje dva samostatné hřebínkové konektory, jeden můžeme ponechat ​nezapojen, zajišťuje pouze stabilitu modulu, k druhémujsou připojeny mikrospínače,​ celé schéma je zobrazeno na obrázku níže:+Schéma zapojení rozšiřující destičky je jednoduché,​ obsahuje dva samostatné hřebínkové konektory, jeden můžeme ponechat ​nezapojený, zajišťuje pouze stabilitu modulu, k druhému jsou připojeny mikrospínače,​ celé schéma je zobrazeno na obrázku níže:
  
 {{ :​2017:​hid-prez:​schema.png?​400 }} {{ :​2017:​hid-prez:​schema.png?​400 }}
    
 Výhodou kombinace THT hřebínků a SMD mikrotlačítek je, že výsledná destička je jednostranný plošný spoj.  Kritické je dodržení rozteče konektorů. Potřebné rozměry jsou na obrázku plošného spoje okótovány níže. ​ Výhodou kombinace THT hřebínků a SMD mikrotlačítek je, že výsledná destička je jednostranný plošný spoj.  Kritické je dodržení rozteče konektorů. Potřebné rozměry jsou na obrázku plošného spoje okótovány níže. ​
-Kompletní podklady ​(sch i brd soubory) ​jsou k dispozici ke stažení ​z [2].+Kompletní podklady ​v programu Eagle 6.6.0 jsou k dispozici ke stažení. 
 + 
 + {{ :​2017:​hid-prez:​prezenter_vyrobni_podklady.zip |}} 
 {{ :​2017:​hid-prez:​pcb.png?​400 |}} {{ :​2017:​hid-prez:​pcb.png?​400 |}}
  
Řádek 54: Řádek 57:
  
  
-Je třeba si dát pozor na určité speciální piny, Piny vyvedení ​na tyto arduino konektory nejsou „volné“,​ ale mohou obsahovat například připojenou RGB led diodu, případně hodiny pro debugger.+Je třeba si dát pozor na určité speciální piny, piny vyvedené ​na tyto arduino konektory nejsou ​vždy „volné“,​ ale mohou obsahovat například připojenou RGB led diodu, případně hodiny pro debugger.
 V první verzi DPS toto nebylo dodrženo a jedno tlačítko bylo spojeno právě s LED na destičce freedom. Tato chyba byla opravena, a výše prezentované schéma i PCB (případně data ke stažení) již tuto chybku neobsahují. ​ V první verzi DPS toto nebylo dodrženo a jedno tlačítko bylo spojeno právě s LED na destičce freedom. Tato chyba byla opravena, a výše prezentované schéma i PCB (případně data ke stažení) již tuto chybku neobsahují. ​
-Foto výsledného přípravku s KL25z je na obrázku níže, jedná se ovšem o první verzi+Foto výsledného přípravku s KL25z je na obrázku níže, jedná se ovšem o první verzi.
  
 {{ :​2017:​hid-prez:​kl25z_pripravek_lezato.jpg?​400 |}} {{ :​2017:​hid-prez:​kl25z_pripravek_lezato.jpg?​400 |}}
Řádek 64: Řádek 67:
 Firma NXP dodává pro své mikrokontroléry knihovní balíček SDK. Tyto knihovní balíčky pro jednotlivé vývojové platformy, nebo čisté mikrokontroléry lze stahovat po registraci pomocí MCUXpresso aplikace z webu [[https://​mcuxpresso.nxp.com/​en/​select|zde]]. Firma NXP dodává pro své mikrokontroléry knihovní balíček SDK. Tyto knihovní balíčky pro jednotlivé vývojové platformy, nebo čisté mikrokontroléry lze stahovat po registraci pomocí MCUXpresso aplikace z webu [[https://​mcuxpresso.nxp.com/​en/​select|zde]].
  
-Součástí knihovního balíku pro FRDM-KL25z jsou taktéž demoaplikace. Pro implementaci USB HID zařízení je k dispozici několik aplikací. Jelikož prezentační zařízení využívá kromě tlačítek myšitaktéž klávesové zkratky klávesnice jako výchozí demoaplikace byla zvolena verze kompozitního zařízení MYŠ a KLÁVESNICE. ​+Součástí knihovního balíku pro FRDM-KL25z jsou taktéž demoaplikace. Pro implementaci USB HID zařízení je k dispozici několik aplikací. Jelikož prezentační zařízení využívá kromě tlačítek myši taktéž klávesové zkratky klávesnicejako výchozí demoaplikace byla zvolena verze kompozitního zařízení MYŠ a KLÁVESNICE. ​
  
 === Funkce prezentéru === === Funkce prezentéru ===
  
-Každé ​funkce ​prezentéru odpovídá klávesová zkratka ​jednotlivé ​funkce shrnuje následující tabulka:+Každé ​funkci ​prezentéru odpovídá klávesová zkratka. Jednotlivé ​funkce shrnuje následující tabulka:
  
 {{:​2017:​hid-prez:​kl25z_pripravek_lezato_cisla.jpg?​400 |}} {{:​2017:​hid-prez:​kl25z_pripravek_lezato_cisla.jpg?​400 |}}
Řádek 77: Řádek 80:
 |    3.  | Ukazovátko ​   | Levé tlačítko myši     ​| ​ |    3.  | Ukazovátko ​   | Levé tlačítko myši     ​| ​
 |    4.  | Spustit prezentaci ​   | F5 | |    4.  | Spustit prezentaci ​   | F5 |
-|    5.  | Začernění ​   |  B    |+|    5.  | Začernění ​   | B    |
  
 Prezentér pro pohyb ukazovátka po ploše prezentace využívá akcelerometru MMA8451Q, který je osazen na FRDM-KL25z. Prezentér pro pohyb ukazovátka po ploše prezentace využívá akcelerometru MMA8451Q, který je osazen na FRDM-KL25z.
Řádek 110: Řádek 113:
 </​code>​ </​code>​
 Proměnné dirLR a dirUD uchovávají aktuální požadavek na pohyb ve dvou osách, a jsou dále propagovány do obslužných funkcí USB aplikace. Proměnné dirLR a dirUD uchovávají aktuální požadavek na pohyb ve dvou osách, a jsou dále propagovány do obslužných funkcí USB aplikace.
-Původní myšlenka, že velikost náklonu by měnila rychlost pohybu kurzoru byla po otestování zavržena a ponechána ​rychlost posunu na pevnou hodnotu. ​+Původní myšlenka, že velikost náklonu by měnila rychlost pohybu kurzorubyla po otestování zavržena a rychlost posunu ​ponechána ​na pevnou hodnotu.
 V budoucnu by bylo možné otestovat změnu rychlosti posunu na dotykovém slideru. V budoucnu by bylo možné otestovat změnu rychlosti posunu na dotykovém slideru.
  
-Pro obsluhu tlačítekbyla napsána následující funkce. Tlačítka jsou obsluhovány ​tak, aby bylo nutné pro listování prezentací opakovaně mačkat tlačítka. Díky této úpravěje možné minimalizovat ochrannou dobu pro detekci stisku a zároveň předejít nechtěnému listování o více listů prezentace+Makro ANGLE_THRESHOLD slouží pro nastavení oblasti, kdy má kurzor stát, jedná se tedy o citlivost na malý náklon. Díky řešení pomocí makra je možné jednoduchou změnou z jednoho místa ovlivnit všechny směry současně.  
 + 
 +Pro obsluhu tlačítek byla napsána následující funkce. Tlačítka jsou obsluhována ​tak, aby bylo nutné pro listování prezentací opakovaně mačkat tlačítka. Díky této úpravě je možné minimalizovat ochrannou dobu pro detekci stisku a zároveň předejít nechtěnému listování o více listů prezentace. Tato logika obsluhuje pouze tlačítka pro listování v prezentaci, její spuštění a zatmavení. Tlačítko ukazovátka má zvláštní obsluhu, viz dále. ​
  
 <code c> <code c>
Řádek 156: Řádek 161:
 </​code>​ </​code>​
  
-Obsluha tlačítka ukazovátka má specifickou ​obsluhu+Obsluha tlačítka ukazovátka má specifickou ​podobu
  
-Pro zapnutí funkce ukazovátka je nutné držet levé tlačítko myši >1s a po dobu ukazování neuvolnit. Tento přístup se mi jeví jakožto nevhodný. Z tohoto ​důvodu ​důvodu je implementována logikaklopného obvodu, kdy první stisk tlačítka aktivuje "levé tlačítko myši" a až následující stisk tuto funkci uvolní - není tedy nutné při prezentaci křečovitě držet mikrospínač.+Pro zapnutí funkce ukazovátka je nutné držet levé tlačítko myši >1s a po celou dobu ukazování neuvolnit. Tento přístup se mi jeví jakožto nevhodný. Z tohoto důvodu je implementována logika klopného obvodu, kdy první stisk tlačítka aktivuje "levé tlačítko myši" a až následující stisk tuto funkci uvolní - není tedy nutné při prezentaci křečovitě držet mikrospínač.
 <code c> <code c>
             if (!GPIO_ReadPinInput(PLUG_BOARD_GPIO,​ SW_LEFT_BUTTON_PIN))             if (!GPIO_ReadPinInput(PLUG_BOARD_GPIO,​ SW_LEFT_BUTTON_PIN))
Řádek 176: Řádek 181:
 </​code>​ </​code>​
  
-Takto předpřipravená data jsou dále předávána do aplikace pro obsluhu USB HID zařízení, ​které ​posílá data do počítače. ​+Takto předpřipravená data jsou dále předávána do části ​aplikace pro obsluhu USB HID zařízení, ​která ​posílá data do počítače.  
 + 
 +Celý výše uvedený kód se odehrává v hlavní smyčce programu
  
 === USB HID === === USB HID ===
Řádek 182: Řádek 189:
 FRDM-KL25z je osazena dvěma USBmini konektory, jeden slouží pro programování,​ případně sériovou komunikaci s KL25 a druhý je vyveden přímo z USB periferie mikrokontroléru KL25z. FRDM-KL25z je osazena dvěma USBmini konektory, jeden slouží pro programování,​ případně sériovou komunikaci s KL25 a druhý je vyveden přímo z USB periferie mikrokontroléru KL25z.
  
-Jako výchozí bodpro implementaci kompozitního USB HID zařízení posloužil demonstrační projekt z knihovního balíku SDK2.2. Tento projekt pohyboval kurzorem myši po monitoru ve tvaru obdélníka a pomocí kláves PAGE UP a PAGE DOWN pohyboval stránkou nahoru a dolů.+Jako výchozí bod pro implementaci kompozitního USB HID zařízení posloužil demonstrační projekt z knihovního balíku SDK2.2. Tento projekt pohyboval kurzorem myši po monitoru ve tvaru obdélníka a pomocí kláves PAGE UP a PAGE DOWN pohyboval stránkou nahoru a dolů.
  
 Celá aplikace s USB HID funkcionalitou byla implementována do předpřipravené části projektu s tlačítky a akcelerometrem. Celá aplikace s USB HID funkcionalitou byla implementována do předpřipravené části projektu s tlačítky a akcelerometrem.
  
-Následovalo otestování funkčnosti obou spojených funkcí, po této fázidošlo k upravě funkcí pro zasílání dat skrz USB: +Následovalo otestování funkčnosti obou spojených funkcí, po této fázi došlo k upravě funkcí pro zasílání dat skrz USB: 
  
 <code c> <code c>
Řádek 248: Řádek 255:
 } }
 </​code>​ </​code>​
-Jak je vidět z kódu výše, případné rozšíření na dynamickou změnu rychlosti pohybu kurzoru ​není problémPostačí místo konstanty použít proměnnou+Jak je vidět z kódu výše, případné rozšíření na dynamickou změnu rychlosti pohybu kurzoru ​je v případě požadavku na toto chování možné 
 + 
 +Kompletní projekt prezentéru ve vývojovém prostředí IAR 7.80.4 je k dispozici ke stažení: 
 +{{ :​2017:​hid-prez:​prezenter_iar.zip |}}
  
  
Řádek 254: Řádek 264:
  
 ====== Video s demonstrací funkčnosti ====== ====== Video s demonstrací funkčnosti ======
 +Pro demonstraci funkčnosti jsem natočil následující video.
  
 +
 +{{youtube>​dMbCDBqjDh0?​medium}}
 ---- ----
  
Řádek 260: Řádek 273:
 Předložený projekt prezentačního zařízení se podařilo dokončit do plně použitelného stavu. Hlavním problémem zůstávají použité klávesové zkratky, při vývoji jsem nalezl na [[https://​support.office.com/​en-ie/​article/​Use-keyboard-shortcuts-to-deliver-your-presentation-1524ffce-bd2a-45f4-9a7f-f18b992b93a0|stránkách podpory office]], že zatmavení prezentace pro office 2007 a vyšší je klávesová zkratka "​B"​ a opětovným stiskem "​B"​ dojde k návratu. Při vývoji byl použit PowerPoint verze 2016 a toto chování se potvrdilo. Předložený projekt prezentačního zařízení se podařilo dokončit do plně použitelného stavu. Hlavním problémem zůstávají použité klávesové zkratky, při vývoji jsem nalezl na [[https://​support.office.com/​en-ie/​article/​Use-keyboard-shortcuts-to-deliver-your-presentation-1524ffce-bd2a-45f4-9a7f-f18b992b93a0|stránkách podpory office]], že zatmavení prezentace pro office 2007 a vyšší je klávesová zkratka "​B"​ a opětovným stiskem "​B"​ dojde k návratu. Při vývoji byl použit PowerPoint verze 2016 a toto chování se potvrdilo.
  
-Bohuželna některých PowerPointech tato zkratka není plně funkční, návrat z černé obrazovky je možný stiskem libovolného tlačítka pro pohyb v prezentaci (tj 1. nebo 2.) tento stisk způsobí návrat do prezentace, nikoliv její přelistování. Důvod je mi neznámý, bohužel vlastní zařízení s tímto chování nemám. ​+Bohužel na některých PowerPointech tato zkratka není plně funkční, návrat z černé obrazovky je možný stiskem libovolného tlačítka pro pohyb v prezentaci (tj 1. nebo 2.)tento stisk způsobí návrat do prezentace, nikoliv její přelistování. Důvod je mi neznámý, bohužel vlastní zařízení s tímto chování nemám. ​
  
-Při testování funkčnosti (Viz video výše) si můžete povšimnout relativity času, kdy "stisk delší než 1s" je opravdu nepříjemně dlouhá doba pro zapnutí ukazovátka. Pohyb pomocí akcelerometru je bezproblémový,​ jen vyžaduje trochu cviku, přesnost pohybu s laserovým ukazovátkem nelze srovnávat. ​+Při testování funkčnosti (viz video výše) si můžete povšimnout relativity času, kdy "stisk delší než 1s" je opravdu nepříjemně dlouhá doba pro zapnutí ukazovátka. Pohyb pomocí akcelerometru je bezproblémový,​ jen vyžaduje trochu cviku, přesnost pohybu s laserovým ukazovátkem nelze srovnávat. ​
  
 Zařízení je tedy po otestování plně funkční, základní účel plně splnilo - otestovat možnosti USB HID Demoaplikace pro potřeby mé diplomové práce. Největší očekávání jsem měl k ukazovátku,​ které by umožnilo být při prezentaci čelem k publiku, bez nutnosti otáčet se na projekční plochu, ovšem rychlost a přesnost ukazování je u laserového ukazovátka výrazně lepší. ​ Zařízení je tedy po otestování plně funkční, základní účel plně splnilo - otestovat možnosti USB HID Demoaplikace pro potřeby mé diplomové práce. Největší očekávání jsem měl k ukazovátku,​ které by umožnilo být při prezentaci čelem k publiku, bez nutnosti otáčet se na projekční plochu, ovšem rychlost a přesnost ukazování je u laserového ukazovátka výrazně lepší. ​
Řádek 270: Řádek 283:
 [1]  Obrázek arduino konektory: https://​os.mbed.com/​media/​uploads/​GregC/​frdm-kl25z_headers2.png [1]  Obrázek arduino konektory: https://​os.mbed.com/​media/​uploads/​GregC/​frdm-kl25z_headers2.png
  
-[2]  ​Podkldady pro výrobu plošného spoje s tlačítky ke staženíXXXXX+[2] https://​support.office.com/​en-us/​article/​Use-keyboard-shortcuts-to-deliver-your-presentation-1524ffce-bd2a-45f4-9a7f-f18b992b93a0 
 + 
 +[3] MCUXpresso online SDK builder : https://​mcuxpresso.nxp.com/​en/​select 
  
-[3] https://​support.office.com/​en-us/​article/​Use-keyboard-shortcuts-to-deliver-your-presentation-1524ffce-bd2a-45f4-9a7f-f18b992b93a0 
2017/hid-prez.1515946416.txt.gz · Poslední úprava: 2018/01/14 17:13 autor: Miroslav Děcký