TechLab - Laboratórium budúcnosti

        • 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 22
          

          Jeden 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 C
          Wonder Rugged Car R (Rugged)
          XGO Lite X
          Nú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 stop prí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 < 400 pred jy < 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:

          1. Nahraj odosielateľa do micro:bitu v Joystick:bit
          2. Nahraj prijímača Cutebot do micro:bitu v Cutebot
          3. Nahraj prijímača WRC do micro:bitu vo Wonder Rugged Car
          4. Nahraj prijímača XGO do micro:bitu v XGO
          5. 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 value
          

          Ak 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 200ms
          

          Sleduj č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.

    • Kontakty

      • Základná škola s materskou školou
      • 0915 880 931 - ZÁKLADNÁ ŠKOLA
        0911 348 727 - MATERSKÁ ŠKOLA
        0915 595 176 - ŠKOLSKÁ JEDÁLEŇ
        0908 030 931 - RIADITEĽ
        0940 629 872 - EKONÓMKA
      • Šarišské Dravce 20
        082 73 Šarišské Dravce
        Slovakia
      • sardravce.ms@gmail.com
        sardravce.sj@gmail.com
      • 37876856
    • Prihlásenie