Meranie pulzovej frekvencie.
Zo stránky SensorWiki
Autori: | Ján Lechvár, Bc., Stanislav Slaminka, Bc. | |
Študijný odbor: | Aplikovaná mechatronika | 2. Ing. (2014/2015) |
Zadanie
Pomocou senzoru TSL235 zmerajte pulzovú frekvenciu. Popíšte princíp merania a vyhodnotenia signálu, zmerajte ukážkové data a vyhodnoťte meranie.
Literatúra:
- Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.
Analýza
Úlohou nášho zadania je meranie pulzovej frekvencie nášho srdca pomocou senzora TSL235. Dáta z tohto senzora sú sériovo prenášané po I2C zbernici. Výstup senzora je pripojený na pin D8 na portuB, ktorý je nastavený ako vstup mikrokontroléra Atmega 328P, ktorý je umiestnený na vývojovej doske Acrob. Pre lepšie výsledky sme meranie vykonávali v tme, kde sme ako svetelný zdroj použili LED.
![](/sensorwiki/images/thumb/8/8b/AcrobBoard.jpg/300px-AcrobBoard.jpg)
Parametre senzora TSL235:
- Max. napájacie napätie: Vdd = 6V
- Napájací prúd: Idd = max 3 mA
- Odporúčanie napájanie: Vdd = 2,7V – 5,5V
- Prevádzková teplota: Ta = -25°C – 70°C
- Teplota uskladnenia: Tstg = -25 °C – 85°C
- Výstupná frekvencia: fo = 200-300kHz
Rozloženie pinov senzora TSL235:
Popis pinov senzora TSL235:
Charakteristiky senzora TSL235
![](/sensorwiki/images/thumb/9/9a/Charakteristiky_TSL235.png/500px-Charakteristiky_TSL235.png)
Popis komunikačnej zbernice i2c:
I²C (anglicky Inter-Integrated Circuit, čítame I-squared-C, nesprávne I-two-C) je multi-masterová počítačová sériová zbernica vyvinutá firmou Philips, ktorá je používaná na pripájanie nízkorýchlostných periférií k základnej doske, vstavanému systému alebo mobilnému telefónu.
Charakteristika
Zbernica rozdeľuje pripojené zariadenia na riadiaci (master - zahajuje a ukončuje komunikáciu; generuje hodinový signál SCL) a riadené (slave - zariadenie adresované masterom). Podľa stavu k 1. októbru 2006 nie sú vyžadované žiadne licenčné poplatky pre implementáciu, avšak spoplatnené je prideľovanie adries pre slave zariadenia.
Zbernica I²C sa hojne používa v rôznych zariadeniach, vrátane IBM PC kompatibilných počítačov:
- čítanie konfiguračných dát z SPD EEPROM v pamäťových DIMM moduloch (SDRAM, DDR SDRAM, DDR2)
- správa PCI kariet pomocou spojenia SMBus 2.0
- prístup k NVRAM čipom obsahujúcich užívateľské nastavenia (na sieťovej karte, radičmi)
- prístup k nízkorýchlostným D / A a A / D prevodníkom
- zmena kontrastu, teploty farieb, vyváženie farieb v monitoroch (DDC)
- zmena hlasitosti inteligentných reproduktorov
- riadenie OLED a LCD displejov mobilných telefónov
- čítanie údajov o monitorovaných zariadeniach (teplota procesora, rýchlosť vetráčikov)
- čítanie hodín reálneho času
- zapínanie a vypínanie napájania systémových komponentov
Časový diagram
![](/sensorwiki/images/6/69/%C4%8Casovy_diagram.png)
Prenos dát sa začína START bitom (S), keď je SDA nízka, zatiaľ čo SCL zostáva vysoká. Potom, SDA nastaví prenášané bit kým SCL je nízka (modrá) a sú odobraté vzorky dát (prijaté) pri SCL stúpa (zelená). Keď je prenos dokončený, je poslaný STOP bit (P) pre uvoľnenie dátovej linky, zmenou SDA na vysokú, zatiaľ čo SCL je trvalo vysoký. Aby sa zabránilo falošne detekciu, je úroveň na SDA zmenený na negatívne hrane a je zachytený na kladné hrany SCL.
Riadenie komunikácie
Pre riadenie komunikácie sa na I2C používa metóda s detekciou kolízie. Každá zo staníc môže začať vysielanie, ak je predtým zbernica v kľudovom stave. Počas vysielania musia neustále porovnávať vysielané bity sa skutočným stavom SDA. Ak je zistený rozdiel medzi očakávaným a skutočným stavom linky SDA, je to indikácia kolízie medzi niekoľkými stanicami. Vzhľadom k charakteru zbernice (otvorené kolektory) môže k tejto situácii dôjsť, ak určitá stanica vysiela úroveň H, zatiaľ čo iná stanica vysiela úroveň L. Stanica, ktorá na linke zistí úroveň L zatiaľ čo sama vysiela H musí vysielania okamžite ukončiť. K riadeniu komunikácia väčšinou dochádza počas vyslania niekoľkých prvých bitov, kedy je vysielaná adresa prijímacej stanice. Ak by sa napríklad. Dve stanice súčasne pokúsili o zápis do rovnakého obvodu, nastane kolízia až pri prenose vlastných zapisovaných dát. V krajnom prípade, keď viaceré staníc súčasne zapisuje rovnaké dáta na rovnakú adresu, nemusí byť kolízie vôbec detekovaná.
Adresovanie
Každá stanica pripojená na I2C má pridelenú 7 bitovú adresu. Po zachytení podmienky START porovnávajú všetky obvody svoju adresu s adresou, ktorá je vysielaná na zbernici. Ak zistí niektorý z obvodov zhodu, je vysielanie určené práve jemu a musí prijatie adresy potvrdiť bitom ACK. Potom prijíma alebo vysiela ďalšie dáta. Niekoľko adries je na I2C vyhradené pre špeciálne účely. Napríklad adresa 0000000 je určená pre vysielanie broadcast adresy 0000011, 00001XX a 11111XX sú rezervované pre ďalšie účely.
Potvrdzovanie
Každý vysielaný byte a vyslaná adresa je nasledovaná vyslaním jedného bitu ACK. Vysielajúca stanica ho vysiela v úrovni H. Prijímajúca stanica potvrdzuje prijatie tým, že v čase vysielania ACK pripojí SDA na úroveň L. Ak vysielajúca stanica nedostane potvrdenie príjmu, ukončí vysielanie podmienkou STOP.
Odkaz na katalógový list
- 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
Popis riešenia
Pomocou senzora sme merali veľkosť periódy impulzov. Tieto hodnoty sme následne prepočítali vzhľadom na frekvenciu procesora a preddeličky. Kvôli veľkému šumu sme museli tieto hodnoty ešte spriemerovať, použili sme pritom klasický aritmetický priemer pre 20 meraní. Tieto hodnoty sme v reálnom čase zobrazovali pomocou softvéru SerialChart. Aby sme vedeli zmerať pulznú frekvenciu bolo potrebné vložiť medzi zdroj svetla a senzor prst, kvôli ktorému sa menila intenzita osvetlenia dopadajúca na senzor. Kvôli eliminácií rušivých vplyvov od iných svetelných zdrojov bol senzor zakrytý čiernou plachtou.
Bloková schéma senzora
![](/sensorwiki/images/7/77/Blok.schema.png)
Schéma zapojenia senzora
Algoritmus a program
Algoritmus je písaný v programovacom jazyku C v programovateľnom prostredí AVR Studio 4. Štruktúra algoritmu je vysvetlená na nižšie uvedenom vývojom diagrame.
![](/sensorwiki/images/thumb/f/f1/Vyvojovy_diagram_pulz.jpg/400px-Vyvojovy_diagram_pulz.jpg)
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
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.