Měření signálů ■ signály a jejich charakteristiky ■ úprava vstupního signálu ■ analogově-digitální převodníky ■ základy vzorkování dat - snímání stavu potenciometru - měření osvětlení fotoodporem - teploměr jinak ■ digitálně-analogový převodník a jeho náhrada Signál fyzikální veličina, která přenáší nějakou zprávu o nějakém jevu, obsahující určité množství (to často závisí i na příjemci) informace reprezentován popisem závislosti jednoho parametru (závislá proměnná) na parametru jiném (nezávislá proměnná) - často je nezávislá proměnná čas, může to být ale cokoliv jiného (poloha) - signály mohou být optické, elektrické, elektromagnetické, akustické, mechanické, pneumatické, nebo hydraulické - závislou proměnnou bude v rámci kurzu obvykle napětí, mnohdy ale reprezentující jinou veličinu spojitý signál existuje ve všech okamžicích určitého intervalu, diskrétní pouze v určitých časech - například určených vzorkováním - obdobně to platí i pro amplitudu signálu f(t) \ ť ■ determinovaný - lze určit hodnotu v jakýkoliv okamžik s absolutní jistotou, patří sem periodický - signál je definovaný pro t e (-°°; °°) podmnožiny harmonické a neharmonické; X neperiodický ■ stochastický - velikost signálu v libovolném okamžiku dovedeme určit pouze s nějakou pravděpodobností - stacionární-nezávislé na počátku časové osy, x nestacionární - existují signály, které nejsou deterministické ani stochastické ■ analogový signál je dán spojitou (nebo po částech spojitou) funkcí spojitého času - podle média, kterým jsou přenášeny: akustické, elektrické, optické ■ diskrétní - je dán funkcí definovanou pouze v diskrétních okamžicích - tvoří tak posloupnosti hodnot spojitý vs. diskrétní ■ spojitý v čase i amplitudě: analogový ■ spojitý v čase a diskrétní v amplitudě: kvantizovaný - diskrétní v čase a spojitý v amplitudě: vzorkovaný ■ diskrétní v čase i amplitudě : digitální Sampled ^ Quantized souvislosti ... signály, resp. reprezentované veličiny, často v průběhu přenosu zprávy mění svoji formu Electronic Transducer Processors Transmitter Electronic Signal os Receiver Transducer Electromagnetic M E^ic > jeden a tentýž signál může u různých příjemců vyvolat různou reakci maximum informace nese přenášená zpráva tehdy, když příjemce předem neví, co bude obsahovat zprávu a informaci můžeme obdržet sledováním vybraných parametrů signálu signály využíváme zejména ke zjištění stavu různých systémů (živých i neživých) DSP digital signál processing digitalizace signálu (digital = číslicový) je převod analogového (spojitého) signálu (např. zvuk) do nespojité posloupnosti digitálních údajů, obvykle kódovaných v binární soustavě provádí analogově-digitální převodník (A/D nebo ADC) zahrnuje ale i další kroky - úprava úrovně vstupního signálu, filtrace nežádoucích frekvenčních složek, apod. opačný proces pak z digitální informace zpětně vytváří analogový signál - zde se uplatní digitálně-analogový převodník (D/A nebo DAC) £2 Analog signal processor • Operational amplifier • Differential amplifier • Instrumentation amplifier • Isolation amplifier • Line driver t • Multiplier/divider/mixer • Filter • Log amplifier • rms-dc converter • Programmable gain amplifier 1 [ ADC N bits Voltage reference Analog signal processor DAC bits Microprocessor or DSP Filtrace signálu ■ nejčastěji používaná operace v DSP, cílem je: - změna frekvenčního obsahu signálu např. odstraněním některých rušivých frekvencí - odstranění šumu v signálu - výběr pouze určitých frekvencí, které přenáší informaci ■ typy filtrů: - dolní propust (lowpass LPF) - odstraňuje vysoké frekvence ze signálu - horní propust (highpass HPF) - odstraňuje nízké frekvence ze signálu - pásmová propust (bandpass BPF) - propouští dál pouze frekvence z určitého frekvenčního pásma - pásmová zádrž (bandstop BSF) - zadržuje frekvence určitého pásma - notch filter odstraňuje specifickou frekvenci kombinovaný signál a jeho filtrace 8 ~i-/ v i n-r- J_i_I_W r_[_V^/ r_|_X J i J 0 10 20 30 40 50 60 70 80 90 100 tři periodické složky po spojení: 10 20 30 40 50 60 70 80 90 100 10 20 30 40 50 60 70 80 90 100 Time. ms 0 10 20 30 40 50 60 70 80 90 100 aplikace různých typů filtrů: OJ 80 Hz 50 Hz 110 Hz 210 Hz Inpui špital ÍL 0 "i—rn í -0.5 i O 20 44! M> m 100 Time, ittsec I 0.5 U •OJ I mghfNM filter tiutpul 150 Hz m _•)> 40 frf) 80 idO Time. ttmtc 80 HZ ttiimlpa^rilier«Hii,H.i150 HZ 80 HZ Bundrtopfiliwfluiriil 5q Hz 20 4C 60 SO 10C Time. msec 20 4(1 60 80 100 Time. msei linearity Zpracování signálů podle: - lineární (platí princip superpozice) - lze je matematicky poměrně snadno modelovat a analyzovat - nelineární - nelze je matematicky dobře charakterizovat a analyzovat, zřídka setrvačnosti systémy bez paměti - využívají pouze okamžité hodnoty vstupů systémy s pamětí - obsahují zpožďovací členy (paměťové registry) - nerekurzivní využívají pro výpočet výstupu jen vstupních hodnot (i zpožděných) - rekurzivní využívají pro výpočet výstupu jak vstupních hodnot, tak zpožděných výstupních hodnot počtu proměnných - jednorozměrné - pracují se signály, závisejícími pouze na jediné proměnné (čas) - vícerozměrné - pracují se signály, závisejícími na dvou nebo více proměnných proměnnosti realizovaného operátoru v čase - invariantní v čase (běžné typy zpracování) - proměnné v čase (adaptivní filtrace) typu realizace - číslicové - vzorky jsou reprezentovány čísli, zpravidla binárně kódovanými - diskrétní analogové - vzorky jsou reprezentovány analogovými veličinami, výpočet v čase je diskrétní ADC: ideální převodník ■ předpokládá se lineární chování - každý bit má stejnou váhu a reprezentuje stejnou změnu napětí q (kvantizace) či obecně signálu ■ příklad - 7-bitový bipolární převodník, x osa je měřený analogový signál, y osa generovaný výstupní kód: LINEAR BIPOLAR ADC NOISY ADC ■ bitová změna nastává ideálně při přírůstku (nebo poklesu) o g/2, ale v reálném případě vpravo jsou tyto oblasti vlivem náhodného šumu zdrojem nestabilit či nejistot v přechodových bodech Rozlišení a šum ADC rozlišení (resolution) je nejmenší detekovatelná změna analogového signálu - nominální hodnota vychází z kvantizačního kroku, ale v realitě to je samozřejmě často podstatně horší šum (noise) je kombinací různých vlivů, nemusí být nezbytně náhodný (white noise) - může být odvozen od špičkových (peak) nebo „průměrné" hodnoty RMS (viz dále) nebo jako procento z měřícího rozsahu - tím pádem se hodnoty mohou až 6x lišit - zdrojem šumu 50 Hz je elektrická síť - to, co nakonec měříme, je kombinací signálu a šumu - šum je „neužitečný" signál... poměr signál / šum S/N, resp. SNR IT4 ne RMS (rms, root mean square) ■ střední kvadratickou hodnota (kvadratický průměr) je statistická veličina představující druhou odmocninu aritmetického průměru druhých mocnin daných hodnot: RMS =\Jx2 = \llY,xi = n X\+x\-\-----h X 2 n i=l n - je vždy nezáporné a větší nebo roven aritmetickému průměru - umocnění hodnot na druhou - větší váha hodnot vzdálenějších od nuly; vzdáleně to připomíná výpočet váženého průměru - např. při výpočtu střední kvadratické odchylky - při výpočtu efektivní hodnoty střídavého napětí (nebo střídavého proudu) Waveform Variables and operators RMS DC y = A) An Sine wave y = Ai sin(27r/ŕ) Ai ^/2 Square wave _ f Ai frac(/ť) < 0.5 y~\ -Ai frac(/ť) > 0.5 Ai Triangle wave y=\2Aifv3,c(fť)-Ai\ Ai Vš Sawtooth wave y = 2Ai frac(/ŕ) — Ai Ai VŠ pozitivní peak, A2 neg. peak, střed je v 0 Sine Square Triangle Sawtooth další detaily A/D převodu kvantizační chyba - rozdíl mezi reálnou a převedenou hodnotou, dáno konečným počtem kvantizačních kroků v daném místě převodu, vyjadřuje se jako Qn šum - analogie zaokrouhlování reálného čísla na celé číslo original signal Liantized signal é ® ® ® ® quantization noise f é W ® é r Output Code 111 diferenciální nelinearita (DNL) - míra chyby u individuálních převodových kroků, dobrý ADC to má blízko g/2 hodnoty pokud to je někde větší, projeví se to jakoby scházejícím údajem (missing code) převodník přeskakočí mezi nesousedními výstupními údaji nemonotónnost - dvě vzdálené hodnoty poskytnou shodný údaj ® ' ® ® a ještě více komplikací 1 integrální nelinearita (INL) - rozdíl mezi ideálním a reálným převodem v daném místě, je větší než q efektivní počet bitů (Wef, ENOB) odpovídá degradaci maximálního rozlišení převodníku v reálných podmínkách měření Output Code 111 110 101 100 011 010 001 ooo DNL is < q/2 but INL>q J/01234 Input Signal - např. 24-bitový převodník poskytne pouze 20 reálných bitů, ostatní je šum... ■ „oversampling" - vzorkování signálu s frekvencí podstatně vyšší než Nyquistova frekvence = dvojnásobek frekvenčního rozsahu měřeného signálu (šířka pásma, bandwith je rozdíl mezi nejnižší a nejvyšší frekvenční složkou daného signálu, to první se často bere jako nula - stejnosměrná DC složka) - kombinování mnoha opakovaných měření obvykle poskytne mnohem lepší rozlišení - střídavý signál se značí AC (alternating component, DC je direct component) Rychlost vzorkování ■ vzorkovací frekvence (sampling rate), definuje počet vzorků za čas (obvykle za 1 s) načítaných ze spojitého analogového signálu při jeho přeměně na diskrétní data ■ Nyquistův teorém říká, že dokonalá rekonstrukce signálu ze zaznamenaných diskrétních dat je možná pouze tehdy, když byla vzorkovací frekvence větší než dvojnásobek maximální frekvence přítomné v signálu ■ při použití nižší vzorkovací frekvence se po převodu zpátky na analogový signál mohou v důsledku tzv. aliasingu („zfalšování") objevit ve výsledném signálu frekvence, které v tom původním nebyly - před ADC se zařazuje tzv. antialiasingový filtr, který má za úkol odfiltrovat vyšší frekvence - dolní propust _ ■ pomalé vzorkování měřené červené sinusoidy poskytne data, která odpovídají zdánlivé modré sinusoidě ■ jiný příklad - moiré v obrazech ■ omezení: Digitální zpracování - - dle zpracovávaného rozsahu kmitočtu - vhodné pouze pro nižší - frekvenční pásma - převodníky pro vyšší frekvence jsou obvykle drahé, použitelnost DSP je řádově do stovek MHZ - degradace signálu vlivem A/D převodu - cena zařízení ■ výhody: - pružnost - charakteristiky číslicového systému jsou dány konstantami / parametry, které lze snadno měnit (lze změnit sw) - časová stálost - vlastnost systému je daná konstantami a programem - pokud systém funguje, nemůže dojít ke změně charakteristik např. vlivem teploty popř. okolního prostředí - dokonale reprodukovatelné - časově neomezená paměť - možnost zpracovávat i pomalé signály, číslicové prvky jsou v tomto případě spolehlivější a jednodušší než objemné a nákladné analogové systémy - odpadají problémy vzájemného ovlivňování soustav - impedanční přizpůsobení, vliv elmag. pole,... - možnost spolehlivé realizace komplikovaných systémů - slučitelnost s informačními systémy (data do cloudu, na server,...) - možnost multiplexního provozu - u výkonných systémů lze zároveň zpracovávat více než jeden signál Měření s Arduinem 5V ■ nejjednodušší je využít vnitřní ADC - je možné přepínat několik analogových vstupů - AO, A1,... ■ pokud chceme jednoduše generovat proměnlivý signál, stačí použít potenciometr připojený mezi napájecí napětí (u XIAO je to 3.3 V) a zem GND - ve spojení s LED je tak možné třeba regulovat dobu jejího svitu: const int voltsInPin = A3; const int ledPin =9; void setup() { pinMode(ledPin, OUTPUT); } void loop() { int rawReading = analogRead(voltsInPin); int period = map(rawReading, 0, 1023, 100, 500); digitalWrite(ledPin, HIGH); delay(period); digitalWrite(ledPin, LOW); delay(period); ■ drobnou úpravou sw lze void íoopo { mOdifikOVat intenZitU SVitU: int rawReadin°; = analogRead(voltsInPin) ; int brightness = rawReading / 4; - pOUŽití PWM modulace analogWrite(ledPin, brightness); - jen dig. piny se ~ značkou >_ Arduino GND Resistance 1 1 1 1 1 1 1 1 1 1 1 1 -I r — Sensory s proměnným odporem 1 sledování napětí regulovaného potenciometrem je vlastně základem pro měření sensorů, které se chovají jako odpory závisející na nějaké fyzikálni veličine 1 využije se princip odporového děliče napětí a snímá se změna napětí odpovídající změně světla - fotoodpor - u fotorezistorů se často udává nejčastěji odpor při osvětlení 10 luxů a teplotě 25 °C (označuje se R10|X) - bývá to kolem 10 kQ - zapojíme ho tedy třeba do serie s normálním 10 kQ odporem - závislost na intenzitě světla je bohužel nelineární, při různých regulacích typu světlo / tma to příliš nevadí 1 teploty - termistor - dvojího typu - běžnější fungují tak, že s rostoucí teplotou jejich odpor klesá (značí se NTC) + pro regulaci stačí, pro měření teploty nepohodlné - druhé (PTC) svůj odpor s rostoucí teplotou zvyšují (např. u PťlOO skoro lineárně) Temperature Teplota - LM35 ■ sensor LM35 je mnohem komplikovanější, díky tomu ale převádí teplotu na napětí lineárně - při 0 °C je na výstupu 0 V, pri 100 °C pak 1 V ■ teplotu určíme pomocí vztahu (příkazu): temp = (5.0 * analogRead(tempPin) * 100.0) / 1024; Analog Out GND - aby se využil lépe rozsah ADC, lze změnit jeho referenční napětí na interních 1.1 V - pro srovnání jsou níže uvedeny teplotní měření provedená dalšími (digitálními) sensory; některé současně měří i vlhkost, případně ještě tlak (BME280) 29 28 BME280 DS18B20-1 BMP180 E íe 25 24 II DHT22 DS18B20-2 m 11 ■ - III_____________I DHT11 Tir LM35 I in -DHT11 —DHT22 -D518E20-1 -DS13B20-2 -BME280 —BMP180 LM35 Přesnější ADC? modul XIAO a další řady desek na bázi SAMD procesorů má lepší vnitřní ADC s rozlišením 12 bitů pokud to nestačí, je třeba externí přídavný ADC modul nebo čip, např. ADS1115 - nabízí rozlišení 16 bit, 4-kanálové měření (4x single-ended - měří se proti GND, resp. 2 diferenciál vstupy), PGA k předzesílení vstupního napětí, I2C komunikaci - protože je to hodně malý obvod, je rozumné si ho koupit připájený na destičce jako modul, rychlost je až 860 vzorků/s (SPS, samples persecond), připojovací piny mají standardní vzdálenost 2.54 mm (0.1") blokové funkční schéma: - složitější struktura z několika submodulů VDD —O— ADS1115 MUX AIN1 6t<> Gain = 2/3,1, 2, 4. 8. oř 16 Voltage Reference Comparator 16-Bit AI ADC V ALERT/RDY re Interface ADDR SCL 5 SDA Oscillator GND 7706 k propojení s Arduino modulem stačí 4 vodiče - napájecí napětí, GND - komunikace I2C - SDA, SCL - zde deska Arduino Nano, ta má SDA (data) vyvedeno na pin A4, SCL (clock) pak na A5, často jsou SDA a SCL vyvedeny na samostatné piny, a nebo projdeme dokumentaci ke komunikaci potřebujeme nainstalovat příslušnou knihovnu - menu Sketch - Include Library - Manage Libraries a hledat ADS, vybrat lze třeba Adafruit ADS1X15, a pak z Examples - vybrat třeba demo single-ended, upraveno #include // single-ended, signal mezi GND a AINO Adafrui t_ADS1115 ads; void setup(void) { Serial.begin(9600); Serial.println("Hello!"); Serial.println("Getting single-ended readings from AINO"); Serial.println("ADC Range: +/- 6.144V (1 bit = 0.1875mV/ADSlll5)"); if (!ads.begin()) { Serial.println("Failed to initialize ADS."); while (1); } } void loop(void) { intl6_t adcO; float voltsO; adcO = ads.readADC_SingleEnded(0); voltsO = ads.computeVolts(adcO); Serial.print("AINO: "); Serial.print(adcO); Serial.print(" "); Serial.print(voltsO); Serial.println("V"); delay(1000); } Lepší rozlišení? MCP3421 (Microchip) - 18-bitový sigma-delta převodník, I2C komunikace - interní reference 2.048V ± 0.05%, drift 15 ppm/°C - na vstupu PGA - zesílení 1, 2, 4, 8x - diferenciální vstup, rozsah ±2.048V / PGA - programovatelné rozlišení 12,14,16,18 bitů - rychlost vzorkování 240, 60, 15, 3.75 vzorků/s - když si pořídíme modul, nemusíme pájet SMD ADS1232(TI) - 24-bitový sigma-delta převodník, I2C komunikace - PGA: 1, 2, 64, 128x - pro váhy, odporové sensory (Wheatst. Můstek) ADS1256(TI) - 24-bit, 8 SE / 4 DIF vstupy, SPI komunikace LTC2499 (Analog Devices) - 24-bit, 16/8 kan., I2C - „shield" formát AD7124 (Analog Devices) Analogový výstup ■ DAC („digital to analog converter") je někdy dostupný na lepších či novějších arduino a alternativních modulech (i na Xiao) ■ funkce AnalogWrite a PWM („pulse width modulation") ■ po průchodu filtrem získáme proměnlivé napětí: 0% Duty Cycle - analogWrite(O) 5v Ov 25% Duty Cycle - analog Write(64) 5 v Ov One Time I Period I 50% Duty Cycle - analogWrite(127) rurLTinru 75% Duty Cycle - analogWrite(191) irunriru Vout *—o Capacitor Charges to ™ Average Value of PWM Op Amp Raises Output so 3 that value at pin 2 equals the value at pin 3. -O 100% Duty Cycle - analo gWrir_e(255) Lze použít externí DAC ■ třeba MCP4822 (Microchip) ■ 12 bit, 2-kanálový, SPI Střídavé napětí? UNO 5V GND 1 1 5 !C.' 10 2 MOS1 MISO SCK w* 11 4 W 12 Mr1 13 3 AD9833 - programovatelný generátor signálu DDS pro sinusové, trojúhelníkové a čtvercové vlny, SPI rozhraní - výstupní frekvenční rozsah 0 MHz až 12,5 MHz - 28-bitové rozlišení, tj. 0,1 Hz při 25 MHz hodinách - lepší modul výstup generuje přes OZ a digitální potenciometr- pohodlné nastavení velikosti výstupní amplitudy