# Roadmap ## Stage 0: Safety, Tools, Measurements **Цель:** научиться безопасно включать простые схемы, пользоваться БП и мультиметром, проверять ошибки до подачи питания. **Ключевые понятия:** voltage, current, resistance, power, ground, current limit, continuity test, breadboard rails. **Лабораторные:** `001_led_resistor_psu`, `002_breadboard_and_multimeter`. **Готовность перейти дальше:** - БП включается через current limit, а не "на максимум". - Мультиметром уверенно проверяются напряжение, сопротивление и короткое замыкание. - LED + resistor работает предсказуемо, ток вычислен и измерения записаны. ## Stage 1: Basic DC Electronics **Цель:** понять поведение базовых DC-схем через измерения. **Ключевые понятия:** Ohm's law, voltage divider, LED forward voltage, capacitor polarity, transistor as switch. **Лабораторные:** `001_led_resistor_psu`, `004_button_pullup_pulldown`, `007_transistor_switch`. **Готовность перейти дальше:** - Понятно, где в схеме течет ток и где измерять напряжение. - Ошибки полярности и плохого контакта диагностируются мультиметром. - Транзисторный ключ собран и объяснен как управляемый switch. ## Stage 2: ESP32 Fundamentals **Цель:** перейти от пассивных схем к микроконтроллеру без нарушения электрических ограничений. **Ключевые понятия:** GPIO, 3.3V logic, digital output, digital input, boot pins, USB power, common ground. **Лабораторные:** `003_esp32_blink`, `004_button_pullup_pulldown`. **Готовность перейти дальше:** - ESP32 прошивается и выполняет blink. - GPIO подключаются только к безопасным уровням 3.3V. - Внешняя схема имеет common ground с ESP32. ## Stage 3: Interfaces: GPIO, ADC, PWM, I2C, UART **Цель:** изучить базовые интерфейсы как контракты между firmware и железом. **Ключевые понятия:** input/output mode, pull-up, pull-down, PWM duty cycle, I2C address, SDA/SCL, UART TX/RX. **Лабораторные:** `004_button_pullup_pulldown`, `005_pwm_led_dimming`, `006_i2c_lcd_1602`. **Готовность перейти дальше:** - Кнопка читается стабильно. - PWM изменяет яркость LED ожидаемым образом. - LCD 1602 I2C обнаружен scanner-ом и выводит тестовый текст. ## Stage 4: Embedded Software Patterns **Цель:** писать firmware как поддерживаемый software-проект, а не набор delay-based скетчей. **Ключевые понятия:** state machine, non-blocking loop, debouncing, configuration, logging, hardware abstraction. **Лабораторные:** расширения `003`-`006`. **Готовность перейти дальше:** - Firmware имеет понятную структуру и physical test procedure. - Поведение проверяется через наблюдаемые состояния и измерения. - Ошибки отделяются на hardware, wiring, power и software causes. ## Stage 5: IoT Projects **Цель:** соединить ESP32, периферию и сеть в маленькие полезные проекты. **Ключевые понятия:** Wi-Fi, reconnect logic, MQTT, status display, telemetry, watchdog thinking. **Лабораторные:** `008_wifi_status_display`, будущие sensor node проекты. **Готовность перейти дальше:** - Устройство показывает сетевой статус на LCD. - Есть понятная стратегия reconnect и индикации ошибок. - Состояние проекта можно восстановить по lab notes. ## Stage 6: Debugging, Reliability, Power, Architecture **Цель:** перейти от "работает на столе" к инженерному мышлению о надежности. **Ключевые понятия:** brownout, current budget, boot diagnostics, fault isolation, power domains, enclosure thinking. **Лабораторные:** повторное улучшение предыдущих проектов. **Готовность:** - Для проекта есть измеренный power budget. - Известны failure modes и симптомы. - Архитектура firmware и схемы объяснима через ограничения железа.