Skip to main content

Přidání druhého tlačítka na obrazovku mozku – založené na blocích

Ikona sady nástrojů pro učitele Sada nástrojů této aktivity

Nyní, když mají studenti zkušenosti s tím, jak zacházet s obrazovkou mozku jako s jedním velkým tlačítkem, mohou obrazovku proměnit ve dvě tlačítka. Tato aktivita seznámí studenty s používáním vnořených bloků [If then else] pro lepší správu podmíněných příkazů a se základní logikou, která je pro to důležitá. Studenti jsou nejprve proveditá sestavením projektu, kde sítotiskové lisy otáčejí robota doleva nebo doprava. Pak jsou ale požádáni, aby přepnuli tlačítka tak, aby to, co robota otočilo doleva, ho nyní otočilo doprava a naopak.

Více informací o blocích [If then]a[If then else] nebo o dalších blocích použitých v této aktivitě naleznete v nápovědě k VEXcode V5. Pro více informací o tomto vestavěném nástroji nápovědy kliknětesem.

Následuje přehled toho, co budou vaši studenti v této aktivitě dělat:

  • Prozkoumání projektuStopOrDrivea rozvržení obrazovky mozku v pixelech.

  • Vytváření nového projektuLeftOrRights průvodcem procesem programování.

  • Úprava projektu tak, aby tlačítka na obrazovce fungovala opačně.

  • Rozšiřte si učení: Rozdělení obrazovky na dvě tlačítka, která po stisknutí otáčejí robotem doleva nebo doprava.

Požadované materiály:
Množství Potřebný materiál
1

Startovací sada VEX V5 pro učebnu (s aktuálním firmwarem)

1

VEXcode V5 (nejnovější verze, Windows, macOS, Chromebook)

1

Technický poznámkový blok

1

Projekt StopOrDrive z předchozí stránky Play

Ikona sady nástrojů pro učitele Sada nástrojů pro učitele

Návrhy na strategie výuky pro tuto sekci naleznete v sloupci Výkon v Průvodci tempem úkolů, které je třeba udělat, či nikoliv! dokumentů Google .docx )

Obrazovka mozku může mít více než jedno tlačítko.

Tato aktivita vám umožní naprogramovat robota tak, aby jel vpřed a zatáčel doleva nebo doprava v závislosti na tom, která strana obrazovky mozku je stisknuta.

Během této aktivity budete potřebovat tři další typy bloků:

VEXcode V5 Blocks from the toolbox - a Turn block set to right; a less than operator; and a screen position set to x.

Informace o blocích najdete v nápovědě uvnitř VEXcode V5. Pokyny k používání funkce Nápověda naleznete v tutoriálu Používání nápovědy.

Panel nástrojů VEXcode V5 s červenou šipkou směřující na ikonu Návody. Návody jsou úplně vpravo za logem V5, ikonou zeměkoule a FIle.

 

Krok 1: Začněme přezkoumáním projektu StopOrDrive.

V projektu StopOrDrive se Clawbot zastavil při stisknutí obrazovky, jinak se pohyboval vpřed.
Celá obrazovka byla jedno velké tlačítko, ale v tomto dalším projektu chceme, aby polovina obrazovky byla jedno tlačítko a druhá polovina druhé.

Zastavit nebo řídit projekt z předchozí lekce. Projekt začíná blokem při spuštění s připojeným blokem Forever. Uvnitř bloku Forever je blok if then else, který čte, pokud je stisknuta obrazovka, pak zastavte jízdu; počkejte, dokud nebude obrazovka stisknuta. Jinak jeď dopředu.

Abychom mohli obrazovku rozdělit na dvě tlačítka, musíme se dozvědět více o rozložení obrazovky.

Pixelová mřížka obrazovky V5 Brain zobrazuje 12 očíslovaných řádků podél levé strany, přičemž horní řádek je označen jako Řádek 1 a spodní řádek je označen jako Řádek 12. V horní části je 48 očíslovaných sloupců, přičemž sloupec 1 je označen úplně vlevo a sloupec 48 je označen úplně vpravo. Celková velikost pixelů je 480 pixelů široká a 240 pixelů vysoká.

  • Všimněte si, že se počet sloupců zleva doprava zvyšuje. Počet sloupců je 48 a obrazovka je široká 480 pixelů.
  • Do technického poznámkového bloku si zapište, že hodnota x na obrazovce se rovná počtu pixelů naměřených zleva doprava.
  • Jaká je hodnota x středu obrazovky? Pro tuto aktivitu se můžete soustředit pouze na osu x, protože potřebujete pouze levé a pravé tlačítko.

Ikona sady nástrojů pro učitele Sada nástrojů pro učitele – odpověď

Hodnota x ve středu obrazovky se rovná polovině šířky obrazovky v pixelech. Takže hodnota x středového bodu je 240. Studenti budou toto číslo potřebovat k naprogramování podmínky pro to, zda se obrazovka stiskne vlevo nebo vpravo. Proto si nezapomeňte ověřit, zda všechny mají správnou hodnotu.

V rámci Výzvy uživatelského rozhraní v sekci Přehodnocení budou studenti muset aplikovat své znalosti k vytvoření čtyř tlačítek na obrazovce. Takže k tomu budou potřebovat hodnoty x i y.

Ikona tipů pro učitele Tipy pro učitele

Pokyny studenty dle potřeby nasměrují k tutoriálům v rámci VEXcode V5. Další pomoc naleznete v doplňujících článcích nápovědy v knihovně.

Krok 2: Programování pro dvě tlačítka

  • UložteStopOrDrivejako projektLeftOrRight.
  • Nezapomeňte, že pokud potřebujete pomoc s otevíráním, pojmenováváním nebo ukládáním projektů, podívejte se na návody ve VEXcode V5.

Dialogové okno Název projektu v panelu nástrojů VEXcode V5 čte vlevo nebo vpravo. Vlevo je vybrána štěrbina 3 a vpravo panel nástrojů s nápisem Uloženo.

  • Sestavte níže uvedený projekt. Při stisknutí obrazovky se bude Clawbot otáčet doleva nebo doprava v závislosti na straně, na které je stisknut.

Projekt VEXcode V5 začíná blokem při spuštění s připojeným blokem forever, Uvnitř věčné smyčky jsou vnořené bloky else. Větev If prvního bloku if then else přečte stisknutou obrazovku If. Blok if then else vnořený do větve If větve čte If screen x position less than 240, pak otočte doleva a počkejte, dokud nebude obrazovka stisknuta; jinak otočte doprava a počkejte, dokud nebude obrazovka stisknuta. Vnější větev else obsahuje bloky pohonu vpřed.

Ikona sady nástrojů pro učitele Nástroje pro učitele - Proč vnořovat bloky If Then Else?

Kostra projektu (pouze řídicí bloky) obsahuje vnořené bloky: a blok [If then else] uvnitř bloku [If then else] uvnitř smyčky [Forever]. To se může zdát složitější, než je nutné, protože byste místo toho mohli použít sekvenční bloky [If then]. Používání sekvenčních bloků [If then] však není dobrou programátorskou praxí.

Zleva doprava jsou zobrazeny tři kódovací struktury. Struktura vlevo má nad sebou červený křížek, který označuje problém s řadou vnořených bloků if-then. Uprostřed je struktura prázdných bloků C zobrazující vnořené bloky if then else. Vpravo je struktura vyplněna, aby se ukázalo, že stejné chování lze provést jednodušší formou.

Zamítnutý projekt vlevo je sekvenčně podmíněná verze našeho projektu LeftOrRight. Pokud je stisknuta obrazovka a hodnota x je menší než 240, Clawbot se otočí doleva. Pokud je stisknuta obrazovka a hodnota x je větší než 240, Clawbot se otočí doprava. Problém s tímto projektem je, že riskuje, že budou splněny obě podmínky. Kdykoli použijete sekvenční bloky [If then], riskujete vytvoření chyb v projektu, protože může existovat více než jeden pravdivý podmíněný příkaz. Chyby vedou k nepředvídatelnosti.

Uprostřed je kostra projektu LeftOrRight a vpravo je projekt zobrazen s některými vloženými podmíněnými příkazy a bloky Drivetrain. Logika v této verzi projektu je mírně odlišná. Pokud/při stisknutí obrazovky je hodnota x buď menší než 240 (otočení doleva), nebo není menší než 240 (otočení doprava). Nepotřebujeme tam další podmíněný příkaz. Jakmile se obrazovka stiskne, je buď menší než 240, nebo ne. Máme se zabývat jen dvěma tlačítky. Všimněte si, že projekt vpravo je stále nedokončený.

Studenti musí pochopit rozdíly mezi těmito dvěma přístupy k projektu. Pochopení rozdílů v základní logice bude velkým přínosem pro vývojáře.

Levý nebo pravý projekt je rozdělen s funkčností bloků v projektu označených. Větev navždy a vnější větev, pokud je obrazovka stisknuta, jsou označeny jako Udržuje kontrolu, pokud je obrazovka stisknuta. Vnitřní, pokud je větev označena při stisknutí obrazovky, zkontroluje, zda je vlevo nebo vpravo. Další odbočka vlevo je označena jako If press was on the left (less than 240), turns left. Před pokračováním počkejte, dokud nebude označen blok, počkejte, dokud nebude obrazovka již stisknuta. Blok odbočení vpravo je označen, pokud lis nebyl vlevo (méně než 240), otočí se vpravo. Další čekání na označení bloku před pokračováním počká, dokud nebude obrazovka již stisknuta. Vnější větev else s blokem pohonu vpřed je označena Pokud obrazovka není stisknuta, jede dopředu.

  • Pojďme se podívat, co tento projekt dělá.

    Neustále kontroluje, zda je stisknuta obrazovka. Pokud obrazovka není stisknuta, jede dopředu, ale pokud ano, kontroluje, kde je obrazovka stisknuta.

    Pokud byl stisk na levé straně (méně než 240), otočí se doleva. V opačném případě se otočí doprava. Nepotřebujeme další podmínku, když je hodnota x větší než 240, protože pokud není menší než 240 (odbočit vlevo), musí být větší (otočit vpravo). Máme se starat jen o dvě tlačítka.

    Tlačítkačekají, dokudOvládací bloky po každém tahu nechávají projekt čekat, dokud se obrazovka již netlačí, než bude pokračovat.

Panel nástrojů ve VEXcode V5 s červeným rámečkem kolem tlačítka pro stažení. Ikony zobrazují zleva doprava položky Controller, Brain, Download, Run, Stop a Share.

  • Nyní, když je projekt hotový, jej stáhněte a spusťte, abyste otestovali, jak funguje.
  • Pro nápovědu se podívejte na výukové video ke stažení a spuštění projektu ve VEXcode V5.
  • Dělejte si poznámky do svého technického poznámkového bloku o tom, jak tlačítka ovládají pohyby Clawbota.

Ikona tipů pro učitele Tipy pro učitele

Během testování by si studenti měli uvědomit, že uživatelské rozhraní, když se používá za Clawbotem, funguje zdánlivě obráceně. Z pohledu uživatele se Clawbot odvrací od strany, na kterou uživatel tlačí. To není optimální uživatelská zkušenost.

Při stisknutí tlačítek obrazovky zpoza Clawbota, když jel dopředu, jste stiskli na pravé straně obrazovky, abyste se otočili doleva, a na levé straně obrazovky, abyste se otočili doprava. To není dobrá uživatelská zkušenost. Uživatelská zkušenost je to, jak dobře může uživatel komunikovat s uživatelským rozhraním pro ovládání počítačového systému. Více informací o uživatelských rozhraních naleznete v části Aplikace tohoto cvičení.

V tomto případě musíme vylepšit uživatelské rozhraní, abychom zlepšili uživatelskou zkušenost.

Levý nebo pravý projekt VEXcode V5. Projekt VEXcode V5 začíná blokem při spuštění s připojeným blokem forever, Uvnitř věčné smyčky jsou vnořené bloky else. Větev If prvního bloku if then else přečte stisknutou obrazovku If. Blok if then else vnořený do větve If větve čte If screen x position less than 240, pak otočte doleva a počkejte, dokud nebude obrazovka stisknuta; jinak otočte doprava a počkejte, dokud nebude obrazovka stisknuta. Vnější větev else obsahuje bloky pohonu vpřed.

  • Zkontrolujte projekt LeftOrRight a upravte jej tak, aby se při stisknutí tlačítek zpoza Clawbota robot otočil doprava, když uživatel stiskne levou stranu obrazovky. Nebo Clawbot zahne doleva.
  • Naplánujte, otestujte a opakujte tento projekt ve svém technickém notebooku tak, aby projekt přiměl Clawbota otočit se směrem ke straně obrazovky, kterou uživatel tlačí zpoza Clawbota.

Ikona sady nástrojů pro učitele Sada nástrojů pro učitele

Studenti by měli tyto změny v projektu plánovat, testovat a vylepšovat a zároveň je dokumentovat ve svých technických sešitech. Pro individuální rubriku technických sešitů klikněte na jeden z následujících odkazů (Google Doc / .docx / .pdf) nebo klikněte na jeden z následujících odkazů pro týmové sešity (Google Doc / .docx / .pdf). Než začnou pracovat, nezapomeňte studentům vysvětlit bodování.

Ikona sady nástrojů pro učitele Sada nástrojů

Existují dva možné způsoby, jak vyřešit výše uvedený problém. První způsob je ten, který je napsán v instrukcích: Zkontrolujte projekt LeftOrRight a upravte ho tak, aby se robot při stisknutí tlačítek za Clawbotem otočil doprava, když uživatel stiskne levou stranu obrazovky. Nebo se Clawbot otočí doleva.

Ukázkové řešení VEXcode V5 začíná blokem When started s připojeným blokem forever. Uvnitř bloku forever jsou vnořené bloky If then else. Vnější blok if then else čte, zda byla stisknuta obrazovka; else se pohybuje vpřed. Ve větvi If blok if then else čte: pokud pozice x obrazovky menší než 240, pak otočte doprava, jinak otočte doleva.

Druhým řešením je přepnout blok Operator tak, aby se Clawbot otočil doleva, když je hodnota x větší než 240.

Ukázkové řešení VEXcode V5 začíná blokem When started s připojeným blokem forever. Uvnitř bloku forever jsou vnořené bloky If then else. Vnější blok if then else čte, zda byla stisknuta obrazovka; else se pohybuje vpřed. Ve větvi If blok if then else čte, pokud pozice obrazovky x větší než 240, pak otočte doleva, jinak otočte doprava.

Ikona motivační diskuse Motivovat diskusi

Při programování podmíněného příkazu pro situaci, kdy byla hodnota x menší než 240 (levá strana obrazovky), jste potřebovali použít souřadnice ze souřadnicové roviny. Aby se na obrazovce mozku zobrazovala vizuální tlačítka, museli byste také použít souřadnice.
Vraťte se ke kroku 2, kde jste viděli souřadnice obrazovky robotického mozku V5.

Pixelová mřížka obrazovky V5 Brain zobrazuje 12 očíslovaných řádků podél levé strany, přičemž horní řádek je označen jako Řádek 1 a spodní jako Řádek 12. V horní části je 48 očíslovaných sloupců, přičemž sloupec 1 je označen úplně vlevo a sloupec 48 je označen úplně vpravo. Celkové rozměry v pixelech jsou 480 pixelů na šířku a 240 pixelů na výšku.

Otázka:Jaká je hodnota x na pravém okraji obrazovky?
Odpověď:Hodnota x se zvyšuje od 0 na levém okraji do 480 na pravém okraji.

Otázka:Rozsah hodnoty x je tedy 480 (0 až 480). Jaký je rozsah hodnoty y?
A:Rozsah hodnoty y je 240 (0 až 240).

Q:Kde je počátek (0, 0) této souřadnicové roviny?
A:Počátek je v levém horním rohu.

Q:Jste v horní části obrazovky, když je hodnota y rovna 0. Proč je to neobvyklé?
A:Obvykle se hodnota y zvyšuje s pohybem nahoru, ale na obrazovce V5 se hodnota y zvyšuje s pohybem dolů. Můžete si to ale představit jako rostoucí hodnotu y, když se vzdalujete od počátku (0, 0) v levém horním rohu obrazovky.

Ikona Rozšiřte si učení Rozšiřte si své znalosti

V rámci Výzvy uživatelského rozhraní v sekci Přehodnocení budou studenti požádáni o vytvoření projektu, který na obrazovce vytvoří čtyři tlačítka pro ovládání drápu a paže Clawbota. Pro tuto výzvu jsou také požádáni, aby si na obrazovce zobrazili tato čtyři tlačítka. Tato příručka „Rozšíření znalostí“, stejně jako na předchozích stránkách, jim pomůže připravit se na danou výzvu, protože tato výzva má čtyři tlačítka k naprogramování a tato má pouze dvě.

Nechte studenty přidat do programu událost, aby se na obrazovce při spuštění projektu vykreslila dvě viditelná tlačítka. Doporučte studentům, aby pro informace o blocích Události a Vzhledy, zejména o informacích o bloku [Kreslení obdélníku], použili funkci Nápověda ve VEXcode V5. Nechte studenty zopakovat, jak je obrazovka mozku uspořádána do souřadnicového systému na základě počtu pixelů při použití bloku [Kreslení obdélníku]. Budou to muset pochopit, aby mohli v daném bloku nastavit parametry. Kromě toho budou muset pochopit, jak vysílat události. V tomto případě se jedná o kreslení tlačítek.

Studenti by měli tyto změny v projektu naplánovat, otestovat a vylepšit a zároveň je zdokumentovat ve svých technických sešitech. Pro individuální rubriku technických sešitů klikněte na jeden z následujících odkazů (Google Doc / .docx / .pdf) nebo klikněte na jeden z následujících odkazů pro týmové sešity (Google Doc / .docx / .pdf).

Zde je příklad řešení:

Ukázkové řešení VEXcode V5 se dvěma vrstvami bloků vedle sebe. Zásobník vlevo začíná blokem when started a zobrazuje blok tlačítka Broadcast Draw přidaný na začátek projektu Left nebo right, mezi blok when started a smyčku forever. Zásobník vpravo začíná blokem události When I receive Draw Button, po kterém následují čtyři bloky Looks s textem Set fill color to green on Brain; draw rectangle 0, 0, 240, 240; set fill color to purple on Brain; a draw rectangle 240, 0, 480, 240 on Brain.

Pro ještě realističtější zážitek z praxe požádejte studenty, aby se zeptali spolužáků na jejich výběr dvou barev.
Vzbuzují ve vás vybrané barvy touhu používat rozhraní, nebo které barvy by jako uživatelé preferovali?
Součástí vývoje skvělého uživatelského rozhraní je shromažďování dat o uživatelské zkušenosti, a to i o estetických preferencích.