Lekce 21 - Rozšíření ve Scratchi podruhé
V předchozím kvízu, Kvíz - Práce s postavami a bloky rozšíření ve Scratchi, jsme si ověřili nabyté zkušenosti z předchozích lekcí.
V dnešním tutoriálu si představíme další rozšíření pro tvorbu aplikací ve Scratchi. Popíšeme si bloky pro práci s videem, čtení a překládání textu a bloky rozšíření Makey Makey. Rozšíření pro práci s textem si poté vyzkoušíme na praktickém příkladu, v němž uděláme z kočičáka překladatele.
Vnímání videa
Rozšíření pro práci s videem nám bude fungovat, jen pokud máme k počítači připojenou webkameru. Potom díky němu můžeme reagovat na pohyb před kamerou a pracovat s ním. Když si rozšíření přidáme do projektu, prohlížeč se nás nejdříve zeptá, zda chceme povolit přístup k webkameře. Ten povolit musíme, protože bez přístupu ke kameře bude rozšíření stejně bezradné, jako bychom žádnou kameru neměli:
Pojďme si teď představit bloky, které nám rozšíření nabízí.
Blok při pohybu na videu >
Pomocí tohoto bloku detekujeme pohyb na videu:
Rozpoznání pohybu funguje tak, že se porovnávají jednotlivé snímky
videa. Ty se pořizují velmi rychle za sebou a rozdíl mezi nimi je vyjádřen
číslem. Pokud například na videu jen trochu pohneme tužkou, bude rozdíl
vyjádřen hodnotou 20
. Když pak před kamerou budeme rychle
mávat rukou, bude rozdíl dosahovat i maximální hodnoty, což je
100
🙂
V bloku nastavujeme hodnotu pohybu. Pokud je aktuální rychlost pohybu větší než námi zadaná hodnota, spustí se bloky, které za tento blok přidáme.
Blok video pohyb/směr na postava/scéna
Tento blok vrací hodnotu pohybu nebo směru na postavě a scéně. Pokud v
něm nastavíme pohyb
a postava
, detekce bude
probíhat jenom v místech, kde je postava. Když naopak zadáme místo hodnoty
postava
hodnotu scéna
, dojde k rozpoznání pohybu na
celé scéně.
Když pak změníme první parametr bloku na směr
, budeme
schopni určit, kterým směrem se objekty hýbou. Záporné
hodnoty tu představují pohyb vlevo, kladné
hodnoty dostaneme při pohybu vpravo. Opět platí,
že čím větší je absolutní hodnota měřeného pohybu, tím je
rychlejší:
Blok zapni / vypni / na převrácené straně video
Dalším blokem měníme stav obrazu z webkamery. Máme v něm možnost kameru vypnout, zapnout nebo nahrávání zrcadlově převrátit:
Blok nastav průhlednost videa na
Posledním blokem nastavujeme průhlednost videa. Hodnotou
0
zajistíme, že video bude úplně viditelné na pozadí scény.
Nastavením hodnoty 100
výstup videokamery na pozadí scény
úplně skryjeme:
Čtení textu
Pomocí rozšíření Text na hlas převedeme psaný text na mluvené slovo.
Blok řekni
Do tohoto bloku zadáváme text, který chceme přečíst nahlas:
Blok nastav hlas na
Dalším blokem měníme hlas, kterým se bude text číst:
Na výběr máme z pěti možností:
- alt – ženský hlas,
- tenor – mužský hlas,
- kvik – hlas jako po použití helia,
- obr – ještě hlubší mužský hlas,
- kotě – místo čtení textu uslyšíme mňoukání podle zadaného počtu slov 😅
Blok nastav jazyk na
Posledním blokem rozšíření Text na hlas nastavujeme jazyk, kterým se zadaný text přečte:
Mezi dvaceti jazyky bohužel chybí čeština a slovenština. Budeme si tedy muset vystačit se znalostí jiných jazyků, jako je angličtina, němčina, španělština a další. Český text můžeme nechat přečíst jiným jazykem, dosáhneme tak celkem vtipných výsledků. Takový výstup pak působí, jako by měl náš kočičák silný přízvuk 🙂
České texty čte kočičák nejlépe, když má jako jazyk nastavenou polštinu.
Překládání textu
S rozšířením Překlad zvládneme přeložit text do zadaného jazyka. Zde už nechybí ani čeština a slovenština. Přidáním tohoto rozšíření do projektu ve Scratchi budeme mít k dispozici pouze dva bloky.
Blok přelož do
Jediný funkční blok z celého rozšíření je blok přelož do:
Do bloku jednoduše zadáme text k přeložení a vybereme některý z jazyků, které máme k dispozici.
Blok jazyk
Druhý blok obsahuje proměnnou, ve které je uložen jazyk, jejž máme nastavený ve vývojovém prostředí Scratche:
Jazykové nastavení můžeme upravit kliknutím na ikonu zeměkoule na hlavním panelu a výběrem nového jazyka z nabídky, jak jsme si ukazovali v lekci Popis vývojového prostředí Scratche.
Reakce na stisknutí klávesy
Díky rozšíření Makey Makey lze reagovat na stisk klávesy během spuštěného programu. Rozšíření opět obsahuje pouze dva bloky.
Makey Makey je původně kreativní elektronické zařízení navržené tak, aby spojilo každodenní předměty s klávesami počítače. Pomocí desky plošných spojů, svorek a kabelu USB umožňuje generovat elektrické signály, které pak používá k simulaci stisku klávesy nebo kliknutí myši.
Blok když je stisknuta klávesa
Tento blok detekuje stisknutí klávesy nezávisle na chodu programu:
Když jsme si v lekci Vnímání ve Scratchi představovali bloky z kategorie Vnímání, byl mezi nimi dostupný blok klávesa stisknuta. Tento blok bylo ovšem možné použít pouze v nějaké podmínce. Pokud jsme tedy chtěli během chodu programu reagovat na stisk klávesy, museli jsme pro něj vytvořit podmínku a vložit ji do cyklu opakuj stále.
Blok když je stisknuta klávesa z rozšíření Makey Makey už má cyklus v sobě, takže kdykoliv stiskneme vybranou klávesu, blok provede zadaný kód. Z kláves máme na výběr mezerník, šipky a pouze šest písmen klávesnice.
Blok když stisknuto postupně
Ještě více nám práci usnadní tento druhý blok. Díky němu budeme schopni reagovat nejen na stisk klávesy, který může přijít kdykoliv, ale na vybrané posloupnosti stisku kláves. V nabídce obsahuje různé kombinace stisku šipek. Kód přidaný k tomuto bloku se tedy provede například pouze v případě, že za sebou stiskneme šipku nahoru, vpravo, dolů, vlevo a tak dále. Nevýhodou je, že nelze přidávat vlastní posloupnosti a kombinace jsou omezeny jenom na směrové šipky:
Kocour překladatel
Protože ne každý má webkameru a bloky z rozšíření Makey Makey jsou vhodné spíše na tvorbu her, pojďme si vyzkoušet využití bloků z rozšíření Text na hlas a Překlad. Z našeho kočičáka si tedy uděláme překladatele 🙂
Přeložení zadaného textu
Nejprve vezmeme startovní blok a umístíme za něj cyklus opakuj stále:
Vytvoříme si také tři proměnné – JAZYK
,
TEXT
a VYSLEDEK
. Do cyklu umístíme dvě otázky a
dva bloky nastav na tak, aby se střídaly. Do bloků pro otázky
napíšeme text Do jakého jazyka chceš přeložit?
a
Co chceš přeložit?
. Bloky nastavující proměnnou budou
nastavovat proměnnou JAZYK
a potom TEXT
vždy na
hodnotu odpověď
:
Vezmeme blok přelož do a vložíme do něj proměnné
TEXT
a JAZYK
(v tomto pořadí). Tento celý blok
vložíme do bloku nastav na, který bude nastavovat proměnnou
VYSLEDEK
. Celý blok přidáme za stávající bloky v cyklu:
Dále doplníme blok bublina sekund s proměnnou
VYSLEDEK
. Takto zajistíme, že se nám vypíše přeložený
text:
Přečtení přeloženého textu
Potom vezmeme blok nebo a na obě strany přidáme bloky rovná
se. V obou blocích doplníme nalevo proměnnou JAZYK
a
napravo napíšeme čeština
a slovenština
. Celý
blok dáme do bloku když tak a do těla podmínky vložíme blok
nastav jazyk na s hodnotou Polština
. Celou podmínku
přidáme za stávající bloky do cyklu. Za podmínku ještě umístíme blok
řekni s hodnotou VYSLEDEK
:
Když program spustíme, kočičák opravdu překládá text do námi vybraného jazyka a přeložený text nám také přečte. Pokud ve spuštěné ukázce zadáme jako jazyk češtinu nebo slovenštinu, přečte přeložený text polsky. Kdybychom zadali neexistující jazyk, přeloží zadaný text do angličtiny:
Celý program je opět ke stažení v archivu lekce.
V následujícím cvičení, Řešené úlohy k 20.-21. lekci Scratche, si procvičíme nabyté zkušenosti z předchozích lekcí.
Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 7x (42.6 kB)
Aplikace je včetně zdrojových kódů v jazyce Scratch