Operácie

Meteostanica s Nucleo Board: Rozdiel medzi revíziami

Zo stránky SensorWiki

DVPS (diskusia | príspevky)
DVPS (diskusia | príspevky)
Riadok 109: Riadok 109:


[[Súbor:I2C-ACK.png]]
[[Súbor:I2C-ACK.png]]
::::::::'''Obr. 7: Potvrdzovací ACK bit pri zbernici I2C'''
:::::::::'''Obr. 7: Potvrdzovací ACK bit pri zbernici I2C'''
 
 
 
 
 





Verzia z 11:42, 29. máj 2018


Balogh: 
* výborne opísané senzory, tak som si to predstavoval 
* výstup vlastne neviem aký by z toho mal byť
* dokumentácia je zrejme nedokončená


Autori: Kamila Vavríková, Martin Herceg
Študijný odbor: Aplikovaná mechatronika a elektromobilita 1. Ing. (2018)



Zadanie

Využitím dosky X. MEMS Inertial Nucleo board zostavte Meteostanicu, ktorá bude merať teplotu vzduchu, vlhkosť vzduchu a atmosferický tlak.


Úlohy

  • Nájdite si k senzorom datasheet
  • Nájdite si schémy zapojenia dosky
  • Na základe predošlých vedomostí navrhnite spôsob pripojenia k riadiacej jednotke
  • Napíšte základný demonštračný program využívajúci vaše funkcie
  • Vymyslite a demonštrujte vhodnú aplikáciu


Komponenty

Na vypracovanie sme použili nasledujúce komponenty:

  • 1 x Vývojovú dosku X-NUCLEO-IKS01A1
  • 1 x Vývojová doska Acrob
  • 1 x Basic Breakout 5V (Sparkfun DEV-09716) USB mini to serial 6pin
  • 1 x Mini USB kábel
  • Prepojovacie kábliky
  • Software - Arduino IDE


Doska X-NUCLEO-IKS01A1

Je MEMs inerciálna vývojová doska, ktorá môže byť použitá na rozšírenie systému SMT32 Nucleo. Je tiež kompatibilná s Arduino UNO R3.

Obr. 1: Vývojová doska X-Nucleo-IKS01A1


Zoznam senzorov, ktoré sa nachádzajú na doske:

  • LSM6DS0: MEMS 3D accelerometer (±2/±4/±8 g) + 3D gyroscope (±245/±500/±2000 dps)
  • LIS3MDL: MEMS 3D magnetometer (±4/ ±8/ ±12/ 16 gauss)
  • LPS25HB*: MEMS pressure sensor, 260-1260 hPa absolute digital output barometer
  • HTS221: capacitive digital relative humidity and temperature


Vývojová doska Acrob (Arduino Compatible Robot)

Jedná sa o riadiacú jednotku s mikropocesorom ATmga328 s 32KB Flash pamäte, 2KB SRAM pamäte a 1 KB EEPROM pamäte. Dosku je možné programovať v jazyku C alebo Arduino a teda je možné ju programovať pomocou Arduino IDE.


Obr. 2: Vývojová doska Acrob


Technické parametre vývojovej dosky nájdete tu: Klik


Basic Breakout 5V (Sparkfun DEV-09716) USB mini to serial 6pin

Jedná sa o plošnú dosku, ktorá obsahuje čip, ktorý umožňuje prevod USB na UART rozhranie.

Obr. 3: Basic Breakout 5V


Technické parametre nájdete tu: klik


Analýza

Na realizáciu Meteostanice, ktorá bude merať teplotu vzduchu, atmosferický tlak a vlhkosť vzduchu sme využili senzor HTS221 a senzor LPS25HB* Na komunikáciu budeme využívať zbernicu I2C.


Zbernica I2C

I2C je dvojvodičová obojsmerná sériová zbernica používajúca vodiče SCL a SDA. Úlohou SCL vodiča je prenášať hodinové signály, úlohou SDA vodiča je prenášať sériové dáta. Na komunikáciu využíva master - slave komunikáciu.

Obe linky (SDA, SCL) musia byť pripojené na kladný pól napájacieho napätia prostredníctvom tzv. pull-up rezistorov (výstup typu otvorený kolektor). Tým je zabezpečená práca liniek SDA a SLC v obidvoch smeroch. Pokiaľ by došlo ku kolízii, poškodili by sa iba úrovne signálu a nie vysielacie obvody. Spätnou väzbou je zaistené, že obvod môže pracovať aj ako vysielač, aj ako prijímač.

Obr. 4: Zapojenie liniek


V priebehu jedného hodinového cyklu SLC je prenesený práve jeden dátový bit. Dáta privedené na linku SDA musia zostať nemenné po celú dobu taktovania kladného impulzu hodín SLC. Pri SLC=1 sú totiž zmeny SDA chápané ako riadiaci signál.

Obr. 5: Prenos bitu po zbernici I2C


K označeniu začiatku a konca prenosu nie sú používané prídavné riadiace linky, ale dva špeciálne stavy zbernice. ŠTART prenosu (S) je oznámený zostupnou hranou SDA pri SLC=1. STOP prenosu (P) je definovaný nábežnou hranou SDA pri SLC=1. Pokiaľ je zbernica v neaktívnom stave, sú signály SDA a SLC v log. 1 (jednotke).

Obr. 6: START a STOP bit pri I2C zbernici


Pri prenose nie je počet dátových bitov prenesených medzi START a STOP z vysielača do prijímača obmedzený. Každý dátový bajt (8bitov) je nasledovaný jedným potvrdzovacím bitom ACK (A). ACK predstavuje log. 0 (nulu) vloženú na zbernicu prijímačom, spojenú s potvrdzovacím hodinovým impulzom. Prijímač, ktorý je adresovaný, musí generovať ACK po prijatí každého bajtu.


Obr. 7: Potvrdzovací ACK bit pri zbernici I2C


V našom projekte je doska Acrob master a senzory HTS221 a LPS25HB* sú podriadené (slave). Master môže z podriadeného zariadenia údaje čítať alebo naň údaje zapisovať. Prenos údajov môže začať iba Master zariadenie.





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

Senzor HTS221

HTS221 sníma relatívnu vlhkosť a teplotu vzduchu. Obsahuje snímač a zmiešaný signál ASIC na poskytovanie informácií o meraní prostredníctvom digitálnych sériových rozhraní. Snímač pozostáva z dielektrickej štruktúry kondenzátora, ktorá je schopná detekovať zmeny relatívnej vlhkosti. Na komunikáciu používa I2C alebo SPI zbernicu.


Parametre:

  • Napájacie napätie: 1,7 až 3,6 V
  • Prevádzková teplota: -40 až +120 °C
  • Rozsah merania vlhkosti: 0 až 100%
  • Presnosť merania teploty: ±0,5 °C, 15 až +40°C
  • Presnosť merania vlhkosti: ±3.5% rH, 20 až 80% rH


Schéma zapojenia senzora (na vývojovej doske X-NUCLEO-IKS01A1):


Rozloženie pinov senzora:

Senzor LPS25HB*

LPS25HB je piezoelektrický snímač absolútneho tlaku, ktorý funguje ako digitálny výstupný barometer. Zariadenie obsahuje senzorový prvok a rozhranie IC, ktoré komunikuje cez I2C alebo SPI zo snímacieho prvku s aplikáciou. Senzor taktiež umožňuje získavať dáta o teplote.


Parametre:

  • Napájacie napätie: 1,7 až 3,6 V
  • Prevádzková teplota: -30 až +105 °C
  • Rozsah merania tlaku: 260 až 1260 hPa
  • Presnosť merania tlaku: ±1 hPa, 0 až +80°C


Schéma zapojenia senzora (na vývojovej doske X-NUCLEO-IKS01A1):


Rozloženie pinov senzora:

Riešenie

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

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.

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

Jednotlivé merané veličiny boli vykreslené v prostredí Matlab. Každá veličina je vykreslená samostatne kvôli rôznemu rozsahu osi y.

Zdrojový kód (Matlab): ZadanieGrafy.m


Vízia komplexnej aplikácie

TODO

Literatúra

  • Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.