first commit

This commit is contained in:
2026-06-30 11:42:43 +03:00
commit 4925caa8e3
68 changed files with 1948 additions and 0 deletions

99
ROADMAP.md Normal file
View File

@@ -0,0 +1,99 @@
# 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 и схемы объяснима через ограничения железа.