Operácie

Senzory na mikropočítači micro:bit

Z SensorWiki

Verzia z 10:47, 19. november 2017, ktorú vytvoril Balogh (diskusia | príspevky) (Akcelerometer)

Na tomto cvičení sa oboznámite so všetkými senzormi, ktoré sú dostupné na mikropočítači micro:bit.

 
 
 
 


Snímač tlaku

Výstup:
číslo -- tlak na tlačidlo - 0 (nestlačené) a 1 (silný tlak, stlačené).

Aj keď sa to na prvý pohľad nezdá, obyčajné tlačidlo je tiež senzorom. Môže indikovať dosiahnutie nejakej hraničnej polohy, prípadne naozaj aj tlak cez nejaký prevodový mechanizmus. Žiaľ, má len dva stavy - 0 a 1 a teda nie veľkú presnosť.


SenzorTlaku01.png

Pozn.: Nemôžeme priamo zobraziť stav tlačidla, pretože "premenná" button A is pressed je boolovského typu, teda má len hodnoty true a false, pričom funkcia show number potrebuje ako argument číslo. Preto je v programe jednoduchý test if-then-else, ktorým sa pridadí do premennej potrebné číslo.  
 
 
 



Snímač teploty

Výstup:
číslo -- teplota od -5 po +50 (nekalibrovaný odhad).

Mikropočítač micro:bit vlastne nemá špecializovaný snímač teploty okolia. Hodnota, ktorú zobrazuje nasledovný program je odvodená z interného snímača teploty, ktorý meria teplotu jadra procesora. Keďže procesor nie je našimi programami veľmi zaťažený a je to relatívne výkonný ARM procesor, pri činnosti sa veľmi neohrieva a preto je keho teplota celkom dobrou aproximáciou teploty okolia. Snímač teploty má vysoké rozlíšenie (t.j. je schopný detekovať aj zmeny o desatiny stupňa), ale nie je kalibrovaný, preto môže detekovať trebárs 20 stupňov hoci teplota je v skutočnosti len 17. Napriek tomu je však dostatočne citlivý a reaguje aj na malé zmeny teploty.

SenzorTeploty01.png

Úloha 1:
Nasledovný program využíva snímač teploty na riadenie teploty v miestnosti. Predpokladajme, že samotný ohrievač sa spína úrovňou log. 1 na výstupe P0. Ak je na tomto výstupe log. 0, ohrev je vypnutý. Doplňte program tak, aby správne reguloval teplotu.

SenzorTeploty02.png

 
 
 
 

Snímač magnetického poľa

Výstup:
číslo -- smer od 0 po 359.


Ako snímač intenzity magnetického poľa je použitý špeciálny čip MAG3110. Na doštičke sa nachádza v ľavej zadnej časti.

Microbit-back.png

Pred použitím senzora je potrebné vykonať jeho kalibráciu, vtedy sa na displeji zobrazí správa "Draw a circle!" Doštičkou treba opísať kruh a po ukončení kalibrácie sa spustí aplikačný program.

Hodnota nameranej veľkosti magnetického poľa je najprv prepočítaná do vodorovnej roviny a potom je výsledná hodnota v stupňoch z intervalu 0 a 359 prístupná cez "premennú" compass heading.

Magnetometer01.png


MAG3110: Freescale High Accuracy, 3-Axis Magnetometer

Ako snímač intenzity magnetického poľa je použitý špeciálny čip MAG3110. Je to digitálny trojosový magnetický snímač s nízkou spotrebou a širokým dynamickým rozsahom.

Snímač meria jednotlivé zložky (x-, y- a z-) lokálneho magnetického poľa, ktoré je tvorené predovšetkým magnetickým poľom zeme a zároveň súčtom vplyvov od všetkých komponentov na doske plošného spoja a v jeho okolí. V spojení s akcelerometrom (informácia o natočení a polohe) poskytuje informáciu o natočení voči zemskej osi pričom nie je nevyhnutné udržiavať ho vo vodorovnej polohe ako bežný kompas. Meranie vo všetkých troch osiach umožňuje kompenzovať náklon senzora. Samozrejme, že pri meraní nesmú byť v okolí iné silné zdroje magnetického poľa. K mikroprocesoru na doske je pripojený cez komunikačné rozhranie I2C a je schopný merať magnetické polia do hodnoty 10 Gauss s opakovacou frekvenciou 80 Hz.
(viac info...)


Úloha 2:
Upravte program tak, aby fungoval ako skutočný kompas a zobrazoval šipku. Stačí ak si pripravíte 4 rozličné smery a budete uvažovať, že napr. východ je v intervale 45 až 135 stupňov.


 
 
 
 

Snímač intenzity svetla

Výstup:
číslo -- intenzita osvetlenia od 0 (tma) po 255 (silné svetlo).

SensorLigh01.png


Funkcia:
Mikropočítač micro:bit nemá žiaden špeciálny senzor na snímanie intenzity osvetlenia. Ako je možné, že teda svetlo meriame? Používa na to LED diódy maticového displeja v reverznom zapojení, kedy využívame náboj na P-N priechode v závernom smere. Jeho množstvo je ovplyvnené dopadajúcim svetlom a množstvo náboja potom vieme odmerať nepriamo ako čas potrebný na vybitie parazitného kondenzátora na priechodne. Táto "finta" sa používa už dlho. LED diódu pri tom používame oboma spôsobmi - najprv výstup mikroprocesora privedie napätie na LED, ktorá sa rozsvieti. Potom mikrokontrolér zmení smer na vstupný a meria čas, kým napätie na prechode LED diódy nekleesne pod referenčnú hodnotu. Tento čas je zhruba úmerný množstvu svetla dopadajúcemu na PN prechod.

Pre záujemcov o podrobnejšie vysvetlenie:


Úloha 3:
Pokúste sa naprogramovať počítadlo ľudí vchádzajúcich do miestnosti (alebo áut na parkovisko). Senzor osvetlite napríklad mobilom a prejdite popred neho napríklad rukou. Zanamenajte si intenzitu pri osvetelnom a zatienenom senzore určite si rozhodovaciu úroveň, pri ktorej započítate jeden prechod a spočítajte počet takýchto prechodov.

 
 
 
 
 

Akcelerometer

Výstup:
Číslo - zrýchlenie vo zvolenej osi (x-, y- alebo z-) v mg v intervale +/-1023. Zrýchlenie 1g zodpovedá zemskej gravitácii. Ak je doštička položená vodorovne displejom nahor, tak x=0, y=0 and z=-1023.

Okrem toho máme možnosť softvérovo rozpoznávať nasledovné pohyby (gestá): up, down, left, right, face up, face down, freefall, 3g, 6g, 8g, shake.

SensorAccelerometer01.png

The accelerometer is a separate chip that provides 3-axis sensing. It also includes some on board gesture detection (such as fall detection) in hardware, and additional gesture sensing (e.g. logo-up, logo-down, shake) via software algorithms. It is connected to the application processor via the I2C bus. item details Model Freescale MMA8653FC Features 3 axis, 2/4/8g ranges Resolution 10 bits (0..1023) Max output data rate 800Hz On board gestures ‘freefall’ Other gestures Other gestures are implemented by software algorithms in the runtime.

MMA8653FC: ±2g/±4g/±8g, Low g, 10-Bit Digital Accelerometer The Freescale MMA8653FC 10-bit accelerometer has industry leading performance in a small DFN package. Packed with embedded functions that include:

   Flexible user-programmable options and two configurable interrupt pins
   Overall power savings through inertial wake-up interrupt signals that monitor events and remain in a low-power mode during periods of inactivity

Features

   Low-profile 2 x 2 x 1.0 mm DFN package
   High sensitivity: 1 mg per LSB
   Low noise: 150 micro g per root Hertz (independent of resolution)G25383_MMA8653_BD
   Low-power mode: 7 micro amps
   Interrupt and IIC interface supply: 1.62 to 3.6 V
   Supply voltage: 1.95 to 3.6 V
   Output data rate: 1.5 to 800 Hz


More information...


Stĺpcový graf

V tejto časti si ukážeme, ako vie micro:bit jednoduchým spôsobom zobraziť hodnotu premennej alebo meranej veličiny na displeji vo forme stĺpcového grafu. Jeho výška zodpovedá hodnote veličiny, pričom rozsah je od nula po maximálnu hodnotu, ktorú zadávame do progamového bloku. Zároveň sa v simulátore daná veličina zakresluje aj do časového diagramu.

PlotBarGraf.png


 
 
 
 
 

Zoznam úloh

Úloha 1:
Nasledovný program využíva snímač teploty na riadenie teploty v miestnosti. Predpokladajme, že samotný ohrievač sa spína úrovňou log. 1 na výstupe P0. Ak je na tomto výstupe log. 0, ohrev je vypnutý. Doplňte program tak, aby správne reguloval teplotu.

Úloha 2:
Upravte program tak, aby fungoval ako skutočný kompas a zobrazoval šipku. Stačí ak si pripravíte 4 rozličné smery a budete uvažovať, že napr. východ je v intervale 45 až 135 stupňov.

Úloha 3:
Pokúste sa naprogramovať počítadlo ľudí vchádzajúcich do miestnosti (alebo áut na parkovisko). Senzor osvetlite napríklad mobilom a prejdite popred neho napríklad rukou. Zanamenajte si intenzitu pri osvetelnom a zatienenom senzore určite si rozhodovaciu úroveň, pri ktorej započítate jeden prechod a spočítajte počet takýchto prechodov.