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
8c. Joystick:bit – Rozšírenie – Lekcia 3
Ovládanie XGO psa, kombinované scénare, vlastný ovládač
Trvanie: 90 minút
Vek: 10–15 rokov
Potrebné vybavenie: Micro:bit v2 (2 ks), Joystick:bit, XGO Lite, (voliteľne: Cutebot), USB kábel, notebook
Software: MakeCode editor – makecode.microbit.org
Predchádzajúce znalosti: Joystick:bit Lekcie 1 a 2, Micro:bit Úvod
Čo sa dnes naučíš
- Ovládať XGO robotického psa joystickom
- Prepínať režimy ovládania tlačidlami (chôdza / rameno / postoje)
- Navrhnúť vlastný ovládací protokol
- Skombinovať viac zariadení na jednom joysticku (voliteľne)
Časť A – XGO Lite: Základné ovládanie joystickom
Krok A1 – Pridaj rozšírenie XGO (5 minút)
- Rozšírenia → vyhľadaj
XGOalebo URL:https://github.com/elecfreaks/pxt-xgo - Nová kategória XGO sa pridá do menu
- Skontroluj dostupné bloky:
XGO move forward speed X time YXGO turn left speed X time YXGO stand / sit / lieXGO set arm x X y YXGO set gripper open/close
Krok A2 – Prvý ovládač pre XGO: chôdza (25 minút)
Cieľ: Joystickom ovládať smer pohybu psa. Tlačidlami C a D meniť postoj.
Odosielateľ (Joystick:bit) – rovnaký ako v Lekcii 2, len iná skupina rádia:
pri spustení: nastaviť skupinu rádia 20 stále opakovať: rádio odošli hodnotu "jx" = joystickbit X value rádio odošli hodnotu "jy" = joystickbit Y value pauza 100ms on joystickbit button C pressed: rádio odošli text "sit" on joystickbit button D pressed: rádio odošli text "stand" on joystickbit button E pressed: rádio odošli text "lie" on joystickbit button F pressed: rádio odošli text "crawl"Prijímač (micro:bit v XGO):
pri spustení: nastaviť skupinu rádia 20 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 = "sit": XGO sit ak receivedString = "stand": XGO stand ak receivedString = "lie": XGO lie ak receivedString = "crawl": XGO crawl 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 // keď je joystick v strede – nerob nič, pes stojí pauza 50ms💡 Parameter
time 200znamená že každý pohybový príkaz trvá 200ms. Pri rýchlom opakovaní v slučke to vytvára plynulý pohyb. Ak pes „zakopáva" – skús zvýšiť time na 300ms.Testuj:
- Chôdza všetkými 4 smermi
- Tlačidlo C → pes si sadne
- Tlačidlo D → pes vstane
- Pustenie joysticku → pes stojí (nepohybuje sa)
Krok A3 – Režim ovládania ramena (20 minút)
Cieľ: Prepínať medzi režimom chôdze a režimom ovládania ramena stlačením tlačidla.
Prečo režimy?
Joystick má len 2 osi a 4 tlačidlá. XGO má chôdzu (potrebuje 2 osi) aj rameno (potrebuje 2 osi). Riešenie: prepínanie režimov – ako gear shift v aute.
Pridaj premennú
rezimna odosielateľ:pri spustení: nastaviť skupinu rádia 20 nastav rezim = "walk" ← štartovací režim: chôdza zobraziť text "W" ← "W" = walk, informuje užívateľa on joystickbit button C pressed: nastav rezim = "walk" zobraziť text "W" rádio odošli text "mode_walk" on joystickbit button D pressed: nastav rezim = "arm" zobraziť text "A" rádio odošli text "mode_arm" stále opakovať: nastav jx = joystickbit X value nastav jy = joystickbit Y value ak rezim = "walk": rádio odošli hodnotu "jx" = jx rádio odošli hodnotu "jy" = jy ak rezim = "arm": rádio odošli hodnotu "ax" = jx ← iné meno = prijímač vie že je to pre rameno rádio odošli hodnotu "ay" = jy pauza 100msUpravený prijímač:
pri prijatí rádiového páru (name, value): ak name = "jx": nastav jx = value ak name = "jy": nastav jy = value ak name = "ax": nastav ax = value ← poloha ramena X ak name = "ay": nastav ay = value ← poloha ramena Y pri prijatí rádiového textu (receivedString): ak receivedString = "mode_walk": nastav rezim = "walk" ak receivedString = "mode_arm": nastav rezim = "arm" ak receivedString = "sit": XGO sit ak receivedString = "stand": XGO stand stále opakovať: ak rezim = "walk": // rovnaká logika chôdze ako predtým 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 ak rezim = "arm": // mapuj hodnoty joysticku na súradnice ramena nastav cielX = mapovať ax z 0–1023 do 80–180 nastav cielY = mapovať ay z 0–1023 do -50–50 XGO set arm x cielX y cielY pauza 80msTestuj:
- Štart → displej micro:bitu v Joystick:bit ukazuje "W"
- Pohyb joysticku → pes chodí
- Stlač D → displej ukazuje "A"
- Pohyb joysticku → rameno sa hýbe, pes nestojí na mieste
- Stlač C → späť na chôdzu
Krok A4 – Pridaj tlačidlo grippera (5 minút)
V režime ramena pridaj:
on joystickbit button E pressed: ak rezim = "arm": rádio odošli text "grip_close" on joystickbit button F pressed: ak rezim = "arm": rádio odošli text "grip_open"Na prijímači:
ak receivedString = "grip_close": XGO set gripper close ak receivedString = "grip_open": XGO set gripper open
Časť B – Vlastný ovládací protokol (voliteľné, 20 minút)
Cieľ: Navrhnúť vlastný systém skratiek a príkazov. Toto je otvorená úloha – niet jedinej správnej odpovede.
Prečo si navrhnúť vlastný protokol?
Doteraz si používal mená ako "jx", "jy", "forward", "sit". Toto sú len reťazce – mohol si použiť čokoľvek. V praxi programátori navrhujú protokol – dohodnutý formát správ medzi zariadeniami.
Výzva:
Navrhni ovládač pre jedno alebo viac zariadení podľa týchto pravidiel:
- Definuj všetky príkazy – napíš na papier zoznam čo chceš ovládať a aký príkaz mu priradiš
- Priraď tlačidlá a osi – nakresli si schému joysticku a označ čo čo robí
- Implementuj – naprogramuj odosielateľa aj prijímača podľa svojho návrhu
- Testuj – overí či všetko funguje podľa plánu
Príklady možných projektov:
Projekt 1 – Záchranný robot
- XGO chodí a hľadá predmet
- Keď ho nájde, zastaví, prepne na režim ramena
- Ramenom uchopí predmet a odnesie ho na určené miesto
Projekt 2 – Pretekárske auto
- Cutebot ovládaný plynulou rýchlosťou (nie zapni/vypni)
- Tlačidlo C = turbo (krátkodobý nárast rýchlosti)
- Tlačidlo D = brzda (okamžitý stop)
- LED svetlá sviecia pri brzdení červeno
Projekt 3 – Kombinovaný ovládač (ak máte 2 autá alebo auto + pes)
- Skupina rádia 20 → XGO pes
- Skupina rádia 21 → Cutebot
- Tlačidlo E prepína ktoré zariadenie joystick ovláda
- Displej micro:bitu ukazuje aktívne zariadenie ("P" = pes, "C" = cutebot)
Krok B1 – Šablóna vlastného projektu
Vyplň si pred programovaním:
Názov projektu: ______________________________ Zariadenie(a): ______________________________ Skupina rádia: ______________________________ Mapa ovládania: Os X (doľava/doprava): _____________________ Os Y (dopredu/dozadu): _____________________ Tlačidlo C: ________________________________ Tlačidlo D: ________________________________ Tlačidlo E: ________________________________ Tlačidlo F: ________________________________ Príkazy (text cez rádio): "__________" → _____________________________ "__________" → _____________________________ "__________" → _____________________________ Hodnoty (čísla cez rádio): "__________" = os X alebo Y pre: ___________ "__________" = os X alebo Y pre: ___________
Zhrnutie celého modulu Joystick:bit s rozšírením
Po troch lekciách vieš:
Lekcia Čo si sa naučil 1 Inštalácia rozšírenia, čítanie osí a tlačidiel, ovládanie LED displeja 2 Cutebot 4-smerový + plynulý ovládač, Wonder Rugged Car 8-smerový 3 XGO pes, prepínanie režimov (chôdza / rameno), vlastný protokol Kľúčové pojmy:
Pojem Vysvetlenie Rozšírenie (Extension) Balík blokov pre konkrétny HW, pridávaš ho do MakeCode Protokol Dohodnutý formát správ medzi zariadeniami Mŕtva zóna Oblasť okolo stredu joysticku kde sa nič nedeje – predchádza náhodným pohybom Prepínanie režimov Jedno tlačidlo mení čo ostatné vstupy robia Diferenciálny pohon Ovládanie otáčania zmenou rýchlosti ľavého a pravého motora (Cutebot) Mecanum kolieska Špeciálne kolieska umožňujúce pohyb do strany (Wonder Rugged Car)
Kam ďalej
- Cutebot – autonómne vozidlo – sledovanie čiary, ultrazvuk, AI kamera
- XGO Lite – pokročilé pohyby, choreografia, Python cez SSH
- Dobot Magician – Python, Linux, priemyselný robot
