Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2014:boat-sensor

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
2014:boat-sensor [2015/01/15 16:36]
Martin Svozil [Demo]
2014:boat-sensor [2015/01/18 05:15] (aktuální)
Martin Svozil [Demo]
Řádek 7: Řádek 7:
  
 ===== Použité zařízení (Hardware) ​ ===== ===== Použité zařízení (Hardware) ​ =====
-Pro projekt byli použity desky Freescale Freefom Platform (FRDM - KL25Z) a  Freescale Freefom Platform For Xtrinsic Sensors With Bluetooth ( FRDM - FXS - MULTI - B). Dále propojovací kabel USB mini A-B a PC. Tyto desky byly používány během výuky předmětu MPOA v několika počítačových cvičení. ​+Pro projekt byli použity desky Freescale Freefom Platform (**FRDM - KL25Z**) a  Freescale Freefom Platform For Xtrinsic Sensors With Bluetooth (**FRDM - FXS - MULTI - B**). Dále propojovací kabel USB mini A-B a PC. Tyto desky byly používány během výuky předmětu MPOA v několika počítačových cvičení. ​
  
 {{ :​2014:​mpoa_platform.png?​700x390 | Deska KL25Z s popisky}} {{ :​2014:​mpoa_platform.png?​700x390 | Deska KL25Z s popisky}}
Řádek 15: Řádek 15:
  
 ===== Popis funkce ===== ===== Popis funkce =====
-Složené zařízení (desky FRDM-KL25Z a FRDM-FXS-MULTI-B) pro snímaní úhlové polohy lodě, jsou připojeny přes USB micro kabel do PC. Na počítači běží grafická vizualizace lodě viz obr. 1. Na obrázku lze vidět že obsahuje tři prvky a to vertikální ​uhlovou ​rovinu, horizontální ​uhlovou ​rovinu ​ a indikaci nebezpečí pro loď. Poloha lodi je se mění v závislosti na změně ​uhlu kdy silná bílá plná přímka udává hladinu vody v závislosti na lodi a slabá bílá čárkovaná přímka udává na stupnici velikost úhlu. ​+Složené zařízení (desky FRDM-KL25Z a FRDM-FXS-MULTI-B) pro snímaní úhlové polohy lodě, jsou připojeny přes USB micro kabel do PC. Na počítači běží grafická vizualizace lodě viz obr. 1. Na obrázku lze vidětže obsahuje tři prvky a to vertikální ​úhlovou ​rovinu, horizontální ​úhlovou ​rovinu a indikaci nebezpečí pro loď. Poloha lodi se mění v závislosti na změně ​úhlu, kde silná bílá plná přímka udává hladinu vody v závislosti na lodi a slabá bílá čárkovaná přímka udává na stupnici velikost úhlu. ​
  
-{{:2014:mpoa_stabilizace.png?​1000x500| Grafické rozhraní projektu rozhraní}}+{{:2014:mpoa_stabilizace_lod.png?​1000x500| Grafické rozhraní projektu rozhraní}}
   obr.1 Grafické rozhraní projektu rozhraní  ​   obr.1 Grafické rozhraní projektu rozhraní  ​
  
Řádek 24: Řádek 24:
   ​   ​
 **Indikace nebezpečí** obsahuje tři stavy a to:  **Indikace nebezpečí** obsahuje tři stavy a to: 
-  *Bezpeční stav (obr.2, vrchní) +  *Bezpečný stav (obr.2, vrchní) 
-  *Nebezpeční stav (obr.2, prostřední)+  *Nebezpečný stav (obr.2, prostřední)
   *Kritický stav (obr. 2, spodní)   *Kritický stav (obr. 2, spodní)
  
  
-Bezpeční stav v vertikální poloze kolem 0°-10° a v horizontálním poloze o trochu více cca. 0°-20°. Bezpečný stav je od  
  
-^ Stavy      ^ Vertikální ​rovině ​   ^ Horizontální ​rovině ​          ^ +^ Stavy      ^ Vertikální ​rovina ​   ^ Horizontální ​rovina ​          ^ 
-| Bezpeční    ​| ​  ​0°-10° ​ |  0°-20° ​       | +| Bezpečný    ​| ​  ​0°-10° ​ |  0°-20° ​       | 
-| Nebezpeční  ​| ​ 10°-20° ​ |  20°-30° ​ |+| Nebezpečný  ​| ​ 10°-20° ​ |  20°-30° ​ |
 | Kritický ​   |  < 10°     ​| ​ < 30°        | | Kritický ​   |  < 10°     ​| ​ < 30°        |
  
Řádek 42: Řádek 41:
 Nejprve byla otestována samotná funkce snímání uhlů při pootočení desky, za pomocí sériového rozhraní. Deska funguje ovšem né moc s přesnými hodnoty při prudších pohybech, což nevadí z důvodu pomalého pohybu pro loď.  Nejprve byla otestována samotná funkce snímání uhlů při pootočení desky, za pomocí sériového rozhraní. Deska funguje ovšem né moc s přesnými hodnoty při prudších pohybech, což nevadí z důvodu pomalého pohybu pro loď. 
  
-Pro realizaci ​realizaci grafického rozhraní bylo nutné vytvoření několika objektu které se využívají pro zobrazení.  +Pro realizaci grafického rozhraní bylo nutné vytvoření několika objektukteré se využívají pro zobrazení.  
-A to {{2014:​mpoa_poloha_1.png?​0x20}} , {{2014:​mpoa_poloha_2.png?​0x20}} , {{2014:​mpoa_stav_1.png?​0x20}} , {{mpoa_stav_2.png?​0x20}} , {{2014:​mpoa_stav_3.png?​0x20}} , {{mpoa_stabilizace_lod_prazdny.png?​0x20}}. Všechny obrázky byli vytvořeny v programu Photoshop, kromě indikace nebezpečí které byli jen upraveny pro  použití. Při použití stabilizace_lod_prazdny.png jako statický pozadí do kterého jsou v intervalech vkládány obrazce poloha_1 a poloha_2 které jsou natočeny v  ​o ​stupnů, kde X je rovno uhlu dané osy. +A to {{2014:​mpoa_poloha_1.png?​0x20}} , {{2014:​mpoa_poloha_2.png?​0x20}} , {{2014:​mpoa_stav_1.png?​0x20}} , {{mpoa_stav_2.png?​0x20}} , {{2014:​mpoa_stav_3.png?​0x20}} , {{mpoa_stabilizace_lod_prazdny.png?​0x20}}. Všechny obrázky byli vytvořeny v programu Photoshop, kromě indikace nebezpečíkteré byli jen upraveny pro  použití. Při použití stabilizace_lod_prazdny.png jako statický pozadí do kterého jsou v intervalech vkládány obrazce poloha_1 a poloha_2které jsou natočeny v X stupňů, kde X je rovno úhlu dané osy. Záznam byl uložen do souboru .txt [[http://​uloz.to/​xmhVM7Sq/​zaznam-multi-b-txt|odkaz na záznam]] a nahrán do aplikace pro vizualizaci.
  
-{{ :2014:mpoa_demo3.gif?​1000x500 | animace ​grafické funkce}}+{{ :2014:mpoa_demo4.gif?​1000x500 | Animace ​grafické funkce}}
  
  
Řádek 58: Řádek 57:
     MotionSensorDataUnits adata;     MotionSensorDataUnits adata;
     MotionSensorDataUnits mdata;     MotionSensorDataUnits mdata;
-    int16_t acc_raw[3];​ +    int16_t acc_raw[3];  
-    ​const char *s;   +    ​float X,Y,Z;
-    int X,Y,Z;+
     printf("​\r\nStarting\r\n\r\n"​);​     printf("​\r\nStarting\r\n\r\n"​);​
  
Řádek 76: Řádek 74:
         printf("​MPL3115A2 Alt  = %X\r\n",​ alt.getDeviceID()); ​         printf("​MPL3115A2 Alt  = %X\r\n",​ alt.getDeviceID()); ​
     #endif     #endif
 +    printf("​cas(s) Accelerometer_osa_X Accelerometer_osa_Y ​ Accelerometer_osa_Z \r\n"​);​
     ​     ​
     wait(3);     wait(3);
Řádek 82: Řádek 81:
         acc1.ReadXYZ(acc_data);​         acc1.ReadXYZ(acc_data);​
         acc1.ReadXYZraw(acc_raw);​         acc1.ReadXYZraw(acc_raw);​
-        printf("​FXLS8471 Acc:   ​X:​%6.3f Y:%6.3f Z:%6.3f (Raw X:%4d Y:%4d Z:​%4d)\r\n",​ acc_data[0],​ acc_data[1],​ acc_data[2],​ acc_raw[0], acc_raw[1], acc_raw[2]);​ 
- 
         acc2.ReadXYZ(acc_data);​         acc2.ReadXYZ(acc_data);​
         acc2.ReadXYZraw(acc_raw);​         acc2.ReadXYZraw(acc_raw);​
-        printf("​MMA8652 Acc:    X:%6.3f Y:%6.3f Z:%6.3f (Raw X:%4d Y:%4d Z:​%4d)\r\n",​ acc_data[0],​ acc_data[1],​ acc_data[2],​ acc_raw[0], acc_raw[1], acc_raw[2]);​ 
- 
         combo_acc.getAxis(adata);​         combo_acc.getAxis(adata);​
-        printf("​FXOS8700 Acc:   X:%6.3f Y:%6.3f Z:%6.3f\r\n",​ adata.x, adata.y, adata.z); +        printf("​%6.3f %6.3f %6.3f %6.3f\r\n"​, time, adata.x, adata.y, adata.z);
- +
-        ​+
         wait(1);         wait(1);
     }     }
Řádek 98: Řádek 91:
 </​code>​ </​code>​
  
-Záznam byl uložen do souboru .txt [[http://​uloz.to/​xmhVM7Sq/​zaznam-multi-b-txt|odkaz na záznam]] a nahrán do aplikace pro vizualizaci,​viz DEMO3. 
 ===== Závěr ===== ===== Závěr =====
 +Projekt byl vytvořen pouze na dvě fáze a to nahraní dat samostatně a poté zpracování dat do grafické podoby. Využiti akcelerometru a gyroskopu se neosvědčilo,​ docházelo k velkým odchylkám. Lepších výsledků bylo dosaženo samotným akcelerometrem s přidaným filtrem "//​Plovoucí okno//",​ pro plynulejší pohyb ukazatele.  ​
 +Při pokusu zprovoznění doporučovaného softwaru CodeWarrior od Freescale, jsem narazil na hodně problému, proto jsem tuto možnost opustil. Měl jsem menší problém s hardwarem, ale byl vyřešen výměnou. Ani po týdnu jsem nedocílil pokroku. Problém se nalézá zřejmě mezi klávesnicí a židli.  ​
 +
2014/boat-sensor.1421336180.txt.gz · Poslední úprava: 2015/01/15 16:36 autor: Martin Svozil