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.
Spoznaj svoju dosku
- 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.
- Nájdi oficiálny ESP32-C6-DevKitC-1 User Guide, pinout a schému.
- 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.
- V schéme nájdi RGB LED a GPIO, ktorý ju riadi. Pozor: svietiaca napájacia LED sa programom ovládať nedá.
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.
Hello world: dôkaz života
- Vo VS Code otvor View → Command Palette (
Ctrl+Shift+P) a spustiESP-IDF: New Project. - Ako šablónu vyber
get-started/hello_world. Projekt pomenuj bez medzier, napr.c6_misia01_meno. - Nastav target
esp32c6, vyber správnyCOM…port a flash metódu UART. - Spusti zvlášť Build, potom Flash a napokon Monitor. Sleduj, v ktorej fáze vzniká ktorý výstup.
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+].
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.
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.
Ovládni RGB LED
- Vytvor nový projekt zo šablóny
get-started/blinkalebo skopíruj oficiálny príklad do vlastného priečinka. - Nastav target
esp32c6. OtvorESP-IDF: SDK Configuration editor (menuconfig). - V Example Configuration zvoľ LED strip / addressable LED, backend RMT, GPIO 8 a interval 500 ms.
- Build → flash → monitor. RGB LED musí pravidelne blikať.
- 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);
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.Čas pod kontrolou
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óde | Predpokladaná celá perióda | Zmeny za 10 s | Čo pozorujem |
|---|---|---|---|
| 100 ms | 200 ms | doplň | doplň |
| 250 ms | 500 ms | doplň | doplň |
| 1000 ms | 2000 ms | doplň | doplň |
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?
Diaľkové ovládanie cez terminál
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
- Najprv nech
helpiba vypíše text. - Rozpoznaj presne
onaoff. - Pomocou
sscanfrozobercolor R G B. - Over rozsah 0 až 255; neplatný príkaz nesmie zhodiť program.
- Až potom pridaj
blink MS.
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.
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.
Čo si dnes skutočne zistil?
- Aký je rozdiel medzi build, flash a monitor?
- Prečo má doska dva USB-C konektory a ktorý si dnes použil?
- Prečo sa RGB LED na GPIO8 neovláda ako obyčajná LED?
- Ak je interval prepnutia 250 ms, aká je približná perióda celého bliknutia?
- 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ť.