TechLab - Laboratórium budúcnosti
- Laboratórium budúcnosti
- Naše vybavenie
- 1. MICROBIT-BLOCKLY
- 2. JOYSTICKBIT-BLOCKLY
- 3. MAKECODE ARCADE
- 4. SCULPFUN LASER
- Linux – Rýchlokurz
- 5. DOBOT MAGICIAN - PYTHON + LINUX
- 6. XGO ROBOTICKÝ PES - BLOCKLY
- 7. CUTEBOT - AUTONÓMNE VOZIDLO
- 8a. Joystick:bit – Rozšírenie – Lekcia 1
- 8b. Joystick:bit – Rozšírenie – Lekcia 2
- 8c. Joystick:bit – Rozšírenie – Lekcia 3
- 8d. Joystick:bit – Rozšírenie – Lekcia 4
- 8e. Joystick:bit – Rozšírenie – Lekcia 5
8d. Joystick:bit – Rozšírenie – Lekcia 4
Kombinovaný ovládač: jeden joystick, viac zariadení
Trvanie: 90 minút
Vek: 12–15 rokov
Potrebné vybavenie: Micro:bit v2 (3 ks), Joystick:bit, Cutebot, Wonder Rugged Car, XGO Lite, USB kábel, notebook
Software: MakeCode editor – makecode.microbit.org
Predchádzajúce znalosti: Joystick:bit Lekcie 1–3
Čo sa dnes naučíš
- Ako jeden joystick ovláda viac zariadení naraz cez výber aktívneho cieľa
- Ako použiť rôzne skupiny rádia pre rôzne zariadenia
- Ako odladiť systém kde niečo nefunguje (systematický debug)
- Ako merať a znížiť oneskorenie ovládania
Prečo je toto náročnejšie
Doteraz si mal vždy jeden odosielateľ a jeden prijímač. Teraz budeš mať:
┌─────────────────────┐ │ Joystick:bit │ │ (odosielateľ) │ └────────┬────────────┘ │ rádio ┌──────────────┼──────────────┐ ▼ ▼ ▼ [Cutebot] [Wonder Rugged] [XGO] skupina 20 skupina 21 skupina 22Jeden joystick prepína na ktoré zariadenie posiela. Zariadenia počúvajú každé na inej skupinovej frekvencii – navzájom sa nerušia.
💡 Micro:bit môže byť v danom momente len v jednej skupine rádia. Keď prepneš skupinu, začneš počúvať / vysielať na novej a prestaneš na starej. Toto je kľúčový mechanizmus celej lekcie.
Krok 1 – Architektúra systému (10 minút)
Pred programovaním si nakresli (alebo si prečítaj) čo kde bude.
Skupiny rádia:
Zariadenie Skupina rádia Cutebot 20 Wonder Rugged Car 21 XGO Lite 22 Tlačidlá na Joystick:bit:
Tlačidlo Funkcia C Prepni na Cutebot D Prepni na Wonder Rugged Car E Prepni na XGO Lite F Núdzové zastavenie všetkých LED displej micro:bitu v joysticku:
Aktívne zariadenie Zobrazenie Cutebot CWonder Rugged Car R(Rugged)XGO Lite XNúdzové zastavenie !
Krok 2 – Odosielateľ: prepínanie skupín (20 minút)
Cieľ: Naprogramovať joystick tak aby po stlačení tlačidla prepol skupinu rádia a zobrazil ktoré zariadenie je aktívne.
Program odosielateľa:
pri spustení: nastav aktívne = "cutebot" nastaviť skupinu rádia 20 ← štart na Cutebot zobraziť text "C" // --- Prepínanie zariadení --- on joystickbit button C pressed: nastav aktívne = "cutebot" nastaviť skupinu rádia 20 zobraziť text "C" on joystickbit button D pressed: nastav aktívne = "rugged" nastaviť skupinu rádia 21 zobraziť text "R" on joystickbit button E pressed: nastav aktívne = "xgo" nastaviť skupinu rádia 22 zobraziť text "X" on joystickbit button F pressed: // Núdzové zastavenie – prejdi cez všetky skupiny a pošli stop zobraziť text "!" nastaviť skupinu rádia 20 rádio odošli text "stop" pauza 50ms nastaviť skupinu rádia 21 rádio odošli text "stop" pauza 50ms nastaviť skupinu rádia 22 rádio odošli text "stop" pauza 50ms // Vráť sa na predtým aktívne zariadenie ak aktívne = "cutebot": nastaviť skupinu rádia 20 ak aktívne = "rugged": nastaviť skupinu rádia 21 ak aktívne = "xgo": nastaviť skupinu rádia 22 zobraziť text aktívne[0] ← zobraz prvé písmeno názvu // --- Hlavná slučka: odosiela joystick dáta --- stále opakovať: nastav jx = joystickbit X value nastav jy = joystickbit Y value // Posielaj len keď je joystick vycentrovaný alebo vychýlený rádio odošli hodnotu "jx" = jx rádio odošli hodnotu "jy" = jy pauza 80ms⚠️ Blok
zobraziť text aktívne[0]nie je štandardný MakeCode blok. Namiesto neho použi podmienku:ak aktívne = "cutebot": zobraziť text "C" ak aktívne = "rugged": zobraziť text "R" ak aktívne = "xgo": zobraziť text "X"
Krok 3 – Prijímač pre Cutebot (skupina 20) (15 minút)
Toto je rovnaký program ako v Lekcii 2, len s pridaným spracovaním
stoppríkazu.pri spustení: nastaviť skupinu rádia 20 nastav jx = 512 nastav jy = 512 pri prijatí rádiového páru (name, value): ak name = "jx": nastav jx = value ak name = "jy": nastav jy = value pri prijatí rádiového textu (receivedString): ak receivedString = "stop": Cutebot stop nastav jx = 512 nastav jy = 512 stále opakovať: ak jy < 400: Cutebot go forward speed 60 inak ak jy > 620: Cutebot go backward speed 60 inak ak jx < 400: Cutebot turn left speed 50 inak ak jx > 620: Cutebot turn right speed 50 inak: Cutebot stop pauza 50ms
Krok 4 – Prijímač pre Wonder Rugged Car (skupina 21) (15 minút)
8-smerový pohyb, rovnaká logika ako v Lekcii 2. Kľúčový rozdiel: skupina rádia 21.
pri spustení: nastaviť skupinu rádia 21 nastav jx = 512 nastav jy = 512 pri prijatí rádiového páru (name, value): ak name = "jx": nastav jx = value ak name = "jy": nastav jy = value pri prijatí rádiového textu (receivedString): ak receivedString = "stop": WRC stop nastav jx = 512 nastav jy = 512 stále opakovať: // Diagonálne smery (skontroluj ako prvé – sú špecifickejšie) ak jy < 400 a jx < 400: WRC move forward-left speed 60 inak ak jy < 400 a jx > 620: WRC move forward-right speed 60 inak ak jy > 620 a jx < 400: WRC move backward-left speed 60 inak ak jy > 620 a jx > 620: WRC move backward-right speed 60 // Základné smery inak ak jy < 400: WRC go forward speed 60 inak ak jy > 620: WRC go backward speed 60 inak ak jx < 400: WRC move left speed 60 inak ak jx > 620: WRC move right speed 60 inak: WRC stop pauza 50ms💡 Poradie podmienok je dôležité – diagonálne smery musíš kontrolovať pred základnými. Ak by si kontroloval
jy < 400predjy < 400 a jx < 400, diagonálny smer by nikdy nenastal.
Krok 5 – Prijímač pre XGO (skupina 22) (10 minút)
Kombinuje chôdzu z Lekcie 3 s prepínaním režimov. Tu zjednodušíme na jeden režim – chôdza – lebo XGO má teraz oveľa menej tlačidiel k dispozícii (joystick ich väčšinu používa na prepínanie zariadení).
pri spustení: nastaviť skupinu rádia 22 XGO stand nastav jx = 512 nastav jy = 512 pri prijatí rádiového páru (name, value): ak name = "jx": nastav jx = value ak name = "jy": nastav jy = value pri prijatí rádiového textu (receivedString): ak receivedString = "stop": XGO stand nastav jx = 512 nastav jy = 512 stále opakovať: ak jy < 400: XGO move forward speed 50 time 200 inak ak jy > 620: XGO move backward speed 50 time 200 inak ak jx < 400: XGO turn left speed 50 time 200 inak ak jx > 620: XGO turn right speed 50 time 200 pauza 80ms
Krok 6 – Testovanie celého systému (10 minút)
Postup:
- Nahraj odosielateľa do micro:bitu v Joystick:bit
- Nahraj prijímača Cutebot do micro:bitu v Cutebot
- Nahraj prijímača WRC do micro:bitu vo Wonder Rugged Car
- Nahraj prijímača XGO do micro:bitu v XGO
- Zapni všetky zariadenia
Testovací plán:
Test Očakávaný výsledok Výsledok Štart – displej joysticku Zobrazuje "C" Pohyb joysticku Cutebot sa pohybuje Stlač D Displej zobrazí "R" Pohyb joysticku WRC sa pohybuje, Cutebot stojí Stlač E Displej zobrazí "X" Pohyb joysticku XGO chodí, ostatní stoja Stlač F Displej zobrazí "!" Po F – všetky zariadenia Všetci stoja / zastali Po F – joystick Prepol späť na predošlé zariadenie Ak niečo nefunguje:
Prejdi na Krok 7 – systematický debug.
Krok 7 – Systematický debug (voliteľné, ak treba) (5 minút)
Keď niečo nefunguje, postupuj od základu:
1. Overenie rádia: Pridaj do prijímača dočasne:
pri prijatí rádiového páru (name, value): zobraziť číslo valueAk prijímač niečo zobrazuje → rádio funguje, problém je inde. Ak nezobrazuje nič → skontroluj skupinu rádia na oboch stranách.
2. Overenie logiky podmienok: Pridaj dočasne do prijímača:
stále opakovať: zobraziť číslo jy pauza 200msSleduj či sa hodnota mení keď pohybuješ joystickom.
3. Overenie rozšírenia: V odosielateľovi pridaj
zobraziť číslo joystickbit Y value– ak nič nevychádza, rozšírenie nie je správne nainštalované.
Zhrnutie – čo si sa naučil
Čo Technika Viac zariadení na jednom joysticku Prepínanie skupín rádia Núdzové zastavenie všetkých Postupné odoslanie stop na každú skupinu Poradie podmienok Špecifickejšie podmienky (diagonály) pred všeobecnými Systematický debug Izolácia problému: rádio → dáta → logika → HW
Ďalší krok
Pokračuj na Lekciu 5 – finálny projekt, ladenie oneskorenia a vlastná rozšírená scéna.
