Robotika › Robotcsapat › Leckék

ROBOTIKA · ELEMENTARY · WORD BLOCKS

Leckék – Word Blocks

Az Elementary csapatok leckéi lépésről lépésre, blokkos programokkal. Saját blokkokat építetek, amelyekből minden versenyfeladat összerakható.

← Vissza a Robotcsapat-felületre

Hogyan használjátok ezt az oldalt?

A pontos robot nem egyetlen ügyes program, hanem 8–10 megbízható saját blokk (My Blocks), amelyekből minden küldetés összerakható. Itt ezeknek a receptjei vannak a SPIKE App szóblokkos (Word Blocks) programozásához.

  • Saját munka: a recepteket ti rakjátok össze blokkokból, a saját robototokra hangoljátok, és el tudjátok magyarázni – így feleltek meg a WRO szabályának is.
  • Jelölés: a receptekben a VASTAG NAGYBETŰ = változó; zárójelben az angol blokknév, ha a SPIKE App angolul fut. A blokkokba tizedespontot írjatok (17.6).
  • Portok: a példákban B = bal hajtómotor, F = jobb hajtómotor, C = bal színszenzor, D = jobb színszenzor, A = karmotor. Írjátok át a saját portjaitokra.
  • Irányszabály: a robot iránya fokban, jobbra pozitív. A startnál 0°, jobbra fordulva 90°, balra −90°, megfordulva 180°. Minden fordulás egy ilyen abszolút irányra céloz – így a hibák nem adódnak össze.
  • Sorrend: START → EGYENES → FORDUL → igazodás → VONALKÖVET → KAR → SZÍNOLVAS. Egyet építsetek meg, mérjétek ki, és csak utána jöjjön a következő.

Hogyan működik a szabályozás?

1. Mérgiroszkóp vagy színszenzor
2. Hibát számolHIBA = cél − mért érték
3. Kormányozannál erősebben, minél nagyobb a hiba (HIBA × szorzó)
4. Elég közel?Ha igen: állj meg. Ha nem: vissza az 1-re.

Minden pontos blokk így működik. A FORDUL, a VONALKÖVET és a KAR ugyanez a kör, csak más szenzorral.

0

START és a két segédblokk

🎯 Cél

Minden programot a START blokkal kezdtek: beállítja a motorokat, nyugalomban nullázza a giroszkópot, és lenullázza a kart. A két segédblokk kiszámolja, merre néz a robot, és mennyivel tér el a céltól.

🆕 Új szavak

KERÜLET
a kerék kerülete cm-ben (56 mm-es keréknél 17.6).
E (előjel)
1 vagy −1: ettől lesz minden blokkban a jobbra fordulás pozitív.
OFFSET
javítás: ennyivel tolja el a mért irányt az IRÁNYJAVÍTÁS.
yaw szög
a giroszkóp által mért irány.
IRÁNY_MÉR, HIBA_SZÁMOL
segédblokkok: a két „ha” sor miatt a robot mindig a rövidebb úton fordul, és a 180°-os irány sem okoz ugrást.

💻 A program

⌨️ Mindent ti raktok össze blokkokból. A receptet a „Másolás” gombbal kimásolhatjátok egy jegyzetbe, hogy a gép mellett legyen.

💻 START9 sor
Szóblokk-recept (Word Blocks)
START  (amikor a program elindul)
  mozgásmotorok legyenek B + F          (set movement motors to B+F)
  1 motorfordulat legyen 17.6 cm        (set 1 motor rotation to 17.6 cm)
  KERÜLET = 17.6
  E = 1                                 (előjelpróba után 1 vagy -1)
  OFFSET = 0
  várj 0.5 mp-et                        (a robot álljon mozdulatlanul!)
  yaw szög legyen 0                     (set yaw angle to 0)
  KAR_NULLA
💻 IRÁNY_MÉR és HIBA_SZÁMOL10 sor
Szóblokk-recept (Word Blocks)
IRÁNY_MÉR   (saját blokk, nincs bemenete)
  MOST = (yaw szög) × E + OFFSET
  ha MOST > 180  akkor  MOST = MOST - 360
  ha MOST < -180 akkor  MOST = MOST + 360

HIBA_SZÁMOL (cél)
  IRÁNY_MÉR
  HIBA = cél - MOST
  ha HIBA > 180  akkor  HIBA = HIBA - 360
  ha HIBA < -180 akkor  HIBA = HIBA + 360
💻 IRÁNYJAVÍTÁS3 sor
Szóblokk-recept (Word Blocks)
IRÁNYJAVÍTÁS (valódi)       – akkor hívjuk, amikor biztosan tudjuk, merre néz a robot
  yaw szög legyen 0
  OFFSET = valódi

Példa: a robot hátával nekitolat a pálya falának, és tudjátok, hogy ilyenkor pontosan a 90°-os irányba néz. Ekkor IRÁNYJAVÍTÁS 90 – a giroszkóp addig összegyűlt hibája eltűnik.

✏️ Feladatok

  • Előjelpróba (egyszer kell): írassátok ki a hubra a yaw szöget, és forgassátok kézzel jobbra a robotot. Ha a szám pozitív lesz, E = 1, ha negatív, E = -1.
  • Építsétek meg a START-ot és a két segédblokkot saját blokként (My Blocks).

📏 Mérjétek meg!

Indítsátok el a START-ot, majd forgassátok a robotot kézzel jobbra 90°-ra. Az IRÁNY_MÉR 90 körüli számot ír ki? Balra fordítva −90 körülit?

1

EGYENES – giroszkóppal, adott irányban

🎯 Cél

A robot menet közben folyamatosan méri, mennyire tér el a kívánt iránytól, és a hibával arányosan visszakormányoz. Ezért akkor is egyenesen megy, ha az egyik motor kicsit gyengébb, vagy a szőnyeg hullámos.

🆕 Új szavak

CÉLFOK
hány fokot forduljon a kerék: cm × 360 / KERÜLET.
KORR (korrekció)
HIBA × 2: ennyivel lassítjuk az egyik és gyorsítjuk a másik kereket.
abs
abszolút érték. A bal motor tükrözve van beépítve, ezért előremenetben a pozíciója negatív.
EGYENES_LÁGY
lassan indul, felgyorsul, a cél előtt lelassít: induláskor nem csúszik meg a kerék, és a végén nem viszi túl a lendület.

💻 A program

💻 EGYENES8 sor
Szóblokk-recept (Word Blocks)
EGYENES (cm, seb, irány)
  B relatív pozíciója legyen 0              (set relative position to 0)
  CÉLFOK = cm × 360 / KERÜLET
  ismételd, amíg  abs(B relatív pozíciója) > CÉLFOK      (repeat until)
      HIBA_SZÁMOL irány
      KORR = HIBA × 2                        (KP_EGYENES, hangolandó)
      induljon:  bal = seb + KORR,  jobb = seb - KORR    (start moving at % % speed)
  állj meg                                   (stop moving)
💻 EGYENES_LÁGY15 sor
Szóblokk-recept (Word Blocks)
EGYENES_LÁGY (cm, seb, irány)
  B relatív pozíciója legyen 0
  CÉLFOK = cm × 360 / KERÜLET
  MEGTETT = 0
  ismételd, amíg  MEGTETT > CÉLFOK
      MEGTETT = abs(B relatív pozíciója)
      S = seb
      GYORS = 15 + MEGTETT × 0.2
      LASS  = 10 + (CÉLFOK - MEGTETT) × 0.2
      ha GYORS < S akkor S = GYORS
      ha LASS  < S akkor S = LASS
      HIBA_SZÁMOL irány
      KORR = HIBA × 2
      induljon:  bal = S + KORR,  jobb = S - KORR
  állj meg

A 0.2-es szorzókkal a robot 50%-ra kb. 9 cm alatt gyorsul fel, és az utolsó kb. 10 cm-en lassul le (56 mm-es keréknél).

✏️ Feladatok

  • Hátrafelé: negatív sebességgel (pl. EGYENES 30, -40, 0) – a korrekció ugyanúgy működik.
  • Miért irány, és nem „egyenesen”? Mert ha egy fordulás 1°-kal pontatlan volt, az EGYENES a következő szakaszon magától kijavítja.

📏 Mérjétek meg!

200 cm-es út közben finoman lökjétek oldalra a robotot – vissza kell találnia az eredeti irányba. Cél: 2 m-en 1 cm-nél kisebb oldalirányú eltérés.

2

FORDUL – abszolút irányra

🎯 Cél

A FORDUL nem „ennyi fokot fordul”, hanem egy irányba áll be (pl. 90°). Messziről gyorsan fordul, a cél közelében arányosan lassít, és 1°-on belül áll meg.

🆕 Új szavak

S
a fordulás sebessége: HIBA × 0.7.
legnagyobb sebesség
40%: gyorsabban megcsúszna a kerék.
legkisebb sebesség
10%: enélkül a robot megállna a cél előtt.
helyben fordulás
a két kerék ellentétesen forog, így a robot közepe nem mozdul el.

💻 A program

💻 FORDUL12 sor
Szóblokk-recept (Word Blocks)
FORDUL (cél)
  HIBA_SZÁMOL cél
  ismételd, amíg  abs(HIBA) < 1
      HIBA_SZÁMOL cél
      S = HIBA × 0.7                       (KP_FORDUL, hangolandó)
      ha S > 40   akkor S = 40             (legnagyobb sebesség)
      ha S < -40  akkor S = -40
      ha (S > 0) és (S < 10)   akkor S = 10    (legkisebb sebesség:
      ha (S < 0) és (S > -10)  akkor S = -10    e nélkül megállna a cél előtt)
      induljon:  bal = S,  jobb = -S
  állj meg
  várj 0.15 mp-et

✏️ Feladatok

  • Egy keréken fordulás (szűk helyen, fal mellett): bal = 2 × S, jobb = 0 – ilyenkor a robot közepe elmozdul, ezt az útvonaltervben számolni kell.
  • Fordulás balra: negatív cél, pl. FORDUL -90. Megfordulás: FORDUL 180.

📏 Mérjétek meg!

Négyzet: 4 × (EGYENES 30 cm, FORDUL a következő irányra: 90, 180, −90, 0). A végén a robot ±1°-on belül nézzen a kiinduló irányba, és 1 cm-en belül álljon a kezdőponthoz.

3

Igazodás – a „hajszálpontos” csapatok titka

🎯 Cél

A legjobb csapatok robotja sem tökéletes: kb. méterenként igazodik valamihez, ami biztosan a helyén van – egy vonalhoz vagy a pálya falához. Így a hosszú úton összegyűlt hiba lenullázódik.

🆕 Új szavak

VONALIG
egyenesen megy, amíg vonalat nem lát. A max_cm biztonsági határ: ha nem látja a vonalat, nem fut le az asztalról.
KIEGYENESÍT
két szenzorral merőlegesen a vonalra áll: amelyik oldal előbb éri el a vonalat, az a motor megáll.
FALHOZ
hátával a pálya falához simul. A fal két dolgot ad: pontos irányt és pontos helyet az egyik tengely mentén.

💻 A program

💻 VONALIG8 sor
Szóblokk-recept (Word Blocks)
VONALIG (seb, irány, max_cm)       – egyenesen megy, amíg vonalat nem lát
  B relatív pozíciója legyen 0
  MAXFOK = max_cm × 360 / KERÜLET
  ismételd, amíg  (C fényvisszaverés < HATÁR) vagy (abs(B relatív pozíciója) > MAXFOK)
      HIBA_SZÁMOL irány
      KORR = HIBA × 2
      induljon:  bal = seb + KORR,  jobb = seb - KORR
  állj meg
💻 KIEGYENESÍT9 sor
Szóblokk-recept (Word Blocks)
KIEGYENESÍT (seb, irány)            – két szenzorral merőlegesen a vonalra áll
  BALKÉSZ = 0
  JOBBKÉSZ = 0
  B motor induljon seb sebességgel előre      (egyedi motorblokk!)
  F motor induljon seb sebességgel előre
  ismételd, amíg  (BALKÉSZ = 1) és (JOBBKÉSZ = 1)
      ha C fényvisszaverés < HATÁR akkor:  B motor álljon meg,  BALKÉSZ = 1
      ha D fényvisszaverés < HATÁR akkor:  F motor álljon meg,  JOBBKÉSZ = 1
  IRÁNYJAVÍTÁS irány
💻 FALHOZ6 sor
Szóblokk-recept (Word Blocks)
FALHOZ (irány)                      – hátával a pálya falához simul
  induljon:  bal = -25,  jobb = -25
  várj 1 mp-et
  állj meg
  várj 0.2 mp-et
  IRÁNYJAVÍTÁS irány

✏️ Feladatok

  • Gyorsan: EGYENES a vonal elé, onnan VONALIG 25%-kal.
  • A KIEGYENESÍT lassan (15–20%) működik jól. Még pontosabb: 2 cm hátra, és még egyszer 10%-kal.
  • Az egyedi motorblokkban a bal motor „előre” iránya a tükrözött beépítés miatt fordított lehet – egyszer próbáljátok ki.
  • A FALHOZ-hoz a robot hátulja legyen egyenes, sík lökhárító.

📏 Mérjétek meg!

Indítsátok a robotot 5-ször, szándékosan kicsit ferdén, majd FALHOZ → EGYENES 40 cm → KIEGYENESÍT. Cél: mind az 5 alkalommal ugyanott álljon meg (±0,5 cm).

4

VONALKÖVET és a kalibrálás

🎯 Cél

A robot a vonal szélét követi a színszenzorral. Előtte megmérjük, mit lát a szenzor a fehéren és a feketén.

🆕 Új szavak

fényvisszaverés
(reflected light) a színszenzor értéke: asztalonként és fényviszonyonként más.
HATÁR
(FEHÉR + FEKETE) / 2 – a START-ba írjátok be.
kalibrálás
a hubra kiíratjátok a C szenzor értékét: fehér mező fölött → FEHÉR, fekete vonal fölött → FEKETE.

💻 A program

💻 VONALKÖVET8 sor
Szóblokk-recept (Word Blocks)
VONALKÖVET (cm, seb)               – a vonal bal szélét követi a C szenzorral
  B relatív pozíciója legyen 0
  CÉLFOK = cm × 360 / KERÜLET
  ismételd, amíg  abs(B relatív pozíciója) > CÉLFOK
      HIBA = (C fényvisszaverés) - HATÁR
      KORR = HIBA × 0.4                   (KP_VONAL, hangolandó)
      induljon:  bal = seb + KORR,  jobb = seb - KORR
  állj meg

✏️ Feladatok

  • Másik szél: cseréljétek fel: bal = seb - KORR, jobb = seb + KORR.
  • Kereszteződésig: a feltétel legyen D fényvisszaverés < HATÁR – a jobb szenzor jelzi a keresztvonalat.
  • Sebesség: 30–40%-kal kezdjetek; gyorsabbhoz kisebb szorzó kell.
  • A vonalkövetés után nem tudjuk pontosan az irányt – utána FORDUL egy abszolút irányra, vagy KIEGYENESÍT egy keresztvonalon.
  • Ha a két szenzor értéke eltér, mindkettőnek legyen saját határa. A versenyen közvetlenül a futam előtt már nem lehet kalibrálni – ezért kerül az érték a programba.

📏 Mérjétek meg!

Mérjétek meg a FEHÉR és a FEKETE értéket ablak mellett és lámpa alatt is. Mennyire tér el? Utána kövessetek egy 1 m-es ívelt vonalat 5-ször: hányszor maradt a vonalon végig?

5

KAR_NULLA és KAR – mindig ugyanabba a magasságba

🎯 Cél

A kar csak akkor áll mindig ugyanoda, ha a program elején egy fix pontról (ütközőről) indul. Ezért a START végén a kar lemegy az alsó ütközőig, és ott nullázzuk a helyzetét.

🆕 Új szavak

ütköző
egy fix pont, ahol a kar biztosan megáll (pl. legalsó helyzet).
motorfok ≠ karszög
3 : 1 áttételnél a kar 30°-os emeléséhez 90 motorfok kell.
holtjáték
a fogaskerekek közti kis hézag: ellene a kar mindig ugyanabból az irányból érkezzen a célhoz (pl. mindig alulról).

💻 A program

💻 KAR_NULLA és KAR19 sor
Szóblokk-recept (Word Blocks)
KAR_NULLA
  A motor induljon -30% sebességgel        (lefelé – az irányt próbáljátok ki)
  várj 0.2 mp-et
  várj, amíg  abs(A motor sebessége) < 5   (a kar elérte az ütközőt)
  A motor álljon meg
  várj 0.1 mp-et
  A relatív pozíciója legyen 0

KAR (cél)                          – cél motorfokban, 0 = legalsó helyzet
  H = cél - (A relatív pozíciója)
  ismételd, amíg  abs(H) < 2
      H = cél - (A relatív pozíciója)
      S = H × 1.5
      ha S > 60   akkor S = 60
      ha S < -60  akkor S = -60
      ha (S > 0) és (S < 12)   akkor S = 12
      ha (S < 0) és (S > -12)  akkor S = -12
      A motor induljon S sebességgel
  A motor álljon meg

✏️ Feladatok

  • Ha a terhelt kar lecsúszik: csigahajtás (önzáró), vagy – ha a blokk elérhető – a motor megállási módja legyen „tartás” (hold).
  • A KAR futhat a mozgással párhuzamosan is: egy második „amikor a program elindul” szálon vagy üzenettel – de csak ha a robot közben nem igényel pontos kart.

📏 Mérjétek meg!

KAR 120 tízszer egymás után, közben KAR 0. Cél: a kar vége minden alkalommal ugyanarra a jelölésre álljon egy függőleges mércén. Ha megvan, pipáljátok ki a mérföldkövet!

6

SZÍNOLVAS – döntés véletlen elrendezésnél

🎯 Cél

A véletlen elemeknél (2026-ban Elementaryban a 4 hangjegy) a robot először végigolvassa a színeket, eltárolja egy listában, és csak utána szállít. Ez megbízhatóbb, mint ha minden tárgynál menet közben döntene.

🆕 Új szavak

lista
több érték egymás után egy változóban: SZÍNEK = [0, 0, 0, 0].
elem helye
(item # of) megmondja, a lista hányadik helyén van egy szín.
árnyékolás
egy kis „sapka” a szenzor körül kizárja a terem fényét és a bíró árnyékát.

💻 A program

💻 SZÍNOLVAS és a főprogram részlete17 sor
Szóblokk-recept (Word Blocks)
SZÍNOLVAS (hely)                   – a robot áll, a szenzor kb. 1 cm-re a tárgytól
  várj 0.1 mp-et
  SZÍN = (C szín)                          (color)
  ha SZÍN = „nincs szín” akkor:
      EGYENES 1, 15, IRÁNY                 (közelebb megy)
      SZÍN = (C szín)
  SZÍNEK lista „hely”-edik eleme legyen SZÍN    (replace item)

FŐPROGRAM – részlet
  SZÍNEK lista = [0, 0, 0, 0]
  ... a robot az 1. hely elé áll ...
  SZÍNOLVAS 1
  EGYENES (helyek távolsága), 30, IRÁNY
  SZÍNOLVAS 2
  ... ugyanígy 3 és 4 ...
  P = (piros helye a SZÍNEK listában)     (item # of piros in SZÍNEK)
  ha P = 1 akkor HOZD_1 / ha P = 2 akkor HOZD_2 / ...

✏️ Feladatok

  • Csak állva olvassatok, ne menet közben – a szenzor mozgásban könnyen a szomszéd színt látja.
  • Ha egy szín kimarad a pályáról, a hiányzó színt nem kell keresni – a lista mutatja, melyik nincs.

📏 Mérjétek meg!

Keverjétek össze a tárgyakat tízszer, különböző fényben (ablak mellett, lámpa alatt). Cél: 10-ből 10 helyes lista.

Hangolási tábla

A kezdőértékek egy átlagos SPIKE Prime alvázra jók. A saját robototokhoz mindig egyesével, 5 próbafutással hangoljatok, és írjátok fel az eredményt.

ÉrtékKezdőértékHa túl kicsiHa túl nagy
KP_EGYENES (EGYENES)2lassan javít, ív alakban elhúzkígyózik, rángat
KP_FORDUL (FORDUL)0.7sokáig araszol a cél előtttúlfordul, oda-vissza billeg
Legkisebb fordulósebesség10%a cél előtt megáll, nem éri eltúllő 1–2 fokkal
Legnagyobb fordulósebesség40%lassú fordulásmegcsúszik a kerék, túllő
Egyenes sebesség50%lassú futammegcsúszik induláskor (→ EGYENES_LÁGY)
KP_VONAL (VONALKÖVET)0.4kanyarban lesodródik a vonalrólcikázik a vonal két oldala között
Tűrés fordulásnál1°–pontatlan irány
Kar szorzó (KAR)1.5lassan éri el a célttúllő, rezeg

Szabály: egyszerre csak egy értéket változtassatok. Ha egy érték bevált, írjátok be a csapatnaplóba – a versenyen nem lesz idő újra kikísérletezni.

Emelő-vivő technika

A jó emelő három dolgot tud: elég erős (áttétel), mindig ugyanoda áll (nullázás, holtjáték nélkül), és a tárgy magától a helyére csúszik benne (terelő). A legtöbb pontot a „teljesen benne és állva” lerakás adja – ezt a szerkezet dönti el, nem a program.

áttétel = hajtott kerék fogszáma ÷ hajtó (motoron lévő) kerék fogszáma

  • 12 fogasról 36 fogasra: 3 : 1 – háromszor erősebb, harmadakkora sebesség, háromszor finomabb pozicionálás.
  • Két ilyen lépcső egymás után: 3 × 3 = 9 : 1.
  • Csiga (egy menet) egy 24 fogason: 24 : 1, és önzáró – a kar áramtalanul sem esik vissza. Lassú, de nagyon pontos.
  • Minél több fogaskerék, annál több holtjáték: inkább kevés, nagy lépcső, mint sok kicsi.
EmelőtípusMűködéseMire jóVigyázz
Forgó karegy tengely körül fordul felfeléegyszerű; tolás, billentés, lefogása vége ívben mozog, a tárgy megdől
Párhuzamos (négycsuklós) karkét egyforma hosszú rúd tartja a fogóta fogó végig vízszintes, a tárgy állva maradtöbb alkatrész, merevíteni kell
Villás (függőleges) emelőfogaslécen vagy csigán egyenesen fel-lepontos magasság: ráhelyezés, egymásra rakásmagas, figyelj a 25 cm-es kockára
Leereszthető „kalitka”keret, ami a tárgy köré ereszkedikállva szállítás szorítás nélkül; több tárgy egyszerrea tárgy csak tolva mozog, emelni nem tud
  • Terelő „tölcsér” (V alak) a fogó elején: ha a robot 1 cm-t téved, a tárgy akkor is középre csúszik. Ez a legolcsóbb pontosság.
  • Kétpofás fogó fogaskerékkel összekötve: a két pofa egyszerre, középre zár. Gumis felület a pofán, hogy ne csússzon ki.
  • Lerakás: lassan le, kis szünet, kar fel – és csak utána hátra. Ha a robot elindul, mielőtt a kar felemelkedett, magával rántja a tárgyat.
  • Szállítás közben: lágy indulás (EGYENES_LÁGY), magas tárgynál alacsony fogáspont, hogy ne billenjen.

Egy futam váza

A teljes futam rövid küldetésekből áll, és minden küldetés egy ismert helyzetből indul, és oda érkezik (fal, vonal, kiegyenesítés). Így ha egy küldetés kicsit pontatlan, a következő nem örökli a hibát. Ez csak egy minta a szerkezetre, nem versenymegoldás.

💻 Minta: két küldetés18 sor
Szóblokk-recept (Word Blocks)
START
// 1. küldetés: tárgy felvétele
EGYENES_LÁGY 40, 50, 0
FORDUL 90
VONALIG 25, 90, 30
KIEGYENESÍT 15, 90            ← ismert helyzet
KAR 0
EGYENES 8, 20, 90
KAR 120                        (felemeli a tárgyat)
// 2. küldetés: lerakás
EGYENES 8, -30, 90
FORDUL 180
EGYENES_LÁGY 60, 50, 180
KAR 20                         (lerakja)
KAR 120
EGYENES 10, -30, 180
FALHOZ 0                       ← ismert helyzet
...
  • Fejlesztés közben minden küldetés külön program, ugyanazzal a START-tal és kiinduló helyzettel. Csak a végén fűzzétek össze.
  • Időterv: mérjétek le minden küldetés idejét. A futam legyen meg 105 másodperc alatt – 15 másodperc tartalék kell a váratlan helyzetekre.
  • Megbízhatóság előbb, gyorsaság utána: egy küldetés akkor „kész”, ha 10-ből 9-szer sikerül. Csak ezután emeljétek a sebességet.

Ezek alapozó építőkövek, nem kész versenymegoldások. A versenyprogramot nektek kell megírnotok, és el kell tudnotok magyarázni. 🤖