KURZ: Zaznamenávání a vizualizace hodnot
- Podrobnosti
- Mgr. Jan Baťko
- Aktualizováno: 30.03.2014
- Zobrazení: 14879
Obě programovací prostředí nabízejí kromě možnosti vytváření programového kódu i mnoho dalších funkcí. Jednou z nich je vizuální zobrazení dat. Ověření, zda senzor pracuje správně a jaké hodnoty vrací musíme pro ověření určitým způsobem interpretovat a vyjadřovat. Často se tato činnost v programu provádí pomocí výpisu na displej řídící jednotky. My si ovšem můžeme určité hodnoty a konfiguraci zjistit přímo v programovacích prostředích, díky jejich vestavěným funkcím.
POPIS V PROGRAMOVACÍM PROSTŘEDÍ
NXT-G
Vizualizace hodnot
Programovací prostředí NXT-G obsahuje vestavěnou utilitu, která umožňuje zaznamenávat hodnoty a vyjadřovat jejich průběh do grafu. Záznam hodnot v programu se ovládá pomocí dvou bloků, které si nejprve představíme a popíšeme.
Rozcestník
Spuštění záznamu
Programový blok Start Datalog, který slouží ke spuštění záznamu hodnot, je umístěn v paletě Complete > Advanced.
Popis bloku
Blok Start Datalog obsahuje tři konektory sloužící k propojení s dalšími bloky:
Duration - vyjadřuje dobu trvání analýzy dat.
Rate - konektor vyjadřující počet snímků za sekundu, který má být zaznamenáván.
Logname - název souboru, do kterého jsou ukládány výsledky analýzy.
Parametry bloku
Name: pole sloužící k zadání názvu záznamu dat.
Duration: volba pro nastavení doby trvání záznamu.
- Seconds - ve vteřinách,
- Minutes - v minutách,
- Unlimited - nekonečný záznam,
- Single Measurement - pouze jeden záznam.
Rate: možnost označující počet snímků za vteřinu (Samples per Second) nebo frekvenci pořizování snímků (Seconds between Samples).
Wait: čekání na dokončení prováděné činnosti.
V pravé části se nachází sekce, která slouží k definování vstupního či výstupního zařízení, které je připojeno k řídící jednotce a jehož hodnoty budeme analyzovat. K definování je nutné vybrat typ daného senzoru a port, ke kterému je připojen.
Zastavení záznamu
K zastavení záznamu dat slouží programový blok Stop Datalog, který je umístěn v paletě Complete > Advanced.
Popis bloku
Programový blok Stop Datalog obsahuje pouze jeden konektor umožňující propojení s dalšími bloky:
Logname - název souboru, do kterého jsou ukládány výsledky analýzy.
Parametry bloku
Name: pole sloužící k výběru názvu bloku pro spuštění analýzy, která má být ukončena. Analýz může běžet v programu více a každá může být zastavována na jiném místě.
Použití v programovacím prostředí
Vestavěnou funkci pro vizualizaci hodnot můžeme v programovacím prostředí NXT-G spustit dvěma způsoby. Prvním je manuální spuštění pomocí tlačítka umístěného v horní části prostředí. Přesné umístění můžete vidě na obrázku.
Druhou možností je použití výše popsaných bloků pro záznam hodnot a následné spuštění programu. Pokud je řídící jednotka připojena k počítači pomocí USB, otevře se následně okno, ve kterém jsou prezentována data.
Pro demonstraci použití jsme k řídící kostce připojili světelný senzor (port 1) a zvukový senzor (port 2). Budeme chtít zaznamenávat hodnoty jimi zjištěné do grafu po dobu 10 vteřin. Použijeme tedy blok Start Datalog. Nastavíme dobu trvání na 10 sekund a zaznamenávání například na 5 snímků za vteřinu. Na příslušných portech zadáme typy jednotlivých senzorů. Program následně nahrajeme do řídící jednotky a spustíme pomocí tlačítka Download and run (nahrát a spustit) uprostřed ovládacího panelu v pravé spodní části prostředí.
Po spuštění programu se otevře nové okno, které slouží k zobrazení snímaných hodnot a jejich vykreslení do grafu. Jednotlivé části okna můžete vidět barevně odlišeny. V levé části je červeně zvýrazněna svislá osa hodnot. Můžeme zde vidět hned dvě, z nichž jedna patří světelnému senzoru (červená osa) a druhá zvukovému (žlutá osa).
Největší část okna zabírá graf, zvýrazněný modře. Po spuštění programu se do něj zaznamenávané hodnoty začnou vykreslovat s frekvencí, kterou jsme v nastavení bloku Start Datalog zadali. V našem případě se do grafu zaznamenávaly dvě křivky najednou, pro každý senzor jedna, které jsou stejně barevně odlišeny jako svislé osy hodnot.
Třetí částí okna je tabulka zaznamenaných hodnot zvýrazněná zeleně. Do ní se zapisují naměřené hodnoty frekvencí, kterou jsme zadali v úvodu (5x za vteřinu). Opět zde nalezneme barevně odlišeny oba dva připojené senzory.
RobotC
Zaznamenávání a vizualizace hodnot
Rozcestník
Zjišťování a zobrazení hodnot
V programovacím prostředí RobotC můžeme zjišťovat hodnoty pomocí funkce, kterou nalezneme v záložce Robot > NXT Brick pod volbou Poll NXT Brick.
Následně se otevře nové okno, ve kterém můžeme vidět tři menší podokna, ve kterých se zobrazují různá data. Upozorňujeme na to, že okno se otevře pouze v případě, že je řídící jednotka NXT připojena k počítači pomocí kabelu USB.
Sekce motor
První a zároveň největší sekce, se zaměřuje na motory. Jsou zde zobrazeny všechny tři motory, které je možné k řídící jednotce připojit. Jednotlivé hodnoty, které zde zjistíme, jsou následující:
Motor: sekce zobrazující označení motoru.
Speed: vyjádření aktuální rychlosti otáčení motoru v procentech.
PID: udává, zda je aktivována regulace rychlosti otáčení motoru (pro zajištění přesného požadového otáčení na různých površích).
Mode: informace o nastavení motoru - zda je připojen (On), odpojen (Off), způsob napájení motoru (Brake - defaultní mód, Float - pokročilejší nastavení).
Regulate: způsob regulace otáček motoru (None - žádná, Encoder regulated - ovlivněna pomocí čítače otáček atd.).
Run State: vyjádření současného stavu motoru (Running - v chodu, Idle - nečinný).
Tach (Encoder) User: hodnota otáček načítaná pomocí čítače otáček.
Tach (Encoder) Move: hodnota otáček, kterou uživatel zadal k vykonání.
Tach (Encoder) Limit: hodnota, na které bude zastaveno otáčení.
Tach (Encoder) Total: kompletně nasčítané otáčky motoru od spuštění programu.
Sekce senzor
Druhá sekce umístěná pod oknem Motor z pohledu uživatele vlevo se nazývá Sensor. O připojených senzorech zde získáme tyto informace:
Sensor: vstupní port, ke kterému je senzor připojen.
Type: typ senzoru, ze kterého jsou informace získávány.
Mode: způsob vyjádření navrácených dat ze senzoru (RAW, procenta, číslo atd.).
Value: hodnota zjištěná senzorem v normalizovaném tvaru.
Raw: hodnota zjišťěná senzorem ve formátu RAW.
A-to-D: řídící jednotkou převedená hodnota z analogové podoby do digitální.
Sekce proměnná
Sync Type: informace o tom, zda je nastavena sychronizace motorů (AB, AC, BA atd.).
Sync Turn: nastavený synchronizační poměr.
Battery: aktuální napětí baterie řídící jednotky.
Sleep Time: nastavení doby, po které systém "uspí".
Volume: nastavená úroveň hlasitosti zvukového výstupu
Pomocí tlačítka Refresh Once můžeme načítané hodnoty vynulovat a začít znovu od začátku. Tlačítko Poll Continuos/Stop Polling spouští nebo zastavuje simulaci.
Po kliknutí na tlačítko More se rozbalí spodní část okna, která nabízí další funkce pro práci s hodnotami ze senzorů či motorů.
nastavení hodnot NXT (SET VALUES INTO NXT)
V této sekci můžeme ovlivňovat motory a senzory připojené k řídící jednotce nastavováním jejich typů nebo hodnot. Konkrétně se jedná o tyto možnosti:
Motory (Motors)
Speed: možnost manuálního nastavení otáček motoru (v rozmezí od -100 do +100). Hodnota se okamžitě zobrazí v horní části okna v kolonce Speed (rychlost).
Target Rot: nastavení cílových otáček čítači, po jejichž provedení se motor zastaví. Hodnota se okamžitě přičte do kolonky Tach (Encoder) Move v horní části okna.
Mode: změna módu, v kterém motor pracuje (Brake, Float, On, Off).
Reg: možnost vypnutí regulace otáček motoru.
Hodnoty regulace otáček motoru (PID Factors)
P: nastavení hodnoty P (proporcionální - rozdíl mezi aktuálními a požadovanými rychlostmi) zvolenému motoru.
I: nastavení hodnoty I (integrální) zvoleného motoru.
D: nastavení hodnoty D (derivační) zvoleného motoru.
Factor Type: pole, ve kterém volíme, zda chceme regulaci otáček řídit pomocí rychlosti (Speed) nebo čítače otáček (Encoder).
Sekce pro řízení senzorů (Sensor Section)
Type: možnost pro manuální změnu typu používaného senzoru připojeného k vstupnímu portu.
Mode: možnost manuální změny módu, ve kterém připojený senzor pracuje.
Nulování čítače otáček (Encoder Reset)
User Reset: nuluje uživatelem zadané hodnoty čítače otáček motoru.
Tacho Reset: nuluje systémový čítač otáček (jedná se o hodnoty, které uživatel nemůže zadávat).
Reset Devices: tlačítko sloužící k navrácení motorů a senzorů do původního nastavení.
Programové zaznamenávání hodnot
Kromě funkce Poll NXT Brick je programovacím prostředí RobotC možné zaznamenávat data také programově. Představíme si proto také několik příkazů, které k tomuto účelu slouží.
- AddToDatalog(const long data) - zapíše hodnotu ukládanou do zvolené proměnné do souboru.
- nDatalogSize - určuje velikost loggovacího souboru.
- nMaxDataFiles - určuje maximální počet loggovacích souborů, které bude možné uložit do paměti řídící jednotky.
- nMaxDataFileSize - určuje maximální velikost logovacího souboru v bajtech.
- SaveNxtDatalog() - uloží zaznamenaná data z paměti RAM do paměti řídící jednotky ve formátu .rdt.