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:bio-arm [2016/01/17 23:51] Aleš Pohludka |
2015:bio-arm [2016/01/18 00:18] (aktuální) Aleš Pohludka [Demonstrační video a diskuze] |
||
---|---|---|---|
Řádek 82: | Řádek 82: | ||
meze2=meze2/200/4; //podeleni poctem maxim a snizeni na ctvrtinu = definice prahu | meze2=meze2/200/4; //podeleni poctem maxim a snizeni na ctvrtinu = definice prahu | ||
</code> | </code> | ||
- | {{ :2015:bio-arm:emgO.png |Ukázka prahů v MATLABu}} | ||
- | Obr. 8: Ukázka prahů v MATLABu | ||
==== Vyhodnocovací fáze ==== | ==== Vyhodnocovací fáze ==== | ||
V této fázi program začíná v nekonečné smyčce kontinuálně meřit a vyhodnocovat naměřená data s oknem 100 vzorků. Na datech je provedena obálka podobně jako v učící fázi. Následuje kritérium, kdy se získaná hodnota porovná s prahy. Jsou-li hodnoty větší, rozsvítí se příslušná led a do čítače s rozsahem 0 až 400 hodnot pro oba signály se přičte 1 pokud již nejsou na maximální hodnotě. Jsou-li hodnoty menší, led zhasne a z čítače se odečte 1 pokud není hodnota 0. Oba signály používají stejnou proměnnou (procenta), biceps je kodován po jednotkách, předloktí po tisících. Reálná maximální hodnota je tak 400400. | V této fázi program začíná v nekonečné smyčce kontinuálně meřit a vyhodnocovat naměřená data s oknem 100 vzorků. Na datech je provedena obálka podobně jako v učící fázi. Následuje kritérium, kdy se získaná hodnota porovná s prahy. Jsou-li hodnoty větší, rozsvítí se příslušná led a do čítače s rozsahem 0 až 400 hodnot pro oba signály se přičte 1 pokud již nejsou na maximální hodnotě. Jsou-li hodnoty menší, led zhasne a z čítače se odečte 1 pokud není hodnota 0. Oba signály používají stejnou proměnnou (procenta), biceps je kodován po jednotkách, předloktí po tisících. Reálná maximální hodnota je tak 400400. | ||
Řádek 184: | Řádek 182: | ||
</code> | </code> | ||
{{ :2015:bio-arm:emgOO.png |Ukázka vyhodnocení dle prahu v MATLABu, hodnota 20 odpovídá aktivnímu otáčení při aktivním bicepsu}} | {{ :2015:bio-arm:emgOO.png |Ukázka vyhodnocení dle prahu v MATLABu, hodnota 20 odpovídá aktivnímu otáčení při aktivním bicepsu}} | ||
- | Obr. 9: Ukázka vyhodnocení dle prahu v MATLABu, hodnota 20 odpovídá aktivnímu otáčení při aktivním bicepsu | + | Obr. 8: Ukázka vyhodnocení dle prahu v MATLABu, hodnota 20 odpovídá aktivnímu otáčení při aktivním bicepsu |
==== Zobrazení stavu ==== | ==== Zobrazení stavu ==== | ||
Na sériovou linku se posílá každá 10. hodnota stavu. Ta je načtena programem "serialchart" pro vykreslování hodnot v čase. Program je volně dostupný z [[https://code.google.com/p/serialchart/]]. Data lze rovněž podobným způsobem vyhodnocovat pomocí MATLABu: | Na sériovou linku se posílá každá 10. hodnota stavu. Ta je načtena programem "serialchart" pro vykreslování hodnot v čase. Program je volně dostupný z [[https://code.google.com/p/serialchart/]]. Data lze rovněž podobným způsobem vyhodnocovat pomocí MATLABu: | ||
Řádek 226: | Řádek 224: | ||
{{youtube>9D8jCWQ_3tU?medium}} | {{youtube>9D8jCWQ_3tU?medium}} | ||
- | Ve videu je možné shlédnout všechny fáze programu, na monitorech signály vstupující do procesoru z bicepsu a předloktí a křivku vyhodnocení stavu funkce bicepsu v čase. Místo rotace ruky lze použít stisk, u kterého je výsledný | + | Ve videu je možné shlédnout všechny fáze programu, na monitorech signály vstupující do procesoru z bicepsu a předloktí a křivku vyhodnocení stavu funkce bicepsu v čase. Místo rotace ruky lze použít stisk, u kterého je výsledný signál více zřetelný v závislosti na pozici elektrod. |
- | Učící fáze je naprostou samozřejmostí, protože každý uživatel má hodnoty energie EMG signálu odlišné. Signály jsou filtrovány stejným filtrem. V kódu se za sebou pro filtraci střídají jednotlivé hodnoty signálu z bicepsu a předloktí. Původní představa toho, že se hodnoty jednotlivých vstupních kanálů budou mezi sebou hádat se ukázal jako mylný a oba výsledné vyfiltrované signály se jevily jako vyfiltrované skutečně správně. Nemusela se tak psát kopie filtru, který by filtroval druhý kanál, jak se původně smýšlelo. | + | Učící fáze je naprostou samozřejmostí, protože každý uživatel má hodnoty energie EMG signálu odlišné. Signály jsou filtrovány stejným filtrem. V kódu se za sebou pro filtraci střídají jednotlivé hodnoty signálu z bicepsu a předloktí. Původní představa toho, že se hodnoty jednotlivých vstupních kanálů budou mezi sebou hádat se ukázala jako mylná a oba výsledné vyfiltrované signály se jevily jako vyfiltrované skutečně správně. Nemusela se tak psát kopie filtru, který by filtroval druhý kanál, jak se původně smýšlelo. |
Hodnotí se pouze zda-li je sval aktivní/neaktivní a po jakou dobu. Na základě těchto stavů lze pouze hodnotit zda se končetina hýbe k maximální nebo minimální vychýlce tzn. ustálený stav je pouze v maximu nebo minimu. K vychýlce 50% by uživatel musel kontinuálně daný sval stahovat a uvolňovat, výsledný charakter ustáleného pohybu se však jeví spíš jako vibrující kolem 50%, než ustálený stav. Tento postup vyhodnocování se však zdál nejvíce schůdný vzhledem k nevyspytatelnosti EMG signálu. Rychlost pohybu k maximu a minimu je rovněž konstantní, avšak v kódu lehce měnitelná vzhledem k použití operátoru %. | Hodnotí se pouze zda-li je sval aktivní/neaktivní a po jakou dobu. Na základě těchto stavů lze pouze hodnotit zda se končetina hýbe k maximální nebo minimální vychýlce tzn. ustálený stav je pouze v maximu nebo minimu. K vychýlce 50% by uživatel musel kontinuálně daný sval stahovat a uvolňovat, výsledný charakter ustáleného pohybu se však jeví spíš jako vibrující kolem 50%, než ustálený stav. Tento postup vyhodnocování se však zdál nejvíce schůdný vzhledem k nevyspytatelnosti EMG signálu. Rychlost pohybu k maximu a minimu je rovněž konstantní, avšak v kódu lehce měnitelná vzhledem k použití operátoru %. | ||
- | |||
- | |||
- | |||
===== Závěr ===== | ===== Závěr ===== | ||
- | Cílem projektu bylo realizovat ovládání protetické ruky s pomocí kitu FRDM-K64F a vhodně zobrazovat její pohyb na PC. | + | Cílem projektu bylo realizovat ovládání protetické ruky s pomocí kitu FRDM-K64F a vhodně zobrazovat její pohyb na PC. Výsledný projekt je schopen detekovat EMG signál ze dvou míst a na základě jejich krátkodobých hodnot v čase vyhodnotit a realizovat dva různé pohyby. O tom v jakém stavu vychýlky v čase se zrovna končetina nachází zobrazuje křivka měřených hodnot na PC. Během návrhu se pracovalo se signály z bicepsu a předloktí. V praxi by se však použilo k ovládání jiné místo než předloktí, protože člověk, který by chtěl realizovat práci bicepsu by pravděpodobně předloktí neměl. Vhodným vylepšením by bylo vytvořit vlastní zesilovače, bylo by tak možné měření provádět kdekoliv s přístupem napájení. Celý algoritmus by se dal dále upravovat k lepšímu a plynulejšímu ovládání. |