Ukládání dat

Micro:bit připojený k počítači dokáže >>> posílat data po sériovém portu. Verze V2 umí navíc ukládat naměřená data do souboru MY_DATA.htm, který se zobrazí jako webová stránka. Z ní je možné data zobrazit v grafu, kopírovat nebo stáhnout ve formátu csv (hodnoty oddělené čárkou vhodné pro zobrazení v tabulce). Stránka využívá pro tyto funkce styl a javascript načítaný přes internet, proto bez připojení k internetu vypadá jednodušeji🔗.



Měříme-li data na micro:bitu připojeném k počítači, před jejich zobrazením musíme micro:bit odpojit a znovu připojit, jinak se neaktualizují. Soubor MY_DATA.htm můžeme zkopírovat do počítače a dále využívat. 

Pozor, při každém nahrání programu do micro:bitu se zaznamenaná data odstraní a to tzv. "rychle" – zneplatní se, nebudou vidět ve stránce, ale budou stále uložena na micro:bitu. Pro úplné vymazání musíme použít příkaz🔗 v našem programu. 

Logování dat do souboru v MakeCode (pouze V2)

Nejprve přidáme rozšíření datalogger, abychom mohli používat příkazy například pro nastavení názvu sloupců, uložení dat do logu nebo smazání logu. Pomocí události můžeme ošetřit zaplnění logu, jinak se zobrazí chyba 928 a logování se zastaví.

V uvedeném kódu stiskem A měníme hodnotu stavové proměnné logovat a tím zapínáme/vypínáme sběr dat. 


Logování dat do souboru v Pythonu (pouze V2)

Po importu knihovny log můžeme používat například příkazy log.set_labels pro nastavení názvu sloupců a log.add pro uložení dat.

Vzorový program (podle Hanky Šandové) po stisku tlačítka A začne ukládat data z různých senzorů. Na začátku programu je nastaven počet ukládaných vzorků a pauza mezi vzorky. 

from microbit import *
import log
pocetVzorku = 100
pauza = 200
cisloVzorku = 0

log.set_labels('vzorek','teplota', 'hluk', 'svetlo', 'magSila','smer','aX','aY','aZ','dotyk','tlacitkoA', 'tlacitkoB')

#start programu
display.show(Image.DIAMOND_SMALL)

#definice procedury, která přidá řádek s daty do tabulky
def zapis_data():
    log.add({
      'vzorek': cisloVzorku,
      'teplota': temperature(),
      'hluk': microphone.sound_level(),
      'svetlo': display.read_light_level(),
      'magSila': compass.get_field_strength(),
      'smer': compass.heading(),  
      'aX': accelerometer.get_x(),
      'aY': accelerometer.get_y(),
      'aZ': accelerometer.get_z(),
      'dotyk': pin_logo.is_touched(),  
      'tlacitkoA': button_a.is_pressed(),
      'tlacitkoB': button_b.is_pressed()
    })

#hlavní program čeká na stisk tlačítka A
while True:
    if button_a.was_pressed():
        while cisloVzorku < pocetVzorku:
            cisloVzorku = cisloVzorku + 1
            zapis_data()
            display.set_pixel(2,2,9)
            sleep(pauza//2)
            display.set_pixel(2,2,0)
            sleep(pauza//2)        
        display.show(Image.CHESSBOARD)
    else:
        sleep(400)
    
#data najdu na microbitu, je třeba jej odpojit a znovu připojit k počítači a otevřít soubor MY_DATA.htm
    
Po nasbírání dat je potřeba zamyslet se nad jejich interpretací. Jaké hodnoty microbit vrací? Jaká je minimální hodnota a jaká maximální? Jsou tyto hodnoty v nějakých jednotkách? Můžeme jim dát nějaký význam? Odpovědi mohou být pro různé senzory různé. Tip pro práci ve skupině: každý (dvojice, skupinka) prozkoumá jeden senzor a zjištěné informace přidá do sdílené prezentace.

Zdroje





Populární příspěvky z tohoto blogu

Jak začít?

Co je BBC micro:bit?

Úvod ve škole i v kroužku

Začínáme v MakeCode

Micro:bit na prvním stupni

V čem programovat micro:bit?

Projekty s PINy

Příklady pro začátečníky

Základ programování a proč pracovní listy

Semafor a RGB dioda