Operácie

Krokomer s akcelerometrom MMA8491Q: Rozdiel medzi revíziami

Z SensorWiki

(Analýza)
(Popis registrov)
Riadok 131: Riadok 131:
 
|----
 
|----
 
|ZYXDR
 
|ZYXDR
|ZYXDR signalizuje, že sú pripravené nové vzorky vo všetkých kanáloch.
+
|ZYXDR signalizuje, že sú pripravené nové vzorky vo všetkých kanáloch. ZYXDR je vymazaný keď sú prečítané registre horných bitov vo všetkých kanáloch (OUT_X_MSB, OUT_Y_MSB, OUT_Z_MSB).
 
0: Nie je pripravený nový set dát
 
0: Nie je pripravený nový set dát
 
1: Nový set dát je pripravený
 
1: Nový set dát je pripravený
ZYXDR je vymazaný keď sú prečítané registre horných bitov vo všetkých kanáloch (OUT_X_MSB, OUT_Y_MSB, OUT_Z_MSB).
 
 
|----
 
|----
|V_DD
+
|ZDR
|Napájacie napätie
+
|ZDR je nastavený kedykoľvek je generovaná nová vzorka pre os Z. ZDR je vymazaný keď je prečítaný registr OUT_Z_MSB.
 +
0: Nie sú pripravené nové dáta v osi Z
 +
1: Nové dáta v os Z sú pripravené
 
|----
 
|----
|SDA
+
|YDR
|I2C dátová linka
+
|YDR je nastavený kedykoľvek je generovaná nová vzorka pre os Y. YDR je vymazaný keď je prečítaný registr OUT_Y_MSB.
 +
0: Nie sú pripravené nové dáta v osi Y
 +
1: Nové dáta v os Y sú pripravené
 
|----
 
|----
|EN
+
|XDR
|Povoľovací pin
+
|XDR je nastavený kedykoľvek je generovaná nová vzorka pre os X. XDR je vymazaný keď je prečítaný registr OUT_X_MSB.
 +
0: Nie sú pripravené nové dáta v osi X
 +
1: Nové dáta v os X sú pripravené
 
|----
 
|----
 
|}
 
|}

Verzia zo dňa a času 20:49, 19. máj 2016

Autori: Michal Hlavatý, Michal Stromko
Študijný odbor: Aplikovaná mechatronika a elektromobilita 1. Ing. (2016)


Zadanie

Pomocou akcelerometra, ktorý sa nachádza na doske Xtrinsic Sensors board vytvorte aplikáciu/program, ktorý bude realizovať funkciu jednoduchého krokomeru.

Xtrinsic Sensors board

XtrinsicBoard.jpg

Zoznam senzorov:

  • MPL3115A2: High-precision Pressure Sensor (20 – 110 kPa)
  • MAG3110: Digital 3-axis Magnetometer
  • MMA8491Q 3-axis Low-g Accelerometer

Body zadania:

  • K použitému senzoru nájdite datasheet a preštudujte jeho štruktúru, spôsob pripojenia, komunikácie, a čítania dát.
  • Na základe predošlých vedomostí navrhnite spôsob pripojenia k vhodnej riadiacej jednotke
  • Napíšte program v prostredí Arduino zabezpečujúci:
    • Komunikáciu so snímačom
    • Načítanie a spracovanie potrebných dát
    • Realizácia funkcionality krokomeru
  • V ľubovoľnom programovacom jazyku/prostredí vytvorte aplikáciu na vizualizáciu a demonštráciu predloženého riešenia
  • Dokumentáciu odovzdajte prostredníctvom tejto wiki stránky.


Literatúra:

Analýza

Použitý senzor

Na realizáciu funkcie krokometra využijeme už vyššie spomínaný senzor Xtrinsic MMA8491Q 3-Axis Multifunction Digital Accelerometer. Je to nízko napäťový, 3-osí "low-g" akcelerometer uložený v 3 mm x 3 mm QFN púzdre. Zariadenie poskytuje dve konfigurácie. Prvou z nich je 45° senzor naklonenia a druhou akcelerometer s digitálnym výstupom cez I2C zbernicu. Pre nás je zaujímavá funkcia akcelerometra kedy senzor poskytuje 14-bit ± 8g dáta, ktoré môžu byť prečítané s 1 mg/LSB rozlíšením.

Vlastnosti

  • Extrémne nízka spotreba 400 nA na Hz
  • Ultra rýchly čas prenosu, ~700 μs
  • Napájací rozsah od 1,95 do 3,6 V
  • 3 mm x 3 mm, 0,65 mm stúpanie s vizuálnou inšpekciou spájkovacích spojov
  • ± 8g rozsah
  • 14-bit digitálny výstup, 1 mg/LSB rozlíšenie
  • rýchlosť prenosu výstupných dát (ODR), v závislosti na implementácii od 1 Hz do 800 Hz
  • I2C digitálne rozhranie
  • výstup v troch osiach a 45° natočenie


Popis vývodov

Pins.png

C Pin Funkcia
1 Byp Pripojenie výstupného kondenzátora interného regulátora
2 V_DD Napájacie napätie
3 SDA I2C dátová linka
4 EN Povoľovací pin
5 SCL I2C hodinová linka
6 Gnd Zem
7 Gnd Zem
8 Zout Výstup detekcie naklonenia v osi Z
9 Yout Výstup detekcie naklonenia v osi Y
10 Xout Výstup detekcie naklonenia v osi X
11 NC Nepripojené
12 NC Nepripojené

Popis registrov

Mapa registrov

Registre.png

Stavový register

Register 0x00 obsahuje real-time stavové informácie o vzorkách X, Y a Z dát. Bity (ZYXDR, ZDR, YDR, XDR) sa nastavia keď sú nové nasnímané dáta pripravené na čítanie.

Pole Popis
ZYXDR ZYXDR signalizuje, že sú pripravené nové vzorky vo všetkých kanáloch. ZYXDR je vymazaný keď sú prečítané registre horných bitov vo všetkých kanáloch (OUT_X_MSB, OUT_Y_MSB, OUT_Z_MSB).

0: Nie je pripravený nový set dát 1: Nový set dát je pripravený

ZDR ZDR je nastavený kedykoľvek je generovaná nová vzorka pre os Z. ZDR je vymazaný keď je prečítaný registr OUT_Z_MSB.

0: Nie sú pripravené nové dáta v osi Z 1: Nové dáta v os Z sú pripravené

YDR YDR je nastavený kedykoľvek je generovaná nová vzorka pre os Y. YDR je vymazaný keď je prečítaný registr OUT_Y_MSB.

0: Nie sú pripravené nové dáta v osi Y 1: Nové dáta v os Y sú pripravené

XDR XDR je nastavený kedykoľvek je generovaná nová vzorka pre os X. XDR je vymazaný keď je prečítaný registr OUT_X_MSB.

0: Nie sú pripravené nové dáta v osi X 1: Nové dáta v os X sú pripravené

V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:

  • popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.)
  • obrázok zapojenia vývodov použitej súčiastky
  • odkaz na katalógový list
  • priebehy dôležitých signálov
  • este jedna polozka

Popis riešenia

Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru (nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.

Schéma zapojenia snímača Zapojenie.png

Súbor:Example.jpg

Pozn.: Názov obrázku musí byť jedinečný, uvedomte si, že Obr1.jpg už pred vami skúsilo nahrať už aspoň 10 študentov.

MojObrazok.jpg

Algoritmus a program

Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.

Vyberte podstatné časti zdrojového kódu, použite na to prostredie source:

/* A nezabudnite zdroják hojne komentovať  */

int main(void) {
    
    printf("Hello, World!\n");  
    return(0);  
}

Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!

Zdrojový kód: serial.h a main.c

program.c



Overenie

Nezabudnite napísať čosi ako užívateľský návod. Z neho by malo byť jasné čo program robí, ako sa prejavuje a aké má užívateľské rozhranie (čo treba stlačiť, čo sa kde zobrazuje). Ak ste namerali nejaké signály, sem s nimi. Ak je výsledkom nejaký údaj na displeji, odfotografujte ho.

Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.