- zoznámenie sa s I2C
- komunikácia s IMU prostredníctvom I2C
- na obrázku je zobrazená konfigurácia I2C - okrem zobrazených parametrov je nutné povoliť globálne prerušenia od I2C ("error interrupt" nie je momentálne potrebný)
- MCU má rolu "master", číta z registrov alebo zapisuje do registrov senzora ("slave")
-
obsahuje viacero senzorových jednotiek: magnetometer (LIS3MDL), IMU - acc + gyro (LSM6DS0), sonzor vlhkosti a teploty (HTS221), barometrický snímač (LPS25HB) ...
-
v tomto prípade MCU komunikuje s IMU (acc a gyro) LSM6DS0
-
na obrázku je znázornené zapojenie senzorovej dosky k vývojovej doske s MCU
-
ukážkový program komunikuje s LSM6DS0 prostredníctvom I2C a číta hodnotu zrýchlení v osiach x, y, z
- aplíkácia pre vykreslovanie dát, ktoré sú priaté prostredníctvom sériovej komunikácie vo formáte CSV (comma-separated values) - napríklad "123,158,39.789,5639"
- možnosť používať aj ako obyčajnú terminálovú aplikáciu (Putty)
- nutnosť nastaviť COM port a prenosovú rýchlosť (baud rate)
- po kliknutí na "Oscilloscope" za otvorí nové okno s grafickým zobrazením priebehov (maximálne 9 kanálov, 3 kanály pre jedno okno), s ktorým je možné manipulovať (posúvať priebeh, meniť časovú základňu a rozsah zobrazovaných hodnôt)
- k dispozícii na stiahnutie tu: https://x-io.co.uk/serial-oscilloscope/
Vytvoriť aplikáciu, ktorá bude posielať dáta získané zo senzorov (LPS25HB, HTS221) cez USART do PC. Odosielanými údajmi budú teplota, relatívna vlhkosť vzduchu, tlak vzduchu a relatívna výška (výška nad povrchom zeme).
-
Vytvorenie vlastného git repozitára - viditeľné commity, nastavenie ".gitignore".
-
Vytvoriť si vlastnú knižnicu pre senzory LPS25HB a HTS221 (podobne ako vyzerá knižnica pre IMU (acc + gyro) v demo ukážke).
-
Knižnica musí obsahovať inicializačnú funkciu, ktorej úlohou je overiť pripojenie senzora a vykonať počiatočnú konfiguráciu senzora (ekvivalent ku "lsm6ds0_init" z demo ukazky). Ako prvé overíte, či viete prečítať "WHO_AM_I" register a či hodnota, ktorú vám senzor vráti je totožná s hodnotou z dokumentácie. Následne zapíšete do registrov sonzora svoju vlastnú konfiguráciu. Prejdite si dokumentáciu, zistite čo všetko viete nastavovať pomocou registrov a podľa potreby si zvoľte vlastnú konfiguráciu senzora (frekvencia merania, merací rozsah ... ).
-
Knižnica musí obsahovať funkciu na čítanie/zapisovanie dáť zo/do senzora. Zapisovanie do senzora bude slúžiť napr. pri konfigurácii senzora a čítanie bude slúžiť na získavanie aktuálneho stavu senzora (ak je to potrebné), hodnôt meraných veličín ... . Ak zo senzora budete čítať viac ako jednu veličinu (napr. teplota a vlhkosť), tak pre každú meranú veličinu vytvorte samostatnú funkciu na jej čítanie. V demo príklade je funkcia "lsm6ds0_get_acc" pre získanie zrýchlení. AK by sa vyčítavali aj uhlové rýchlosti z gyra, knižnica by obsahovala funkciu "lsm6ds0_get_gyro".
-
Údaje, ktoré sa majú zobrazovať ale nie su priamo získateľné zo senzora je potrebné na základe dostupných meraných hodnôt vypočítať (napr. relatívna výška, ...). Pre takýto "post processing", kedy sa z meraných údajov snažite niečo vypočítať vytvorte samostatnú funkciu.
-
Údaje sa budú posielať cez USART vo formáte CSV a zobrazovať na PC pomocou "serial osciloscope".
-
Formátovanie odosielaných hodnôt. Hranatá zatvorka predstavuje v akých jednotkách je zobrazovaná hodnota. Niektoré hodnoty sú zobrazované s presnosťou na 1 alebo 2 desatinné miesta. "xx.x" predstavuje digity vyhradené pre číslice - jedno desatinné miesto, jednotky a desiatky:
- teplota [°C]: "xx.x"
- rel. vlhkosť [%]: "xx"
- tlak vzduchu [hPa]: "xxxx.xx"
- relatívna výška [m]: "xxx.xx"
-
Odovzdáva sa projekt do miesta odovzdania v AIS + počas odovzdávania sa skontroluje git.