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/16 18:37]
Martin Svozil [Popis funkce]
2014:boat-sensor [2015/01/18 05:15] (aktuální)
Martin Svozil [Demo]
Řá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_lod.png?​1000x500| Grafické rozhraní projektu rozhraní}} {{:​2014:​mpoa_stabilizace_lod.png?​1000x500| 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í rovina ​   ^ Horizontální rovina ​          ^ ^ Stavy      ^ Vertikální rovina ​   ^ Horizontální rovina ​          ^
Řá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. 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 DEMO4.+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_demo4.gif?​1000x500 | Animace grafické funkce}} {{ :​2014:​mpoa_demo4.gif?​1000x500 | Animace grafické funkce}}
Řádek 59: Řádek 58:
     MotionSensorDataUnits mdata;     MotionSensorDataUnits mdata;
     int16_t acc_raw[3]; ​     int16_t acc_raw[3]; ​
-    ​int X,Y,Z;+    ​float X,Y,Z;
     printf("​\r\nStarting\r\n\r\n"​);​     printf("​\r\nStarting\r\n\r\n"​);​
  
Řádek 75: Řá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 81: Řá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 96: Řádek 90:
  
 </​code>​ </​code>​
- 
  
 ===== 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.  ​ 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í ​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 hardware ​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.  ​+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.1421429836.txt.gz · Poslední úprava: 2015/01/16 18:37 autor: Martin Svozil