Blokové programování s robotickou hračkou

Patrik Kavecký

Název aktivity:
Blokové programování s robotickou hračkou
Doba trvání aktivity:
10 vyučovacích hodin (45 min). Každé téma odpovídá jedné vyučovací hodině.
Věková kategorie:
8. ročník ZŠ
Potřebné pomůcky:
roboti mBot, segmentové displeje (doplněk mBota), tablety s BlueTooth modulem, aplikace MakeBlock Blockly (AppStore, Google Play), papíry formátu A1 (podklad dopravního hřiště), černá izolační páska jako cílová páska, krabice jako překážky.
Další doporučení:
ilustrační videa a pracovní listy mohou být žákům zadávány v prostředí Google Classroom.

Postup realizace aktivity a doporučení:

V úvodní části každé hodiny seznamuje učitel žáky s prostředím aplikace. Cílí na sekce s příkazy, které se v dané aktivitě nejvíce používají. Dále popisuje robota, převážně pak jeho senzory a jejich funkcionalitu.

Poté žákům přehraje první příklad, popř. doplní popis vedoucí k navedení požadovaných cílů. Chceme-li například, aby žák použil volání funkce, je třeba zadání upřesnit, popř. demonstrovat na obdobném příkladu. Podrobněji viz jednotlivé kapitoly.

Následuje diskuze vedoucí k obecnému sestavení algoritmu. Dbejte na to, aby žáci přicházeli na algoritmy sami. Je to důležité pro rozvoj jejich algoritmického myšlení. K zápisu algoritmu mohou využít vývojové diagramy. Doporučenou on-line aplikací je např. Lucidchart.

Samotné řešení úlohy a konkretizaci algoritmu v prostředí aplikace pedagog nechává zcela na žácích. Jejich tvůrčí proces při sestavení algoritmu pouze mentoruje a přistupuje s pomocí pouze v případech, kdy si o ni žáci sami řeknou. Žádoucí je i práce ve skupinách za účelem vzájemné pomoci.

Individualizace výuky je zajištěna sekcí „Update programu“ v pracovní listu. Šikovnější žáci pracují na rozšíření základní úlohy individuálním tempem. Jsou-li s řešením hotovi, demonstruji je učiteli.

Na závěr probíhá reflexe žákovských řešení a diskuze nad optimalizací algoritmu.

Rizika realizace:

  • mBot musí mít ve své vnitřní paměti nahraný výchozí program. Jedině tak je možné spárování přes bluethooth. Toho docílíte připojením robota k PC přes USB kabel, připojíte jej přes aplikaci mBlok a v programové nabídce Připojení naleznete položku Reset výchozího programu.
  • Při větším množstvím mBotů je třeba dbát na správné spárování zařízení s robotem. To se projeví „zatancováním“ mBota, rozblikáním LED diod a třemi zahranými tóny.
  • Prostředí aplikace Mblock Blockly je celé v angličtině, z čehož pedagog udělá přednost v podobě mezipředmětové vazby, popř. metody CLIL.
  • Pomalý přenos instrukcí prostřednictvím bluetooth. Například použijete-li v dopravních situacích jízdní pásy v podobě černé izolační pásky, musí být tyto pásy dostatečně široké, aby linefollower v kombinaci s BT stačil čáru detekovat.

Doporučení:

Motivujte žáky příměry z praktického života a hlavně… nezapomeňte dát vaší výuce příběh (viz první kapitola).

Vnukněte žákům, že jsou členové vývojového týmu

Významnou motivační složkou výuky je propojení probíraného učiva s praxí. Zadání jednotlivých programů budou tvořit příběh, jehož scénář by mohl vypadat například takto: Žáci budou členové týmu, který se zabývá vývojem nového prototypu inteligentního vozu, jež budeme nazývat mBcar (čti: emBékár)

Jejich úkolem bude naprogramovat robotické auto tak, aby splňovalo standardy moderního inteligentního vozu. Mezi tyto standardy bezesporu patří například automatické zapnutí osvětlení, parkovací senzory, hlídání jízdy v pruzích, automatické dobrzďování před překážkou atp. Žáci budou plnit úkoly dle videí. Od jednoduchých programů se postupně propracují k těm složitějším, na nichž si vyzkoušejí základní techniky programování:

Pojďme přímo na věc, mBcar je připraven na vaše blokové programy.


1. Sekvence příkazů

Před první jízdou našeho mBcar je nutné zkontrolovat funkčnost všech světel, tzn. přední potkávací (bílá), zadní brzdová (červená), levý a pravý blinkr (oranžová). Každé ze světel otestujte v daném pořadí.

Update programu:

Vazby: RGB led diody jsou vhodnou motivací pro vysvětlení barevného modelu RGB.

Metodické pokyny:

Pedagog nejdříve seznámí žáky s jejich pozicí vývojářů robotického vozu. Konkretizuje zadání spuštěním videa. Žáci video zhlédnou a jejich úkolem je, aby v prostředí mobilní aplikace blokově naprogramovali mBota dle videa. Pedagog by měl mentorovat řešení žáků pouze ve smyslu zamýšlené programovací techniky (např. sekvenci příkazů) a přistupovat k nim s radou pouze v případě, že o ni sami požádají. Je-li žák s řešením hotov, může se pustit do tzv. updatů programů, zatímco pomalejší žáci pracují na základní úloze. Updaty jsou zde zařazeny z důvodu individualizace a rozdílech v tempu každého žáka.

Řešení:

Příklad #01 - řešení

Příklad #02: Na zelenou se rozjeď a vyžeň rychlost na 100

Osvětlení jsme zkontrolovali, můžeme přistoupit k první jízdě. Ta je v městském provozu velmi často řízena semafory. Proto musíme náš vůz tyto světelné signály naučit. Zde je další úkol:

Stisknutím tlačítka  rozsviťte LED diody mBota v barvách semaforu – červeně, oranžově a zeleně (v tomto pořadí). Všechny tři barvy se rozsvítí na 2 sekundy. Poté se mBot rozjede vpřed po dobu dalších dvou sekund.

Update programu:

Řešení:

Příklad #02 - řešení
Vazby: Rovnoměrně zrychlený pohyb (fyzika).

2. Cykly

Jednou z priorit každého moderního vozu je uživatelský komfort, jehož součástí je kvalitní audio poslech. Držme se zatím nižších cílů: Naučte mBcar přehrát písničku „Ovčáci, čtveráci“. Podmínkou je, aby všechny repetice v písničce byly zahrány v cyklech.

Zde je malá nápověda v podobě alfanumerického (nikoli notového) zápisu.

Alfanumerický zápis: |: C4, E4, G2 :|, |: E8, E8, D8, E8, F4, D4 :|, E4, D4, C2.
Čísla reprezentují délky not; např. C8 = nota C v délce noty osminové.

Update programu:

Příklad #03 - řešení

Vazby: Délky not a repetice (hudební výchova).


3. Podmínky

Příklad #04: Parkovací senzory aneb nerozbij si masku, mBcar(e)!

Parkovací senzory jsou v dnešní době standardem každého moderního vozu. A proto…
Stiskem tlačítka Tlačítko rozjeďte mBota vpřed. Ultrasonic senzor zabrání jeho střetu s překážkou – zastaví jej v bezpečné vzdálenosti.

Update programu:

Příklad #04 - řešení

Vazby: Ultrazvuk jakožto aktivní prvek senzoru pro snímání vzdálenosti. Vysvětlení principu ultrazvuku, přesah do medicíny.


4. Funkce

Příklad #05: Orientace v terénu… zatím pouze pravotočivá

Zaměřme se nyní na to, aby se naše robotické auto samostatně pohybovalo, nedocházelo ke střetu s překážkou a změnu směru jízdy signalizovalo odpovídajícím blinkrem… zatím tedy výhradně pravým. mBcar se bude chovat inteligentně, čímž se rozumí, že pokud uvidí překážku zahne před ní doprava a o změně směru jízdy dá vědět pravým blinkrem.

Metodická poznámka:

V tomto případě je důležité, aby pedagog vysvětlil žákům, že v programování existují tzv. podprogramy (procedury a funkce), což jsou autonomní části kódu resp. bloku, které jsou vyjmuty z hlavního programu a jež se z hlavního programu tzv. „volají“ jménem.

Je vhodné pohovořit o důvodech vyjmutí podprogramů z hlavního programu a v případě funkcí vysvětlit žákům analogii s funkcemi matematickými (např. lineární).

Samozřejmostí je ukázka použití metody v blokovém programování před samotným zadáním 5. příkladu. Jaká? Necháváme na tvořivosti pedagoga.

Update programu:

Příklad #05 - řešení

5. Proměnné

Automobilová diagnostika je elektronické zařízení, které dává základní informace o vozidle a jeho aktuálním technickém stavu. Ze široké škály informací, které diagnostika poskytuje, zacílíme na čidla, která jsou rozmístěna v různých částech vozu, převážně pak v motoru.

Naší diagnostikou bude segmentový displej, na němž postupně zobrazíme požadované hodnoty. Nejdříve však tyto hodnoty uložte do proměnných a zobrazte v určeném pořadí na segmentovém displeji. Jednotlivá čísla oddělte probliknutím zelené diody a zvukovým.

Hodnota:
Proměnná:
typ mBcar(u): 1.01
typmBcar
rok výroby: 2019
rokVyroby
počet najetých centimetrů: 4 326
najeteCm

V dalším programu se zaměřte na hodnoty čidel.

intenzita okolního osvětlení: viz Light Senzor
lightSenzor
vzdálenost od překážky: viz Ultrasonic Senzor
ultraSonic

Update programu:

Metodická poznámka:

Pedagog žákům vysvětlí pojem proměnné (v programování). Že jde o jakousi paměťovou buňku, do níž se ukládají hodnoty různých datových typů (celé číslo, reálné číslo, znak, atd.) dle toho, jak je proměnná deklarovaná či inicializovaná. Proměnná vzniká v paměti počítače při spuštění programu a zaniká jeho ukončením. Analogii proměnné a jejího datového typu lze najít v buňce tabulkového procesoru, která je obdobně jako proměnná různého datového typu (číslo, text, datum atd.).

Dále je třeba žákům vysvětlit, že s aktuálními hodnotami senzorů se mnohdy pracuje po delší dobu spuštění programu, proto je ukládáme do proměnných. Ty se pak mohou objevit například v podmínkách strukturovaných příkazů.

Příklad #03 - řešení

Příklad #06 - řešení

6. Operace s proměnnými

Příklad #07: Jakou vzdálenost mBcar ujel?

K odpovědi se žáci budou muset dobrat sami. My jim však trochu napovíme. Postupně jim odhalíme následující indicie:

  • K určení ujeté vzdálenosti využijeme ultrasonic senzoru.
  • Postavíme mBcar před překážku a jeho vzdálenost (určenou ultrasonic senzorem) uložíme do proměnné s1.
  • Rozjedeme autíčko směrem k překážce tak, aby do ní nenarazil a jakmile se zastaví uložíme jeho vzdálenost od překážky do proměnné s2.
  • Použijeme operaci odčítání a ujetou dráhu autíčka zobrazíme na segmentovém displeji.

Důležitá poznámka:

Je třeba žáky upozornit na to, že vzdálenost naměřená ultrasonic senzorem se bude značně lišit od té skutečné. Senzory mBota jsou levné, a tudíž ne úplně přesné, komponenty.

Update programu:

Nechte jet mBcar vpřed po dobu například 5ti sekund a určete rychlost jeho pohybu ve všech třech režimech – slow, fast, fastes. Rychlost zaokrouhlete na celé km/h využitím příslušné matematické funkce Round.

Příklad #07 - řešení

Naprogramujte mBcar tak, aby se pohyboval dle schématu. Dvakrát se levotočivě „odrazil“ od překážky (krabice) a zastavil se, jakmile projede cílovou páskou (černá izolační páska).

Situace #01 - plán

Situace #01 - řešení

Naprogramujte mBcar tak, aby se pohyboval dle schématu. V prvém případě zahne před překážkou doprava, ve dvou zbylých případech doleva a zastavil se, jakmile projede cílovou páskou (černá izolační páska).

Situace #02 - plán
Situace #01 - řešení

Dopravní situace #n:

Další dopravní situace už přenecháváme na tvořivost učitele. Kombinací překážek v podobě krabic a jízdních pruhů provedených izolační páskou lze vytvářet spoustu zajímavých úloh.

Poznámka autor: Analogie historicky proslulé škody řady MB.