CyberPi kniha

Site: Virtuálna Univerzita Mateja Bela
Course: Zábavné programovanie
Book: CyberPi kniha
Printed by: Visiteur anonyme
Date: Friday, 5 June 2026, 10:15 AM

1. Zoznámenie so CyberPi

CyberPi je jednodoskový počítač plne vybavený pokročilými elektronickými senzormi, akčnými členmi a komunikačnými modulmi. Je to jeden z najlepších nástrojov na výučbu umelej inteligencie, dátovej vedy, sietí a internetu vecí. Zariadenie je výkonné, no cenovo dostupné a vhodné do každej učebne. V kombinácii pôsobivým editorom kódovania mBlock podporuje kódovací jazyk založený na blokoch ako aj textový programovací jazyk Python. CyberPi sa môže pripojiť k mnohým elektronickým komponentom tretích strán, vďaka čomu je vhodný pre rôzne nastavenia v triede a vzdelávacie scenáre.
 

1.1. Kľúčové vlastnosti

Kódovanie:

CyberPi v kombinácii s mBlock poskytuje pedagógom integrované riešenie pre výučbu s hardvérom aj softvérom. Umožňuje tiež pedagógom učiť viacero kódovacích jazykov, od blokového programovania až po Python.

Flexibilita:

CyberPi je kompatibilný s modelmi mBuild a množstvom elektronických komponentov tretích strán (napr. Arduino senzory, Servos, DCmotos atď.), vďaka čomu je vhodný pre rôzne nastavenia v triede a scenáre výučby.

1.2. Tlačidlá a senzory

CyberPi obsahuje niekoľko tlačidiel a senzorov:

  • Pohyblivý joystick - pohyb hore, dole, vpravo, vľavo a stlačenie páčky 
  •  Senzor na svetlo 
  • Mikrofón 
  • Farebný display 
  • Tlačidlo A - návrat 
  • Tlačidlo B - potvrdenie 
  • Domovské tlačidlo - návrat do hlavného menu 
  • USB C port - nabíjanie a prepojenie so zariadením
  • Reproduktor
  • Päťfarebný LED pásik - červená, oranžová, žltá, zelená a modrá farba
  • Zo spodnej strany môžeme vidieť aj 14 pinový port

2. Prostredie a jeho možnosti

CyberPi je možné programovať pomocou mBlocku založeného na blokoch ale aj textový programovací jazyk Python.

mBlock je možné používať v prehliadači, stiahnuť softvér do počítača alebo mobilného zariadenia.

  • Požiadavky:


Prostredie

  • Vrchná lišta

Vľavo obsahuje tlačidlo pre zmenu jazyka (ikona planéty), prácu so súborom (nový projekt, uloženie do PC, nahratie z PC, stiahnutie), uloženie (na náš makeblock účet) a zverejnenie. Na pravej strane môžeme nájsť užívateľskú príručku, ukážkové programy, prihlásenie sa (na účet makeblock) a prepnutie sa do Pythonu.

  • Scéna

Pod vrchnou lištou môžeme vidieť našu obrazovku alebo scénu. Toto pole nám ukazuje výsledok programovania. Rozmery sú rozmedzí x: -240 až 240 y: -180 až 180, pričom bod [0;0] sa nachádza v strede poľa. Vpravo môžeme vidieť aj tlačidlá stop a štart, ktoré nám spustia alebo zastavia ukážku kódu.

  • Nastavenia zariadenia, postáv a pozadia

Na spodnej časti môžeme pridávať zariadenia (v našom prípade CyberPi, ktoré musíme prepojiť pomocou programu mLink2), postavičky (z výberu alebo nahrať nové pomocou tlačidla pridať, mBlock má v ponuke vlastné postavy ale môžeme využívať aj postavy zo Scratchu, prípadne si nahrať alebo vytvoriť vlastné). Rovnako to platí aj o pozadiach. 

Link: https://mblock.makeblock.com/en-us/download/

2.1. Bloky CyberPi

  • Zvuk

Ako prvé môžeme vidieť bloky zamerané na zvuk. Naše postavy alebo ich akcie dokážu vydávať zvuk cez reproduktor umiestnený na dolnej časti CyberPi. 
  • LED

Druhá časť je zameraná na programovanie LED pása, ktorý obsahuje päť základných farieb. Tie vieme kombinovať a teda k dispozícii máme celú farebnú škálu. 
  • Display

Ďalšia sekcia je zameraná na všetko, čo sa nám zobrazí na obrazovke. Môžeme v tej nastaviť veľkosti štetca, jeho farbu aj veľkosť. Rovnako vieme vykresliť aj grafy.
  • Pohybový senzor

V tejto sekcii nájdeme bloky zamerané na pohybový senzor. CyberPi dokáže reagovať na nakláňanie pod rôznymi uhlami alebo aj na zatrasenie konzoly.
  • Vnímanie

Táto časť slúži na programovanie samotných tlačidiel a joysticku. Rovnako tu nájdeme bloky zamerané na vnímanie svetelného senzoru.
  • LAN

Predposledná sekcia je zameraná na miestnu sieť. Pokiaľ sa na nej nachádza viacero zariadení dokážu si medzi sebou posielať a prijímať správy.
  • AI a IoT

Ako poslenú sekciu máme AI a IoT (Internet of Things). Tieto bloky nám slúžia na pripojenie sa na sieť a zisťovať z nej informácie.

2.2. Bloky postáv a objektov

  • Pohyb

Ako prvé môžeme vidieť bloky zamerané na pohyb postavy alebo objektov. Pohyb je možný vpravo, vľavo, nahor a nadol pomocou súradníc x a y. Rovnako môžeme postavičkami aj otáčať v kruhu pomocou stupňov. 

  • Vzhľad

V ďalšej sekcii môžeme upravovať výzor našej postavy alebo objektu. Vieme tu nastaviť aj efekty, pozadia či zmenu kostýmu. Rovnako vieme "donútiť" postavu niečo povedať alebo ju nechať zmiznúť a znova sa objaviť. V tejto sekcii vieme aj nastaviť veľkosť postáv, s ktorými pracujeme.

  • Zvuk

Rovnako ako pri blokoch pre CyberPi aj pri postavách a objektoch vieme nastaviť prehrávanie zvukov. V ponuke máme predvolené zložku zvukov no môžeme si nahrať aj vlastné.

  • Udalosti

Táto sekcia patrí ku najdôležitejším. Vieme pomocou nich odštartovať či zastaviť sled udalostí. Veľmi dôležité bloky sú zamerané na prijímanie správ. Naša postavu dostane správu od tlačidla alebo zvuku CyberPi a na základe toho vie, čo má vykonať. Udalosti vieme spustiť aj pomocou kliknutia na štart (zelená vlajka).

  • Ovládanie

V tejto sekcii sa nachádzajú bloky zamerané na podmienky a cyklus. Podmienky nám slúžia na rozpoznanie konkrétnej udalosti, na základe ktorej naša postava alebo objekt reaguje podľa pokynov. Bloky poskytujú jednoduché aj zložené podmienky. Cyklus používame na opakovanie udalostí. Opakovať môžeme stále, pokým sa nesplní podmienka alebo niekoľkokrát podľa nášho zadania.

  • Vnímanie

Táto sekcia blízko súvisí s predchádzajúcou. Nachádzajú sa tu vyššie spomínané podmienky, ktoré zisťujú či nastal alebo nenastal nami zadaný jav.

  • Operácie

V ďalšej sekcii nájdeme matematické či logické operácie. Pomocou tých vieme sčítavať, odčítavať, násobiť a deliť. Rovnako tu nájdeme aj bloky na porovnávanie dvoch hodnôt (číselných aj znakových). Tieto bloky vieme vkladať do podmienok ale aj namiesto súradníc zo sekcie pohybu. Súčasťou sú aj bloky na generovanie náhodného čísla či delenie zo zvyškom, alebo zaokrúhľovanie

  • Premenné

Na prvý pohľad je táto sekcia prázdna. Musíme si najskôr našu premennú vytvoriť a pomenovať. Potom s ňou môžeme veselo pracovať. Slúži nám napríklad na počítanie bodov v hre. 

  • Moje bloky

Rovnako ako v predchádzajúcej sekcii aj táto je prázdny až kým si nevytvoríme a nepomenujeme náš nový blok. Tie nám slúžia na akcie, ktoré nie sú ponúknuté v predchádzajúcich sekciách. Bloky môžu byť zamerané na vstup (číselný alebo textový), logický alebo nápis.

3. Výskum

Ohľadom CyberPi bohužiaľ neexistujú žiadne výskumy. Odporúčam však sledovať vedecké stránky (researchgate, google scholar, databázy WoS, Scopus). Je len otázkou času, kedy nejaký pribudne. :)

4. Začiatočné úlohy

V tejto kapitole sa zoznámime s programovaním CyberPi v praxi. Nájdeme tu jednoduché úlohy a ich riešenia. 

4.1. Úloha 1

Naprogramujte postavu tak aby sa hýbala po stlačení páčky. Pri stlačení hore sa pohne niekoľko blokov v smere nahor. Pri stlačení dole nadol, vpravo sa pohne doprava a vľavo doľava.


Riešenie

4.2. Úloha 2

Nastav tlačidlo A a B a prideľ im ľubovoľnú farebnú kombináciu.


Riešenie

4.3. Úloha 3

Nastav tlačidlo B na dúhu, ktorú rozpohybuj! Použi cyklus opakuj stále. Potom nastav tlačidlo A na vypnutie všetkých LED svetiel


Riešenie

4.4. Úloha 4

Nastav tlačidlo A tak, aby donútili tvoju postavu pozdraviť sa. Podobne potom nastav tlačidlo B s ľubovoľným textom.


Riešenie

4.5. Úloha 5

Roztancuj svoju postavu! Po stlačení tlačila A alebo B začne tvoja postava meniť kostým. Použi cyklus s pevným počtom opakovaní. Aby tvoja postava netancovala veľmi rýchlo povedz jej aby počkala pred tým ako zmení kostým.


Riešenie

5. Zložitejšie úlohy

Teraz sa pozrieme na úlohy, ktoré sme vypracovali my. :) 

5.1. Úloha - Chudíková

Mojím cieľom bolo zreplikovať známu hru, ktorú môžeme nájsť v Google Chrome keď nemáme pripojenie na sieť. Teda mať postavičku, ktorá bude skákať cez prekážky.

Ako prvý krok som si vybrala postavu, prekážky a pozadie. Potom som si nastavila zariadenie CyberPi tak, aby mi posielalo správy po stlačení konkrétnych tlačidiel. Po stlačení páčky nahor vyšle správu SKOK, pri stlačení B vyšle správu PLAY, a po stlačení A zastaví celú hru. Vytvorila som si aj správu STOP, ktorá patrila prekážkam.

Rovno som si nastavila aj prijatie správ PLAY, STOP a stlačenie tlačidla A, tak aby mi LED pásik nastavil farby na zelená (pri PLAY) a červenú (pri správe STOP alebo stlačení A).


Ako ďalší krok, som začala nastavovať svoju postavu. Pridelila som jej úlohu po prijatí správy SKOK. Postava mi pomocou cyklu vyskočila hore a potom nadol. Taktiež som pridelila úlohy správe PLAY - postava mi skočila na súradnice v ľavom dolnom rohu a začala meniť kostým aby vyzerala, že sa pohybuje. Ako posledný krok som si vytvorila vlastnú premennú, ktorá mi počítala body.


V poslednom kroku som si nastavila prekážku. Po prijatí správy PLAY skočí na súradnice v pravom dolnom rohu a začne sa kĺzať smerom doľava. Tiež som nastavila podmienku čakania až kým sa nedotýka postavy. V tom prípade rozošle správu STOP, ktorá zastaví hru. Túto prekážku som duplikovala, pričom druhej prekážke som dodatočne prikázala aby sa schovala a zobrazila sa až po sekunde. 

 

5.2. Úloha - Ivanič

Slavo spravil kreslenie pomocou CyberPi. Úloha teda simuluje skicár.

Prvým krokom bolo podobne ako u mňa nastaviť tlačidlá a tým priradiť jednotlivé správy, ktoré budú posielať. Ako prvé spravil pohyb pomocou páčky - potiahnutím páčky hore sa postavička pohne smerom nahor, po potiahnutí dole smerom nadol, potiahnutím doprava smerom vpravo a potiahnutím smerom doľava smerom vľavo.

Tiež si nastavil tlačidlá A, B a tlačidlo samotnej páčky. Pri stlačení A sa vyšle správa pre zapnutie. Pri stlačení tlačidla B vypnutie a stlačenie páčky vyšle správu na potvrdenie farby.


Potom prešiel na programovanie postavičky a teda aj pera. Po stlačení vlajky sa pozadie vyčistí a pero skočí na súradnicami [0,0]. Farba pera sa taktiež nastaví na základnú teda čiernu. Tiež nastavil prijatie správ a ich funkcie zapnutie a vypnutie pera rovnako ako aj samotný pohyb nahor a nadol - zmena súradnice y o 10 alebo -10. Pohyb vpravo a vľavo funguje na rovnakom princípe - mení súradnicu x o 10 a -10.


Nakoniec nastavil prijatie správ na zmenu farby a hrúbky pera. V ľavom hore si spravil stĺpec, ktorý nám ponúka paletu farieb a ikonu + a - na zmenu hrúbky. Pomocou bloku na rozpoznávanie farby nastavil prijatie správy po stlačení stredného tlačidla páčky. Pokiaľ sa pero nachádzalo na danej farbe oznámilo farbu, ktorá bola zvolená a nastavilo ju. Rovnako nastavil aj zmenu hrúbku pera - ak sa pero nachádzalo na súradniciach danej ikony hrúbka pera sa zvýšila alebo znížila o 1.


5.3. Úloha - Dobrota

Rasťo sa rozhodol pre vytvorenie úlohy založenej na hadíkovi

Začal ako my a teda nastavil rozosielanie správ po stlačení tlačidiel. Pohyb je nastavený na páčku a jej potiahnutia daným smerom. Tiež nastavil tlačidlo B ako START s LED efektom. Podobne tiež nastavil prijatie správ pre koniec hry, ktoré vypíšu skóre na display obrazovky CyberPi.


Potom začal s nastavovaním postavy hada. Pohyb je založený na princípe menenia smeru o istý počet stupňov čím sa rozpohybuje v smere páčky. Taktiež nastavil aj rýchlosť hada a pomocou zisťovania koniec hry pri dotyku o kraj hracej plochy. Ako posledné nastavil klonovanie, ktoré umožnilo vytvorenie efektu rastu hada


Následne prišlo na programovanie prekážok - jablka, brokolice a baklažánu. Po dotyku hada o jablko sa zmení skóre o 10, zvýši sa rýchlosť a dĺžka hada. Jablko tiež odskočí na náhodnú pozíciu.


Ak sa had dotkne brokolice skóre sa zmenší o -10 a veľkosť hada o -1 klon. Rovnako ako jablko odskočí na náhodnú pozíciu.


Ako posledná prekážku je baklažán. Pri dotyku hada o tento objekt sa zastaví celá hra a konečné skóre je vypísane na obrazovku.