Laboratórna misia 01 / autonómny režim

Prebuď ESP32-C6

Dnes nie je cieľom iba rozblikať LED. Cieľom je dokázať, že ovládaš celý reťazec: kód → build → flash → beh na doske → komunikácia cez sériový port.

⏱ 100–120 min 👥 dvojice odporúčané 🎯 100 XP + bonus 🧰 ESP32-C6-DevKitC-1
0/0 checkpointov · 0 XP
Briefing

Pravidlá expedície

Pracujte vo dvojici. Jeden je pilot (ovláda klávesnicu), druhý navigátor (číta zadanie, kontroluje zapojenie a zapisuje dôkazy). Po každej misii si role vymeňte.

Najprv pozoruj, potom meníš. Ak niečo zlyhá, zapíš presnú chybovú hlášku. „Nefunguje“ nie je diagnóza.

Dnes odovzdáš
00
10 min · hardvérová detektívka

Spoznaj svoju dosku

+10 XP
  1. Prečítaj označenie dosky a modulu. Over, že ide o ESP32-C6-DevKitC-1. Ak je názov iný, nehádaj pin LED – vyhľadaj príručku presne pre svoju dosku.
  2. Nájdi oficiálny ESP32-C6-DevKitC-1 User Guide, pinout a schému.
  3. Na doske nájdi dva USB-C konektory. Na prvé cvičenie zapoj USB-to-UART. Druhý je natívny USB port čipu pre USB/JTAG a pokročilejšie použitie.
  4. V schéme nájdi RGB LED a GPIO, ktorý ju riadi. Pozor: svietiaca napájacia LED sa programom ovládať nedá.
Checkpoint A
Nápoveda: ktorý USB-C?

Pri doske ESP32-C6-DevKitC-1 je konektor pri USB-to-UART bridge určený na jednoduché nahrávanie a sériovú komunikáciu. Ak po zapojení pribudne vo Windows nový COM port, našiel si správny konektor.

Nápoveda: kábel alebo doska?

Ak sa neobjaví nový port, skús iný USB kábel. Mnohé káble iba nabíjajú a nemajú dátové vodiče.

01
25 min · prvý kontakt

Hello world: dôkaz života

+25 XP
  1. Vo VS Code otvor View → Command Palette (Ctrl+Shift+P) a spusti ESP-IDF: New Project.
  2. Ako šablónu vyber get-started/hello_world. Projekt pomenuj bez medzier, napr. c6_misia01_meno.
  3. Nastav target esp32c6, vyber správny COM… port a flash metódu UART.
  4. Spusti zvlášť Build, potom Flash a napokon Monitor. Sleduj, v ktorej fáze vzniká ktorý výstup.
To isté v ESP-IDF termináli
idf.py set-target esp32c6
idf.py build
idf.py -p COMx flash
idf.py -p COMx monitor

Namiesto COMx dosaď svoj port. Z monitora odídeš skratkou Ctrl+].

Rozlišuj pojmy

Build preloží zdrojový kód a vytvorí binárny firmvér.

Flash zapíše firmvér do nevolatilnej pamäte ESP32.

Monitor otvorí sériový kanál a zobrazuje logy z bežiacej dosky.

Terminal je textové rozhranie, v ktorom spúšťaš príkazy nástrojov.

Checkpoint B
Záchranná karta: port neexistuje alebo je obsadený

Odpoj dosku, pozri zoznam portov, pripoj ju a sleduj, ktorý pribudol. Zatvor iný Serial Monitor. Skontroluj dátový kábel. Ak flash stále čaká, podrž BOOT, krátko stlač RESET a BOOT uvoľni, keď sa začne pripájanie.

Záchranná karta: idf.py sa nenašiel

Príkazy spúšťaj v termináli otvorenom cez ESP-IDF: Open ESP-IDF Terminal, nie v ľubovoľnom PowerShelli. Prípadne používaj tlačidlá rozšírenia ESP-IDF vo VS Code.

02
25 min · svetelný signál

Ovládni RGB LED

+25 XP
  1. Vytvor nový projekt zo šablóny get-started/blink alebo skopíruj oficiálny príklad do vlastného priečinka.
  2. Nastav target esp32c6. Otvor ESP-IDF: SDK Configuration editor (menuconfig).
  3. V Example Configuration zvoľ LED strip / addressable LED, backend RMT, GPIO 8 a interval 500 ms.
  4. Build → flash → monitor. RGB LED musí pravidelne blikať.
  5. V zdrojovom kóde nájdi volanie led_strip_set_pixel(...). Zmeň hodnoty R, G, B. Začni nízkym jasom, napr. 16, 0, 0.
// pixel 0, potom intenzita R, G, B v rozsahu 0..255
led_strip_set_pixel(led_strip, 0, 16, 0, 0);
led_strip_refresh(led_strip);
Prečo nie gpio_set_level(GPIO8, 1)? RGB LED je adresovateľná: po jednom dátovom vodiči prijíma časovaný digitálny protokol. GPIO8 nie je priamo anóda obyčajnej LED.
Checkpoint C
03
20 min · experiment

Čas pod kontrolou

+20 XP

Otestuj tri intervaly. Pri každom sleduj LED aspoň 10 sekúnd a zapíš počet zmien stavu. Ak kód po každom intervale LED iba prepne, celý cyklus ON→OFF→ON trvá približne dvojnásobok intervalu.

Interval v kódePredpokladaná celá periódaZmeny za 10 sČo pozorujem
100 ms200 msdoplňdoplň
250 ms500 msdoplňdoplň
1000 ms2000 msdoplňdoplň
Premýšľaj

Prečo pri veľmi rýchlom blikaní prestane oko rozlišovať jednotlivé záblesky? Prečo logovanie každého prepnutia môže zhoršiť presnosť časovania?

Checkpoint D
04
30+ min · boss level

Diaľkové ovládanie cez terminál

+20 XP + bonus

Vytvor konzolu, ktorá číta riadky zo sériového portu. LED môže bežať v samostatnom FreeRTOS tasku; hlavný task čaká na príkazy. Minimum sú štyri príkazy:

on             # zapni poslednú zvolenú farbu
off            # zhasni
color 16 0 0   # R G B, každé číslo 0..255
blink 500      # prepínaj každých 500 ms
status         # vypíš aktuálny stav
help           # vypíš zoznam príkazov
Odporúčaná stratégia
  1. Najprv nech help iba vypíše text.
  2. Rozpoznaj presne on a off.
  3. Pomocou sscanf rozober color R G B.
  4. Over rozsah 0 až 255; neplatný príkaz nesmie zhodiť program.
  5. Až potom pridaj blink MS.
Referenčný projekt

Ak sa zasekneš na infraštruktúre, otvor pripravený projekt code/esp-idf/lab01_c6_rgb_console. Najprv však vysvetli navigátorovi, čo podľa teba robia funkcie uart_read_bytes, sscanf a vTaskDelay.

Bonus: pridaj príkaz pulse R G B, ktorý plynulo mení jas.

Checkpoint E
Nápoveda: monitor zobrazuje logy, ale nejde písať

Klikni do okna terminálu, v ktorom beží IDF Monitor, napíš príkaz a potvrď Enter. VS Code panel Output nie je interaktívny terminál. Ak vstup stále nejde, používaj USB-to-UART port a UART0.

Debriefing · odovzdaj pred odchodom

Čo si dnes skutočne zistil?

  1. Aký je rozdiel medzi build, flash a monitor?
  2. Prečo má doska dva USB-C konektory a ktorý si dnes použil?
  3. Prečo sa RGB LED na GPIO8 neovláda ako obyčajná LED?
  4. Ak je interval prepnutia 250 ms, aká je približná perióda celého bliknutia?
  5. Napíš jednu chybu, ktorú si stretol, jej presný príznak a riešenie.

Hotovo znamená: máš dôkazy, vieš vlastnými slovami vysvetliť reťazec kód → build → flash → monitor a po odpojení/zapojení vieš celý postup zopakovať.