Files
embedded-lab/ROADMAP.md
2026-06-30 11:42:43 +03:00

100 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 и схемы объяснима через ограничения железа.