Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
2015:hid-accelerometer [2016/01/16 09:50] 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í podřízené části 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ě. |