Installfest 2022

EMBO - EMBedded Oscilloscope (Qt, STM32)
11.06, 10:00–10:55 (Europe/Prague), Track II

Práce s mikrořadiči při vývoji aplikací embedded systémů často vyžaduje také různé laboratorní měřicí přístroje. Typicky se může jednat o voltmetr, osciloskop, logický analyzátor, impulsní generátor. Nástupem současných mikrořadičů s jádrem ARM Cortex M a růstem počtu a výkonu jejich periferií, lze některé takové přístroje ve velmi zjednodušené formě realizovat jen samostatným mikrořadičem čistě programově pouze s využitím komplexních periferií na čipu.
Takové řešení se na katedře měření ČVUT – FEL rozvíjí již více let a vznikla tak řada přístrojů, které označujeme jako SDI (Software Defined Instrument).
Podstatou SDI je využití výkonného mikrořadiče, jenž je prostřednictvím rozhraní USB napojen na PC, které slouží pro ovládání přístroje, zobrazení hodnot a zobrazení průběhů signálu i pro napájení celého přístroje a experimentu. Každý náš SDI primárně obsahuje funkce osciloskopu a impulsního generátoru, které jsou doplněny dalšími přístrojovými funkcemi v závislosti na vybavení daného mikrořadiče periferiemi.
V průběhu minulých let v laboratoři videometrie na kat. měření vznikla řada SDI, které jsou využívány ve výuce jako pomoc pro domácí práci studentů při řešení úloh a samostatných projektů. V době pandemie laboratorní výuka přešla na jinou formu, avšak v některých předmětech íky využití SDI byla s téměř stejnou praktickou náplní, jaká byla i při normální výuce. Jediný rozdíl spočíval v tom, že každý student využitím SDI měl svou „Home lab“- tedy domácí laboratoř, pomocí níž řešil jednotlivé úlohy.

Pro představení principu SDI bude Ing. Jakub Pařez prezentovat řešení svého SDI s názvem EMBO , který vznikl v rámci jeho diplomové práce v r.2021. https://embedded.fel.cvut.cz/platformy/embo V příspěvku bude prezentován základní přístup k řešení SDI a jak se má postupovat při návrhu - návrh komunikačního protokolu, řešení PC aplikace na základě platformy Qt C++ tak, aby ji bylo možno provozovat pod Linuxem, Windows nebo Mac OS a tvorba modulárního firmware pro mikrořadiče.
Bude prezentován princip řešení přístrojových funkcí SDI v mikrořadičích řady STM32 se sofistikovaným využitím některých periferií (např. využití bloku analog Watch dog pro realizaci funkce trigger osciloskopu v reálném čas bez potřeby výpočetního výkonu procesoru), využití převodníků AD a DAC ve spolupráci s řadičem DMA. Při přednášce budou krátce prezentovány funkce EMBO jako příkladu řešení SDI.

Na workshopu budou zájemcům předvedeny všechny funkce realizovaného SDI – EMBO a vysvětleny možnosti jeho implementace do odstupných modulů a komponent. Zájemci o SDI, kteří vlastní některý z modulů- např. STM32F103 Blue Pill nebo Black Pill nebo Nucleo STM32F303RE, si pak mohou realizovat svůj SDI osciloskop EMBO pouze nahráním příslušného firmware do modulu bez potřeby dalšího HW.

Na závěr prezentace budou zmíněny další vytvořené SDI, které jsou k dispozici www na stránkách
https://embedded.fel.cvut.cz/SDI případně též https://embedded.fel.cvut.cz/platformy.
Jako zajímavost bude zmíněn výsledek snahy o minimalizaci rozměrů, ceny i náročnosti jako realizace zatím posledního, nejmenšího, nejlevnějšího, avšak ne nejméně výkonného SDI (osciloskop, voltmetr a impulsní generátor) s 32- bitovým mikrořadičem STM32G030J6M6 v pouzdře pouze s 8 mi vývody. Ten si zájemci mohou také sami sestavit podle informací na https://embedded.fel.cvut.cz/SDI/STM32G030


https://embedded.fel.cvut.cz/platformy/embo
https://embo.jakubparez.com/
https://github.com/parezj/EMBO/


Obtížnost přednášky

Mírně pokročilí

Jakub Pařez nastoupil na PhD studium na ČVUT FEL v roce 2021. Diplomovou práci "Softwarově definovaný osciloskop s mikrořadičem STM32F103" obhájil 06/2021, pod vedoucím doc. Ing. Jan Fischer, CSc na katedře měření. Rámcovým tématem jeho disertační práce je nyní "Modelování šumu fluxgate senzorů na úrovni velikosti domén". Kromě vědeckého výzkumu rád programuje v jazycích C/C++/C# a Python, nemá rád Javascript a PHP, a jako desktop OS používá střídavě Windows, macOS a Xubuntu.