\chapter{Hodnocení technologií a~nástrojů} \label{kapitola:nastroje}

V~návaznosti na kritéria stanovená v~kapitole \ref{kapitola:kriteria} a~analýzu dostupných didaktických materiálů v~sekci \ref{sekce:materialy} jsou v~této kapitole vyhodnoceny vybrané hardwarové platformy. Kapitola je zakončena celkovým shrnutím poznatků a~úvah o~vhodnosti těchto nástrojů pro účely výuky programování.


\section{Hodnocení jednotlivých nástrojů}

\subsection*{BBC micro:bit}

\emph{BBC micro:bit} je široce využívanou platformou ve vzdělávacím prostředí, zejména na úrovni základních škol, pro svou schopnost efektivně podporovat výuku. Tato platforma disponuje rozsáhlým spektrem senzorů, LED a~dalších výstupů, což umožňuje vytváření komplexních vzdělávacích úloh, které aktivně zapojují studenty do procesu učení. O~procesu zapojení do výuky pojednává například článek \uv{BBC micro:bit ve škole} \parencite{microbit-ve-skole}. Hlavní výhody tohoto nástroje popisuje autorka článku následovně:

\begin{displayquote}
    \uv{Velkou výhodou je kompaktnost celého zařízení. Díky displeji, rádiové komunikaci a~mno\-ha senzorům si dlouho vystačíte se samotnou destičkou, u~které se nemusíte starat o~správné zapojení vodičů a~součástek. Micro:bit ale není omezen jen na vestavěné senzory, pomocí rozšiřujících pinů je možné připojovat další moduly a~součástky, takže se otevírá obrovský prostor pro projekty.}
\end{displayquote}

Zajímavé učebnice pro využití BBC micro:bit ve výuce poskytuje dříve zmíněný portál \emph{Informatické myšlení}, viz sekce \ref{sekce:materialy}

Zařízení micro:bit je vybaveno širokou škálou senzorů, LED maticí a~dalšími prvky, což z~něj činí atraktivní nástroj pro výuku základů programování. Nicméně, jeho využití je omezeno na interpretované jazyky a~vlastní knihovny. To představuje určitou nevýhodu, jelikož takové prostředí a~nástroje neumožňují vytváření univerzálního kódu, který by mohl být aplikován v~reálných projektech mimo specifické prostředí micro:bitu. V~důsledku toho se studenti naučí pouze základní koncepty programování, které jsou specifické právě pro micro:bit, což omezuje jejich schopnost přenést tyto dovednosti na jiné platformy a~do praxe při řešení reálných problémů či projektů. Můžeme tedy říci, že nástroj je vhodný spíše pro jednoduché konstrukty a~nehodí se pro tvorbu komplexních projektů a~výrobků.

\subsection*{Arduino} \label{sekce:nastroje-arduino}

Arduino je open-source platforma, která kombinuje jednoduchý hardware a~software pro práci s~elektronikou. Arduino dokáže číst různé vstupy, například ze senzorů světla, teploty, nebo stisk tlačítka a~převádět je na výstupy, jako je spuštění motoru, nebo rozsvícení LED.

K~programování se využívá jazyk \emph{Arduino} založený na jazyce \emph{Wiring} a~vývojové prostředí \emph{Arduino IDE}. Wiring, potažmo jazyk Arduino, je open-source programovací jazyk navržený pro mikrokontroléry, který zjednodušuje proces psaní vestavěných programů. Je postaven na jazyce \emph{C++} a~používá se v~rámci vytváření softwaru pro ovládání elektronických zařízení. \parencite{ramon2014}

Tato platforma našla uplatnění v~tisících projektů, od vzdělávacích nástrojů až po vědecké přístroje. Díky své jednoduchosti ji využívají nejen studenti a~učitelé, ale také designéři, umělci, hudebníci a~amatérští tvůrci, kteří s~její pomocí realizují interaktivní prototypy, instalace nebo experimenty s~robotikou.

Jednou z~hlavních výhod Arduina je jeho dostupnost. Desky jsou cenově přijatelné, software je otevřený a~flexibilní a~funguje na různých operařních systémech. Prostředí Arduino IDE je snadné na ovládání pro začátečníky, ale zároveň nabízí pokročilé možnosti pro zkušené uživatele. Plány hardware i~software jsou zveřejněny jako open-source, což umožňuje rozšiřování funkcí a~přizpůsobení podle potřeb. \parencite{arduino-introduction}

Problém při využití Arduina ve výuce programování spočívá v~nutnosti fyzického zapojování různých komponent, jako jsou senzory, výstupy a~napájení. To vede k~tomu, že významná část výuky se musí věnovat praktickým aspektům a~základům elektroniky či fyziky, což ubírá čas, který by mohl být využit k~samotnému programování.

Částečným řešením je derivátní deska \emph{Arduino UNO R4}, která kromě funkcí původního \emph{Arduino UNO} obsahuje i~rozšiřující komponenty, například adresovatelnou LED matici podobnou té u~BBC micro:bit, a~některé další senzory \parencite{arduino-uno-r4-datasheet}. Přestože nabízí určitá vylepšení, pro složitější projekty není dostatečně vybavená a~stále vyžaduje rozšiřování prostřednictvím zapojování dalších komponent, což původní problém odstraňuje pouze částečně.

\subsection*{ESP32}

ESP32 je mikrokontrolér vyvinutý společností \emph{Espressif Systems}, který nabízí široké spektrum využití díky integrované podpoře Wi-Fi a~Bluetooth, přičemž některé varianty podporují i~technologii Zigbee. Mikrokontrolér poskytuje obdobné funkce a~podporu softwarových platforem jako Arduino, avšak vyniká vyšším výkonem a~rozšířenými možnostmi konektivity. \parencite{espressif-esp32-datasheet}

Tato hardwarová platforma se jeví jako vhodná pro potřeby výuky, a~to zejména díky svému výkonu, flexibilitě a~nativní podpoře nástroje PlatformIO. Zásadní nevýhodou však zůstává skutečnost, že obdobně jako u~Arduina jsou dostupné vývojové desky navrženy pro manuální zapojování jednotlivých komponent. Příkladem může být oficiální vývojová deska \emph{ESP32-DevKitC V4} \parencite{espressif-esp32-dev-board}. Tento přístup ve vzdělávacím prostředí znamená, že značná část hodiny musí být věnována právě manuálnímu zapojování komponent, což ubírá čas samotnému programování.

\subsection*{Raspberry Pi}

Rodina počítačů Raspberry Pi, podobně jako Arduino a~ESP, umožňuje připojení externích senzorů a~modulů prostřednictvím GPIO pinů a~svou funkčnost rozšiřuje díky široké škále dostupných modulů. Na rozdíl od těchto zařízení však Raspberry Pi představuje plnohodnotný počítač s~operačním systémem, což jej přibližuje klasickému programování na školních počítačích, s~možností využití různých jazyků a~paradigmat \parencite{butts2021}. Alternativy jako Odroid nebo Banana Pi mohou na\-bíd\-nout vyšší výkon nebo nižší cenu, avšak i~tyto mikropočítače sdílejí podobné vlastnosti \parencite{bauduin2023}.

Navzdory své všestrannosti není Raspberry Pi ideální volbou pro samostatnou výuku programování. Vyšší pořizovací cena a~nutnost pravidelné údržby operačního systému mohou být značnou překážkou. Navíc se programování na této platformě více vzdaluje od přímé práce s~hardwarem, která je charakteristická pro vývojové desky, jako je Arduino. Na Raspberry Pi je programování více abstrahované, což může omezovat pocit přímé interakce s~hardwarem. Tento rozdíl v~přístupu může mít vliv na celkové vnímání a~pochopení principů embedded systémů. Z~těchto důvodů nelze tento typ zařízení považovat za vhodný pro výuku programování jednočipových počítačů.

\subsection*{BeagleBone}

Pozornost si zaslouží také vývojové desky BeagleBone, které patří do stejné kategorie zařízení jako Raspberry Pi a~další zmíněné alternativy. BeagleBone se vyznačuje vysokou rozšiřitelností díky dostupným modulům a~podpůrným materiálům, a~je tedy skvělou platformu pro tvorbu složitějších robotických systémů a~automatizací. Vývojáři navíc nabízejí speciální výukové materiály a~sady zaměřené na školní prostředí \parencite{beaglebone-educate}, včetně rozšiřující desky \emph{TechLab} určené přímo pro vzdělávací účely \parencite{beaglebone-techlab}.

Nicméně, tyto desky závisí na Embedded Linuxu, což může přinášet problémy spojené s~větší složitostí systému, stejně jako v~případě Raspberry Pi. Aktuálně také nejsou plně podporovány vývojovým prostředím PlatformIO, což dokládá probíhající diskuse na GitHubu \parencite{github-platformio-beaglebone}. Podobně jako u~Raspberry Pi může být práce s~BeagleBone vnímána jako příliš abstrahovaná, což ji vzdaluje od přímého přístupu k~hardwaru, typického pro jednočipové počítače.

\subsection*{Hardwario TOWER} \label{hardwario-tower}

Český Hardwario TOWER je komplexní platforma pro vývoj a~správu chytrých zařízení a~aplikací v~prostředí IoT. Skládá se z~různých hardwarových modulů, jako jsou senzory a~komunikační rozhraní, které lze snadno propojit a~integrovat do široké škály projektů. Princip této platformy spočívá v~tom, že jednotlivé moduly lze jednoduše připojit k~hlavní vývojové desce s~procesorem, čímž se snadno rozšiřuje funkcionalita celého systému. \parencite{lupa-bigclown}

Zmíněná stavebnice však trpí velmi komplexním softwarovým vybavením a~je víceméně nutné vytvářet programy v~připraveném prostředí \emph{BigClown Playground}, které nabízelo pouze nástroj pro blokové programování s~názvem \emph{Node-RED}, viz článek \uv{BigClown Playground} od samotných vývojářů stavebnice \parencite{bigclown-playground}. Toto softwarové řešení značně omezuje možnosti práce se stavebnicí. Druhou možností je programovat vlastní firmware, avšak tento proces je velmi složitý v~porovnání s~jinými platformami a~svým rozsahem je vhodný spíše pro vysoké školy. Tato skutečnost nenaplňuje cíle a~kritéria zvolená v~kapitole \ref{kapitola:kriteria}.

Zdá se, že i~přes dobře navržený hardware stavebnice nezískala přízeň uživatelů ani škol. Přispěla k~tomu i~vysoká pořizovací cena stavebnice a~jednotlivých modulů, viz komentáře uživatelů u~dříve zmíněného článku na portálu Lupa.cz\footnote{\url{https://www.lupa.cz/clanky/liberecky-bigclown-se-odtrhl-od-jablotronu-a-s-hardwarovou-skladackou-jde-do-sveta/}} \parencite{lupa-bigclown}.


\section{Shrnutí hodnocení}

Navzdory široké nabídce dostupných hardwarových platforem, které se zdají vhodné pro výuku programování jednočipových počítačů na středních školách a~vyšších gymnáziích, se žádná z~nich nejeví jako zcela ideální. Arduino i~univerzálnější ESP32 představují výkonné a~flexibilní nástroje, avšak jejich využití je značně omezeno nutností manuálního zapojování součástek. Tento proces často zbytečně zatěžuje výuku a~odklání pozornost od samotného programování.

Na druhou stranu, Hardwario TOWER přináší inovativní koncept snadno propojitelných modulů, které minimalizují potřebu manuální práce, ale jeho využití je výrazně limitováno složitostí softwarového prostředí a~vysokými pořizovacími náklady. Podobný problém má i~BBC micro:bit, který sice nabízí dobře integrované senzory a~funkce, avšak jeho univerzálnost a~přenositelnost vytvořených programů na jiné platformy jsou velmi omezené.

Raspberry Pi a~BeagleBone sice poskytují větší výpočetní výkon a~možnosti operačního systému, ale jejich využití je orientováno spíše na obecné programování než na výuku s~využitím jednočipových počítačů, a~navíc vyžadují značnou údržbu a~jsou finančně náročnější.

S~ohledem na analyzované nástroje se zdá, že žádné z~dostupných řešení neodpovídají kritériím stanovených v~kapitole \ref{kapitola:kriteria}. Alternativní cestou se proto jeví vytvoření vlastního systému, který by kombinoval přednosti jednotlivých platforem -- jednoduchost a~univerzálnost Arduina a~ESP32, modularitu a~snadnou integraci komponent z~Hardwario TOWER, a~zároveň by zachoval nízkou pořizovací cenu a~snadné ovládání vhodné pro vzdělávací prostředí. Takový systém by mohl poskytnout ideální rovnováhu mezi praktičností, výkonem a~uživatelskou přívětivostí.