Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2015:hid-accelerometer

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
2015:hid-accelerometer [2016/01/16 09:51]
Jan Špůrek [Návrh firmwaru pro FRDM-KL25Z]
2015:hid-accelerometer [2016/01/17 18:23] (aktuální)
Jan Špůrek
Řádek 1: Řádek 1:
-====== Návrh firmwaru pro FRDM-KL25Z ​====== +====== Vizualizace akcelerometru přes USB HID ====== 
-Návrh byl proveden pomocí prostředí mbed.org. K načítání okamžitých hodnot z akcelerometru je využita knihovna MMA8451Q, která byla použita v počítačovém cvičení MPOA. Odesílání dat je realizováno pomocí standardní mbed knihovny USBDevice, konkrétně její podkategorie USBHID. Tato knihovna při vytvoření standardního objektu USBHID automaticky zařízení přiřadí jméno "​HID ​Device", VID 0x1234 a PID 0x0006.+===== Zadání ===== 
 +Pomocí vývojové desky FRDM-KL25Z vytvořte USB HID zařízení a jeho prostřednictvím přenášejte do PC údaje z akcelerometru. Tyto údaje na PC vhodně vizualizujte - např. pomocí bar grafů jednotlivých os, průmětu celkového vektoru zrychlení do jednotlivých rovin, zobrazení vektoru zrychlení ve 3D prostoru apod. 
 +===== Návrh firmwaru pro FRDM-KL25Z ===== 
 +Návrh byl proveden pomocí prostředí mbed.org. K načítání okamžitých hodnot z akcelerometru je využita knihovna MMA8451Q, která byla použita v počítačovém cvičení MPOA. Odesílání dat je realizováno pomocí standardní mbed knihovny USBDevice, konkrétně její podkategorie USBHID. Tato knihovna při vytvoření standardního objektu USBHID automaticky zařízení přiřadí jméno "​HID ​DEVICE", VID 0x1234 a PID 0x0006.
  
 ==== Formátování hodnot pro přenos ==== ==== Formátování hodnot pro přenos ====
Řádek 144: Řádek 147:
 </​code>​ </​code>​
  
-====== Návrh aplikace pro PC ======+===== Návrh aplikace pro PC =====
 Aplikace pro PC byla vytvořena pomocí vývojového prostřední Microsoft Visual Studio 2015 v jazyce C#. K přijímání dat byla využita knihovna "​MightyHID",​ která je dostupná ke stažení [[https://​github.com/​MightyDevices/​MightyHID|zde]]. Knihovna podporuje tzv. "​raw"​ reporty, tedy typ, který potřebujeme. V archivu je k dispozici i referenční aplikace, funkčnost knihovny pro FRDM-KL25Z lze jednoduše otestovat. Aplikace pro PC byla vytvořena pomocí vývojového prostřední Microsoft Visual Studio 2015 v jazyce C#. K přijímání dat byla využita knihovna "​MightyHID",​ která je dostupná ke stažení [[https://​github.com/​MightyDevices/​MightyHID|zde]]. Knihovna podporuje tzv. "​raw"​ reporty, tedy typ, který potřebujeme. V archivu je k dispozici i referenční aplikace, funkčnost knihovny pro FRDM-KL25Z lze jednoduše otestovat.
    
 ==== Ověření funkčnosti knihovny ==== ==== Ověření funkčnosti knihovny ====
-Testovací aplikace detekuje všechna viditelná HID zařízení,​ načež do konzole vypíše jejich jméno, VID a PID. Standardně se připojí k prvnímu zařízení v seznamu (index 0), což není vyhovující stav, jelikož každý počítač má připojen různý počet těchto zařízení a není vůbec jisté, že se připojí právě ke FRDM-KL25Z. Problém lze vyřešit zjištěním pořadí našeho zařízení v seznamu a následným zapsáním příslušného indexu do výběru připojovaného zařízení. V pozdější implementaci je výběr řešen na základě rozpoznání VID a PID, aby byla zajištěna detekce FRDM-KL25Z na libovolném PC. Aplikaci jsem dále rozšířil o schopnost zobrazovat data z přijímaného reportu, tedy dat z akecelerometru. Reporty jsou ukládány do pole typu byte, na jehož jednotlivé prvky je pohlíženo jako na 8-bitové neznaménkové integery - shoda s datovým typem přijímaného reportu.+Testovací aplikace detekuje všechna viditelná HID zařízení,​ načež do konzole vypíše jejich jméno, VID a PID. Standardně se připojí k prvnímu zařízení v seznamu (index 0), což není vyhovující stav, jelikož každý počítač má připojen různý počet těchto zařízení a není vůbec jisté, že se aplikace ​připojí právě ke FRDM-KL25Z. Problém lze vyřešit zjištěním pořadí našeho zařízení v seznamu a následným zapsáním příslušného indexu do výběru připojovaného zařízení. V pozdější implementaci je výběr řešen na základě rozpoznání VID a PID, aby byla zajištěna detekce FRDM-KL25Z na libovolném PC. Aplikaci jsem dále rozšířil o schopnost zobrazovat data z přijímaného reportu, tedy dat z akecelerometru. Reporty jsou ukládány do pole typu byte, na jehož jednotlivé prvky je pohlíženo jako na 8-bitové neznaménkové integery - shoda s datovým typem přijímaného reportu.
  
 <​code>​ <​code>​
Řádek 254: Řádek 257:
  
 === Zobrazení pomoci bar grafů === === Zobrazení pomoci bar grafů ===
-Zobrazení je řešení pomocí objektu "​chart",​ typ "range column",​ přičemž všechny osy sdílí jednu řadu a každé je přiřazen jeden bod. Hodnota Y je vždy 0, aby sloupec začínal v počátku, hodnota X se mění v závislosti na aktuálně přijatých datech.+Zobrazení je řešeno pomocí objektu "​chart",​ typ "range column",​ přičemž všechny osy sdílí jednu řadu a každé je přiřazen jeden bod. Hodnota Y je vždy 0, aby sloupec začínal v počátku, hodnota X se mění v závislosti na aktuálně přijatých datech.
  
 {{ 2015:​hid-accelerometer:​bar.png }} {{ 2015:​hid-accelerometer:​bar.png }}
Řádek 686: Řádek 689:
 } }
 </​code>​ </​code>​
-==== Demonstrační video ====+===== Demonstrační video =====
 {{ youtube>​P9hmCMS0joE?​large }} {{ youtube>​P9hmCMS0joE?​large }}
  
Řádek 692: Řádek 695:
  
  
-==== Dostupnost ====+===== Dostupnost ​=====
 Program, včetně firmwaru pro FRDM-KL25Z je dostupný ke stažení [[https://​onedrive.live.com/​redir?​resid=BC609650F97EDA47!76397&​authkey=!AI7sYmEFVWWvGx4&​ithint=file%2czip|zde]] , alternativně [[http://​leteckaposta.cz/​937977646|zde]] . K používání není potřeba žádný dodatečný hardware. Program, včetně firmwaru pro FRDM-KL25Z je dostupný ke stažení [[https://​onedrive.live.com/​redir?​resid=BC609650F97EDA47!76397&​authkey=!AI7sYmEFVWWvGx4&​ithint=file%2czip|zde]] , alternativně [[http://​leteckaposta.cz/​937977646|zde]] . K používání není potřeba žádný dodatečný hardware.
-====== Závěr ​======+===== Závěr =====
 Byl vytvořen firmware pro FRDM-KL25Z, který přes standard HID komunikuje s počítačem a odesílá aktuální data z akcelerometru. Následně byla navržena PC aplikace, která tyto data vhodně vizualizuje. Projekt se podařilo zpracovat ve všech bodech zadání. Zobrazení 3D grafu by si zasloužilo vylepšení,​ současná metoda implementace se jeví jako méně vhodná, vzhledem k pomalým reakcím. Byl vytvořen firmware pro FRDM-KL25Z, který přes standard HID komunikuje s počítačem a odesílá aktuální data z akcelerometru. Následně byla navržena PC aplikace, která tyto data vhodně vizualizuje. Projekt se podařilo zpracovat ve všech bodech zadání. Zobrazení 3D grafu by si zasloužilo vylepšení,​ současná metoda implementace se jeví jako méně vhodná, vzhledem k pomalým reakcím.
-====== Poznámky ​======+===== Poznámky =====
 Windows 10 si příliš nerozumí s FRDM-KL25Z v bootloader módu - zařízení se neustále připojuje a odpojuje. Firmware pro mbed musel být na zařízení nahrán přes Windows 7. Následně již práce s vývojovou deskou probíhala korektně. Windows 10 si příliš nerozumí s FRDM-KL25Z v bootloader módu - zařízení se neustále připojuje a odpojuje. Firmware pro mbed musel být na zařízení nahrán přes Windows 7. Následně již práce s vývojovou deskou probíhala korektně.
2015/hid-accelerometer.1452934276.txt.gz · Poslední úprava: 2016/01/16 09:51 autor: Jan Špůrek