diplomová práce

Podpora mikrokontrolerů NXP ve vývojovém prostředí Arduino IDE

Text práce 2.13 MB

Autor práce: Ing. Jan Tomeček

Ak. rok: 2023/2024

Vedoucí: Ing. Václav Šimek

Oponent: Ing. Josef Strnadel, Ph.D.

Abstrakt:

Tato práce se zabývá návrhem podpory mikrokontrolérů od společnosti NXP Semiconductors ve vývojovém prostředí Arduino IDE. Práce analyzuje jednotlivé prvky Arduino IDE, jeho rozšiřovacími balíky a jednotlivé konfigurační soubory. Také popisuje prostředí MCUXpresso IDE, na základě kterého je navržen balík pro podporu mikrokontrolérů od NXP.

Klíčová slova:

Arduino, Arduino IDE, Mikrokontroléry, MCUXpresso, LPC845, LPC860

Termín obhajoby

17.06.2024

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaBznamka

Klasifikace

B

Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.

Otázky k obhajobě

  1. Uveďte a stručně zdůvodněte, které z činností popisovaných v kap. 6 a 7 by se daly automatizovat.
  2. Proč zahrnujete PWM do popisu k analogovým vstupům/výstupům, např. do části 2.3.1 (Funkce) či do podkap. 7.5 (Analog I/O) ?
  3. Zvolený přístup k řešení a předložený realizační výstup jste ověřil pouze na dvou velmi podobných platformách - vyjádřete se k širší/obecné použitelnosti tohoto přístupu a výstupu.
  4. Porovnával jste vaše řešení s podobnými projekty?
  5. Na jakých vývojových deskách jste vaše řešení testoval?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie a umělá inteligence (MITAI)

Specializace

Vývoj aplikací (NADE)

Složení komise

prof. Ing. Tomáš Hruška, CSc. (předseda)
doc. Ing. František Zbořil, Ph.D. (člen)
Ing. Ondřej Lengál, Ph.D. (člen)
RNDr. Marek Rychlý, Ph.D. (člen)
Ing. Libor Polčák, Ph.D. (člen)
Dr. Ing. Petr Peringer (člen)

Posudek vedoucího
Ing. Václav Šimek

S ohledem na velmi solidní zpracování celého projektu (realizační výstup, technická zpráva, reálně ověřená funkcionalita) a potenciální přínos pro komunitu soustředěnou kolem vývojového prostředí Arduino IDE doporučuji z pozice vedoucího souhrnné hodnocení stupněm A - výborně, 90 bodů.

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Jedná se o práci implementačního charakteru (tj. tvorba software a firmware), která po tematické stránce spadá do oblasti vestavěných systémů. Zadání práce jako takové bylo zformulováno ve spolupráci se společností NXP, lze tedy hovořit o firemním zadání.

Hlavním cílem je vytvořit podporu pro zvoleny mikrokontroler od společnosti NXP v rámci vývojového prostředí Arduino IDE a prakticky demonstrovat funkčnost realizovaného řešení. Důležitou vlastností celé koncepce by taktéž měla být i snadná rozšiřitelnost o další nové součástky.

Náročnost tohoto projektu bych označil za nijak nevybočující z obvyklých mezí očekávaných v případě diplomové práce. Zejména bylo třeba prozkoumat mechanismus podpory mikrokontrolerů v prostředí Arduino IDE, nastudovat si technickou specifikaci zvolené součástky od společnosti NXP a seznámit se s aspekty tzv. embedded programování.

Domnívám se, jednotlivé body zadání byly v úplnosti splněny a dosažené výsledky naplňují cíle a očekávání plynoucí z tohoto projektu.

Aktivita při dokončování

K dokončení realizačního výstupu i samotné technické zprávy došlo ve stanoveném termínu, i když s nijak velkým předstihem. Do technické zprávy se podařilo zapracovat prakticky všechny připomínky.

Publikační činnost, ocenění

Je plánování zveřejnění kompletních výsledků projektu formou open-source. Žádné další publikační výstupy či zisk ocenění mi nejsou známy.

Práce s literaturou

Ohledně získávání informačních pramenů a způsobů jejich využití v rámci tohoto projektu byla studentovi udělena základní doporučení. Konkrétní reference uvedené v technické zprávě si zajistil vlastními silami, přičemž jejich výběr byl se mnou konzultován.

Aktivita během řešení, konzultace, komunikace

Aktivita studenta i vzájemná komunikace v průběhu celého období řešení projektu byla na velmi dobré úrovni. Průběžně jsem byl informován o aktuálním stavu řešení projektu a výskytu eventuálních problémů, kdy student dokázal navrhnout a realizovat potřebná opatření. Za velmi dobrou bych rovněž označil spolupráci s odborným konzultantem ze společnosti NXP. 

Výsledný počet bodů navržený vedoucím: 90
Zobrazit více

Známka navržená vedoucím: A

Výsledek práce studenta (tj., realizační výstup a technickou zprávu) souhrnně považuji za nadprůměrně kvalitní a navrhuji jej ohodnotit stupněm B; odůvodnění:



  • zadání bylo obtížnější,

  • úroveň technické zprávy považuji, i přes mé výtky, za nadprůměrnou,

  • realizační výstup sice hodnotím, i přes pochybnosti ohledně jeho širší/obecnější použitelnosti, jako nadprůměrně kvalitní, funkční dle požadavků zadání a, až na poměrně stručné zhodnocení jeho vlastností, také jako nadprůměrně kvalitně zdokumentovaný,

  • k výsledku práce studenta nemám zásadnější výhrady.

Kritérium hodnocení Slovní hodnocení Body
Rozsah splnění požadavků zadání

Stupeň hodnocení: zadání splněno s drobnými výhradami

Zadání považuji za splněné, nicméně s výtkou k poměrné stručnosti dokumentace z hlediska řešení bodů 6 a 7 zadání.

Rozsah technické zprávy

Stupeň hodnocení: je v obvyklém rozmezí

Rozsah technické zprávy (TZ) považuji za obvyklý - TZ, až na výtku z části Rozsah splnění požadavků zadání, obsahuje veškeré podstatné informace k řešené problematice.

Prezentační úroveň technické zprávy

Technická zpráva (TZ) je vhodně strukturovaná, její části na sebe vhodně navazují a přispívají k její velmi dobré čitelnosti a představě o prostředcích, způsobu a výsledku řešení - k prezentační úrovni TZ nemám vážnější výhrady.

95
Formální úprava technické zprávy

Úroveň typografické a jazykové stránky technické zprávy považuji za velmi dobrou, případné nedostatky považuji za nepodstatné - dovolím si zmínit jen, poměrně zbytečné, členění nadpisu až do třetí úrovně či  občasné překlepy a "bílá místa" v textu.

89
Práce s literaturou

Informační zdroje použité v technické zprávě jsou, vzhledem k tématu a zadání práce, vhodně zvoleny, pokrývají problematiku řešenou v rámci práce a v technické zprávě je na ně odkazováno způsobem umožňujícím řádné odlišení prvků vlastních od převzatých. Vytknout lze snad jen v některých částech čtenářem logicky očekávané, nicméně v textu chybějící odkazy na citace (např. k Arduino IDE v části 2.1, k balíkům zmiňovaných v odrážkách v části 6.4, CopilotAI na konci části 7.3.1). Některé odkazy na citace jsou nevhodně umístěny za dvojtečkou uvádějící výčet (str. 7, 20), nejsou odděleny mezerou od textu vlevo od citace (str. 14) apod.

85
Realizační výstup

Realizační výstup (RV) tvoří zejména podpůrný balík (viz podkap. 6.1), konfigurační soubory (viz podkap. 6.3) a jádro pro konkrétní platformu (viz podkap. 6.4, kap. 7) a testy (viz podkap. 6.5); implementace staví převážně na jazyku C. RV je sice řešen se snahou o obecné řešení, nicméně ověřen s minimálním úsilím (viz požadavek bodu 2 zadání "pro vybrané mikrokontrolery" - vybrány sice byly dva, ale velmi podobné m.), což vzbuzuje pochybnosti ohledně jeho širší/obecnější použitelnosti. RV považuji za poměrně detailně a kvalitně zdokumentovaný a souhrnně jej hodnotím, i přes základní přístup k ověření/prokázání jeho vlastností, jako  funkční.

89
Využitelnost výsledků

Pokud by byla prokázána širší/obecnější použitelnost předloženého řešení, pak bych považoval toto řešení jako solidní základ využitelný k usnadnění vývoje vestavných aplikací. Současné řešení je tedy potřeba v tomto smyslu dopracovat.

Náročnost zadání

Stupeň hodnocení: obtížnější zadání

Zadání považuji za obtížnější, a to zejména kvůli požadavku (o předem neznámé náročnosti) bodů 4, 5 zadání ohledně sladění přístupů z Arduino IDE a z SDK od NXP, který bylo nutné splnit s předstihem, což kladlo nároky na vhodné načasování souvisejících činností. Za neméně náročnou považuji volbu a přípravu podmínek, prostředků a metod pro testování dle bodu 6 zadání. Zadání považuji za řešitelné pomocí vědomostí, dovedností a zkušeností získaných během dosavadního studia.

Otázky k obhajobě:
  1. Uveďte a stručně zdůvodněte, které z činností popisovaných v kap. 6 a 7 by se daly automatizovat.
  2. Zvolený přístup k řešení a předložený realizační výstup jste ověřil pouze na dvou velmi podobných platformách - vyjádřete se k širší/obecné použitelnosti tohoto přístupu a výstupu.
  3. Proč zahrnujete PWM do popisu k analogovým vstupům/výstupům, např. do části 2.3.1 (Funkce) či do podkap. 7.5 (Analog I/O) ?
Výsledný počet bodů navržený oponentem: 85
Zobrazit více

Známka navržená oponentem: B