====== All projects ====== ===== Current projects ===== * **Platební terminál pro bezhotovostní platby přes nezávislý platební systém (Payment terminal for non-cash payments via an independent payment system)** (DP – Čtvrtečka Karel) * Prozkoumejte existující řešení zadané problematiky. * Analyzujte možné způsoby realizace terminálu. * Navrhněte vlastní řešení terminálu a vyberte pro něj vhodnou hw platformu. * Zařízení navrhněte tak, aby bylo odolné vůčí zneužití cizí osobou. * HW platforma bude podporovat použití OS Linux. * Řešení bude splňovat tyto požadavky: - Zařízení bude přenosné a napájené z baterie. - Přehledný grafický displej. - Ovládání terminálu bude možné s pomocí tlačítek. - Čtení RFID karet Mifare. - Bezdrátová komunikace se serverem přes Wifi. - Komunikace se serverem přes REST API. - Monitorování systému s nástroji Prometheus. - Podpora OTA update. * Navržené zařízení zrealizujte a řádně otestujte. * Pro výsledné řešení napište obslužnou aplikaci demonstrující funkčnost všech částí terminálu. * **Programovatelný řídicí systém pro ovládání periferií náročných na přesné časování (Programmable control system for controlling peripherals requiring precise timing)** (BP - Fujda Martin) * Prozkoumejte existující řešení zadané problematiky. * Analyzujte dostupné periférie, protokoly komunikace a ovládaní moduly. * Vyberte vhodnou HW platformu a navrhněte pro ni integrační desku. * Navrhněte vlastní zařízení založené na zvolené architektuře. * Zařízení se bude skládat z: kontroléru, síťového modulu, LCD TFT displeje s SD kartou. * Zařízení bude navrhnuto tak, aby bylo možné připojit externí periferie pomocí nastavitelného portu. * Realizujte obslužnou aplikaci pro zařízení a periferie. * Řešení se bude skládat ze serverové části na pozadí a obslužné uživatelské části. * Implementujte funkční prototyp, řádně ho zdokumentujte a otestujte. * **Wireless smart cube for time tracking with application Clockify (Bezdrátová chytrá kostka určená ke sledování času s aplikací Clockify)** (BP - Sobíšek David) * Research existing solutions for wireless smart objects for easier time-tracking. * Design your solution based on the ESP8266 platform. * The designed solution will meet these requirements: - It will be tracking a project assigned by the user to a side tilted upwards. - The user will be able to communicate with the device using WiFi. - The tracked data will be sent to the application Clockify using their public REST API interface or stored on a microSD card when WiFi is not reachable. - LEDs inside the device will light up to indicate the actions and states of the device. - Its batteries will be charged wirelessly. * Implement your proposed solution and adequately test it. * **Dálkově ovládaný analogový zesilovač zvuku ovládaný s pomocí IR ovladače (Remote controlled analog sound amplifier using an IR controller)** (BP - Vacek Kryštof) * Prozkoumejte existující řešení. * Analyzujte technologii dálkového ovládání s pomocí IR ovladače. * Navrhněte vlastní zařízení založené na mikrokontroleru ATmega. * Zařízení bude splňovat tyto požadavky: - Ovládání bude prováděno, jak pomocí IR dálkového ovládání, tak na samotném zařízení s pomocí rotačního enkodéru a tlačítek. - Zařízení bude zobrazovat aktuální stav a nastavení zesilovače. - Zařízení bude umožňovat výběr mezi různými vstupy. * Navržené řešení zrealizujte a řádně otestujte. * **Kamerové zařízení pro monitorování vzdáleného prostoru pomocí ESP32-CAM a SIM800L modulů (Camera device for remote space monitoring using ESP32-CAM and SIM800L modules)** (BP - Staes Adam) * Prozkoumejte existující řešení. * Navrhněte vlastní zařízení založené na platformě esp32-cam. * Zařízení bude splňovat tyto požadavky: - pořízení snímku při detekci pohybu na SD kartu, - se zařízením bude možné komunikovat přes SMS příkazy a síť WIFI, - zařízení umožní odeslání pořízené fotografie na email přes GPRS GSM sítě, - k určení času pořízení snímku bude řešení obsahovat RTC obvod. * Navržené řešení zrealizujte. * Součástí realizace bude vytvoření plošného spoje a vhodného pouzdra. * Výsledné řešení řádně otestujte. * **Nástroje pro podpora výuky bezpečnostních kódů v prostředí Wolfram Mathematica (Tools to support the teaching of security codes in the Wolfram Mathematica environment)** (BP - Linhartová Helena) * Prozkoumejte existující řešení nástrojů vhodných k výuce bezpečnostních kódů. * Analyzujte problémy studentů při výuce bezpečnostních kódů. * Zaměřte se zejména na tyto kódy: sudá parita, křížová parita, Hammingův kód, rozšířený i zkrácený Hammingův kód, cyklický kód, součinový kód a RM kód. * Navrhněte vlastní nástroje vhodné k výuce těchto kódů. * Zaměřte se zejména na oblast generování, dekódování a opravy těchto kódů. * Nástroje budou umožňovat generovat nejen výukové notebooky pro program Wolfram Mathematica, ale i VHDL kódy a testbenche pro lepší představu jejich implementace v hardware. * Nástroj bude podporovat i vložení chyby a jeji opravu. * Navržené řešení realizujte a řádně otestujte. * **Programovatelná elektronická zátěž (Programmable electronic load)** (BP - Pánek Miloš) - Prozkoumejte existující řešení programovatelné elektronické zátěže. - Analyzujte problémy současných řešení a navrhněte vlastní řešení. - Navržené řešení bude podporovat tyto režimy: stálý proud, stálý odpor, stálý výkon a stálé napětí. - Programovatelná zátěž bude splňovat tyto požadavky: - nastavení všech parametru zátěže přes rozhraní na samotném zařízení, - komunikace s PC aplikací přes bluetooth, USB a wifi, - záznam naměřených dat lokálně na SD kartu, - jednoduchý protokol pro komunikaci s PC s možným rozšířením pro další funkcionalitu. - Pro PC navrhněte a naprogramujte aplikaci v jazyce C# s grafickým rozhraním. - Aplikace v PC bude umožňovat nastavit všechny parametry zátěže, včetně průběžného sledování naměřených hodnot a jejich zobrazení přímo v aplikaci. - Parametry zátěže bude možné v průběhu měření měnit podle předem nastavených hodnot. - Navržené řešení zrealizujte a řádně otestujte. * **Zařízení pro ovládání základních periferií připojených k FPGA obvodu (Device for controlling basic peripherals connected to the FPGA circuit)** (BP - Šebek Michal) - Prozkoumejte existující řešení ovládání periferií z FPGA obvodu firmy XILINX. - Zaměřte se zejména na tyto periférie: OLED displej, alfanumerický displej, tlačítka, přepínače, led diody. - Navrhněte vlastní knihovnu zaměřenou na ovládání periferií zejména přes sběrnici I2C. - Navrženou knihovnu zrealizujte a řádně otestujte. - Pro demonstraci správné funkce periférií napište obslužnou aplikaci pro FPGA Artix-7. - Aplikace bude obsahovat menu pro volbu testování periférií a nastavení obsahu registrů. - Výsledné řešení řádně otestujte. * **Multiplatformní nástroj pro odposlech dat z rádiového přenosu pomocí SDR (A multi-platform wireless data sniffing tool using SDR)** (DP - Šimůnek Martin) - Analyzujte technologii SDR(softwarově definovaného rádia) a jeho možnosti pro odchytávání bezdrátových zařízení. - Zaměřte se zejména na zařízení pracující v pásmu 433MHz a 868MHz. - Prozkoumejte existující řešení pro odchytávání a analýzu těchto zařízení. - Využijte SDR a navrhněte nástroj pro odposlech dat přenášených rádiovým signálem v pásmu 433MHz a 868 MHz. - Nástroj by měl být tvořen knihovnou a grafickým rozhraním pro odposlech a zpracování naměřených dat. - Podporována budou zejména zařízení typu: bezdrátový teplotní senzor, bezdrátové senzory v automobilu a bezdrátové měřiče tepla v domácnostech. - Nastroj bude umožňovat analyzovat přenos, a to jak nešifrovaný, tak i šifrovaný. - Pokud bude k dispozici klíč pro dešifrování, bude nástroj umožňovat i dešifrování, a to zejména pro bezdrátové měřiče tepla v domácnostech. - Navržené řešení zrealizujte a řádně otestujte. * **Zařízení pro ovládání aplikace Adobe Lightroom s pomocí hardwarového ovladače (A device to control Adobe Lightroom using a hardware driver)** (BP - Macháček Vitězslav) - Prozkoumejte existující řešení umožňující ovládání aplikace Adobe Lightroom s hardwarového ovladače. - Pomocí metod softwarového inženýrství navrhněte vlastní řešení vyhovující níže uvedeným požadavkům. - Navrhněte vlastní zařízení fungující jako samostatný ovladač splňující tyto požadavky: - komunikace s aplikací bude realizována přes USB a Bluetooth, - ovladač bude umožňovat čtení vstupů z encodérů, tlačítek a Hallových senzorů, - ovladač bude napájen z baterie. - Navržený ovladač zrealizujte a naprogramujte. - Pro PC vytvořte vlastní aplikaci umožňující zpracování dat z ovladače a jejich přenos do aplikace Adobe Lightroom Classic. - Aplikace bude mít uživatelské rozhraní, které bude umožňovat její nastavení a toto nastavení bude ukládat do lokální databáze. - Výsledné řešení řádně otestujte. * **Přenosné zařízení pro odposlech NFC komunikace pomocí SDR založené na platformě Raspberry Pi (Portable device for sniffing NFC communication using SDR based on the Raspberry Pi platform)** (DP - Balko Martin) - Prozkoumejte existující nástroje určené k analýze NFC komunikace. - Analyzujte technologií SDR (softwarově definovaného rádia). - Analyzujte technologii NFC, zejména princip komunikace mezi NFC čtečkou a NFC kartou (MIFARE Classic, MIFARE DESFire, MIFARE Plus). - Analyzujte a navrhněte způsob pro odposlech NFC komunikace pomoci SDR. - Navrhněte přenosné zařízení, které bude umožňovat odposlech, záznam a prvotní analýzu NFC komunikace. - Zařízení bude schopné odchytit UID karty a komunikaci směrem od čtečky. Pokud bude signál dostatečně silný, zaznamená i komunikaci směrem od karty. - Navržené řešení zrealizujte na platformě Raspberry Pi. - Pro výsledné zařízení napište v jazyce Python obslužnou aplikaci. - Výsledné zařízení řádně otestujte. * **Aplikace pro chytrou domácnost využívající rádiové spojení jednotek s Raspberry Pi (Smart home application using radio connection of units with Raspberry Pi)** (BP - Zoreník Pavel) - Prozkoumejte existující řešení. - Pomocí metod softwarového inženýrství navrhněte vlastní řešení vyhovující níže uvedeným požadavkům. - Navržené řešení naprogramujete, zdokumentujte a řádně otestujte. - Požadavky: - webová aplikace na platformě Raspberry Pi (konfigurace zařízení), - připojení bude provedeno pomocí uživatelského jména a hesla, - aplikace bude umožňovat více uživatelů s různým typem oprávnění, - jednotlivá zařízení STM32, prostředí Arduino, - komunikace zařízení přes rádiový modul RFM69, - provoz zařízení na baterii, - sledování teploty, ovládání zásuvek. ===== Available projects - FIT ===== 1. Arduino HW/SW * GPS přijímač a jeho aplikace * Meteo stanice * GSM modém a jeho aplikace * NFC a bezkontaktní karty * univerzální desky s různými periferiemi * řízení modelu auta * generator analogových průběhů * přípravky pro desku digilent CMOD A7/S7 (displej, tlačítka, switche, atd.) * návrh hardware pro desku digilent CMOD A7/S7 * vlastní zadání * Wifi a ESP32/ESP2866 * zařízení pro ochranu baterie před vybitím 2. Wolfram Mathematica * bezpečnostní kódy * kódy pro kryptografií * matematické funkce realizované v HW * aritmetický procesor v GF(2^2^n) * efiktivita protokolů pro předmět BI-PSI * vlastní zadání 3. Visual C++/C# * aplikace pro komunikaci s periferiemi v PC * aplikace pro komunikaci s procesorem Zynq * aplikace pro správu projektu ve VHDL * překladače * grafické aplikace pro výuku * vlastní zadání 4. Jazyk VHDL / desky FPGA * návrh hardware pro bezpečnostní kódy * generátor průběhů (sinusovka, obdelník, trojuhelník) * osciloskop * návrh hardware pro realizaci matematických funkcí * implementace procesoru/periferié procesoru (ARM, Z80, AVR, ...) * HW podpora SoC (Zynq) * aritmetický procesor v GF(2^2^n) * Hry pro FPGA * vlastní zadání 5. Plošné spoje * návrh zařízení s porcesorem atmel + drobné periferié * zařízení s nízkou spotřebou * vlastní zadání 6. Raspberry PI / Raspberry PI Pico * ovládání jednoduchých periferií * chytré síť, ovládání periferií přes ethernet * vzdálená správa sítí * SDR(Software Defined Radio) aplikace - sledování a analýza provozu * vlastní zadání 7. Android * aplikace pro práci s hardware (raspberry PI, Arduino a jiné) 8. Python * aplikace pro zpracování a generování dat podle šablon 9. Neuronové sítě * Model neuronové sítě ve Wolfram Mathematice * Model neuronové sítě v jazyce c++ * Implementace neuronu a neuronové sítě v hardware * Implementace neuronové sítě v SoC ===== Available projects HW - external ===== 1. Malý grafický displej do výšky 1U s rotačním enkodérem ovládaný přes SPI * Navrhněte a zrealizujte grafický TFT displej ovládaný pomocí sběrnice SPI. * Displej by měl obsahovat možnost zadávání příkazů (tlačítka, rotační encoder,…). * Výška displeje musí splňovat normu 1U. * Pro vytvořený displej naprogramujte framework, který usnadní práci s displejem. 2. OSD displej v FPGA * Navrhněte a zrealizujte On-Screen displej v obvodu FPGA pro video stream. * OSD displej by měl fungovat na formátech od 720p do 4K, jak progressive, tak interlaced. * Požadavkem je minimální využití zdrojů v FPGA. * OSD se bude ovládat pomocí sběrnice AXI4-Lite. 3. Konfigurovatelný filtr ethernetoveho rámce v FPGA * Navrhněte a zrealizujte konfigurovatelný filtr ethernetového rámce umožňující filtrovat pakety podle zadaných parametrů (MAC, IP…) do více streamů, nebo jednoho streamu označeného identifikátorem. * Pro vstupní a výstupní interface bude použit AXI4 Stream pro zajištění kompatibility. 4. Zpracování I2S signálu s integraci do AXI Stream * Navrhněte a zrealizujte konverzní modul v FPGA ze standartního interface I2S na interface AXI4 Stream a opačně. * Modul by měl zvládat konverzi různé datové šířky audio samplu a multiplexování více audio streamu do jednoho I2S interfacu. 5. Efektivní (de)interlacing 12G SDI videa * Navrhněte a zrealizujte (de)interlacer 6G a 12G SDI videa do progressive formátu. * Modul může pracovat jak nad SDI formátem, tak na Native video formátem. 6. Embedded audio konvertor na AXi4 Stream a zpět * Navrhněte a zrealizujte konverzní modul v FPGA z SDI Embedded audia na interface AXI4 Stream a opačně. * Modul by měl zvládat konverzi různé datové šířky audio samplu. 7. Nízkolatenční komprese v FPGA s využitím vlnové transformace * Navrhněte a zrealizujte nízkolatenční video kodek v FPGA založený na vlnkové transformaci. * Latence kodeku by se měla pohybovat v jednotkách řádků videa. ===== Available projects SW - external ===== 1. Optimalizace Java aplikací pro horizontální škálování v moderní mikroservisní architektuře - spolupráce s průmyslem * využití AoT kompilace a minimalizace start-up času * výběr vhodného JVM a analýza jeho výhod pro minimální náročnost na prostředky (např. GraalVM) * využití vhodného frameworku a analýza jeho výhod (např. Quarkus) * analýza možností využití pro serverless architekturu (např. Knative) * využití komunikace přes gRPC * podpora feature flagů pro release management * vlastní zadání 2. Virtualizace a izolace aplikačních prostředí - spolupráce s průmyslem * využití OCI kontejnerů jako způsob doručování aplikací * analýza bezpečnostních chyb využívané technologie docker a možnosti jejich eliminace * porovnání s jinými přístupy (např. podman, buildah apod.) * lokální orchestrace kontejnerů (docker-compose vs podman-compose) * vnořování kontejnerů (např. docker(-compose)-in-docker/podman) * vlastnosti container file systemů (např. OverlayFS) * bezpečné (rootless) spuštění více kontejnerů uvnitř kontejneru 3. Orchestrace kontejnerů v distribuovaném on-premise prostředí - spolupráce s průmyslem * porovnání vlastností využívaných pro jako container runtime (containerd vs docker vs CRI-O) * kubernetes vs jeho komerční distribuce (openshift, tanzu) * helm vs yaml manifesty (+ možnosti jejich úprav, např. kustomize) * realizace ingress load balancerů v lokálním on-premise prosředí * vytvoření persistence v distribuovaném prostředí (např. Ceph, Rook, GlusterFS apod.) * správa citlivých údajů (šifrování kubernetes secrets, PAM nástroje) * vytvoření vlastního kubernetes operátora (vlastní zadání) 4. Podpora vývoje a administrace prostředí prostřednictvím automatizace - spolupráce s průmyslem * analýza praktik DevOps přístupu, GitOps, SecOps, ChatOps, AIOps * analýza a představení SRE (Site reliability engineering) praktik * vytvoření a nasazení prostředí pro kompletní podporu životního cyklu aplikace naplňující znaky GitOps a IaaC (infrastructure as a code) * zabezpečení SVC repozitářů přes GPG klíče * podpora IaaC nástrojů (ansible, chef+puppet, cloud vendor proprietární nástroje, terraform) * využití CI nástroje s dynamickým vytěžováním zdrojů dle aktuální zátěže (návrh tzv. CI farmy) * podpora deklarativního popisu činností (pipelines) * porovnání známých CI nástrojů (jenkins, jenkins-x, gitlab, tekton, github actions) * návrh procesů pro validaci aplikací před jejich nasazením prostřednictvím testů 5. Projekty zadané externím zadavatelem * seznam zadavatelů níže **Pokud máte o téma zájem, napište mi email. Rezervace v systému bpm nemá žádnou váhu. Pokud se Vám nelíbí žádné z nabízených témat, koukněte do archívu dostupných zadání.** *[[project:2018:proj_archiv|Návrhy zadání dostupných projektů]] ===== Projekty zadané externím zadavatelem ===== * [[project:eaton:proj_eaton|EATON HW/SW]] ===== All defended works ===== **BP a DP defended works on CTU in Prague FEL/FIT:** [[https://dspace.cvut.cz|BP a DP]] ===== All projects archives 2004 - 2019 ===== *[[project:2022:proj_2022|Realized projects 2022]] *[[project:2021:proj_2021|Realized projects 2021]] *[[project:2020:proj_2020|Realized projects 2020]] *[[project:2019:proj_2019|Realized projects 2019]] *[[project:2018:proj_2018|Realized projects 2018]] *[[project:2017:proj_2017|Realized projects 2017]] *[[project:2016:proj_2016|Realized projects 2016]] *[[project:2015:proj_2015|Realized projects 2015]] *[[project:2014:proj_2014|Realized projects 2014]] *[[project:2013:proj_2013|Realized projects 2013]] *[[project:2012:proj_2012|Realized projects 2012]] *[[project:2011:proj_2011|Realized projects 2011]] *[[project:2010:proj_2010|Realized projects 2010]] *[[project:2009:proj_2009|Realized projects 2009]] *[[project:2008:proj_2008|Realized projects 2008]] *[[project:2007:proj_2007|Realized projects 2007]] *[[project:2006:proj_2006|Realized projects 2006]] *[[project:2004:proj_2004|Realized projects 2004]] *[[project:200x:proj_200x|Others realized projects]] ===== Main page ===== * [[:start|Pavel Kubalík's Home Page]]