first commit
This commit is contained in:
46
.cursor/rules/embedded-lab.mdc
Normal file
46
.cursor/rules/embedded-lab.mdc
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
description: Embedded/electronics tutor, safety rules, lab notebook, and memory bank conventions
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# embedded-lab Agent Rules
|
||||||
|
|
||||||
|
You are an embedded/electronics tutor and lab notebook maintainer for this repository.
|
||||||
|
|
||||||
|
## Language And Teaching Style
|
||||||
|
|
||||||
|
- Пиши на русском, если пользователь пишет на русском.
|
||||||
|
- Объясняй через практические эксперименты, измерения и debugging.
|
||||||
|
- Учитывай, что пользователь Middle ML Engineer с сильным software/Linux/backend background.
|
||||||
|
- Связывай embedded concepts с software engineering analogies, когда это помогает.
|
||||||
|
- Не раздувай файлы лишней теорией.
|
||||||
|
- Сохраняй только то, что полезно для будущего debugging и обучения.
|
||||||
|
|
||||||
|
## Lab Notebook Behavior
|
||||||
|
|
||||||
|
- После каждой учебной сессии обновляй `memory_bank` и relevant lab files.
|
||||||
|
- Явно отделяй `expected` от `actual`.
|
||||||
|
- Не придумывай результаты измерений.
|
||||||
|
- Не утверждай, что что-то проверено, если это не было проверено.
|
||||||
|
- Фиксируй ошибки, симптомы, debugging steps и выводы.
|
||||||
|
- Сохраняй next actions конкретными и выполнимыми.
|
||||||
|
|
||||||
|
## Electronics Safety
|
||||||
|
|
||||||
|
- Не считай, что схема собрана правильно.
|
||||||
|
- Всегда предлагай измерения мультиметром.
|
||||||
|
- Перед подачей питания предлагай проверить короткое замыкание.
|
||||||
|
- Всегда учитывай ограничения ESP32: GPIO строго 3.3V.
|
||||||
|
- Запрещай подключение 5V напрямую к GPIO ESP32.
|
||||||
|
- Напоминай про common ground для внешних модулей и ESP32.
|
||||||
|
- Избегай mains/220V проектов.
|
||||||
|
- При работе с БП всегда думай о current limit.
|
||||||
|
|
||||||
|
## File Updates
|
||||||
|
|
||||||
|
- Обновляй `memory_bank/01_current_state.md` после изменения текущей фазы, лабораторной или next actions.
|
||||||
|
- Добавляй новые понятия в `memory_bank/02_concepts.md` кратко и практически.
|
||||||
|
- Обновляй `memory_bank/03_components.md`, когда компонент реально использован или проверен.
|
||||||
|
- Записывай ошибки и симптомы в `memory_bank/04_mistakes_and_debugging.md`.
|
||||||
|
- Добавляй записи сессий в `memory_bank/08_learning_log.md`.
|
||||||
|
- Для лабораторных обновляй `measurements.md`, `notes.md`, `schematic.md` и `firmware.md` по факту выполненной работы.
|
||||||
46
.gitignore
vendored
Normal file
46
.gitignore
vendored
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# OS files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Editor files
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Python
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
.pytest_cache/
|
||||||
|
.mypy_cache/
|
||||||
|
.ruff_cache/
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
env/
|
||||||
|
|
||||||
|
# PlatformIO
|
||||||
|
.pio/
|
||||||
|
.pioenvs/
|
||||||
|
.piolibdeps/
|
||||||
|
libdeps/
|
||||||
|
|
||||||
|
# ESP-IDF / CMake build artifacts
|
||||||
|
build/
|
||||||
|
cmake-build-*/
|
||||||
|
sdkconfig.old
|
||||||
|
|
||||||
|
# Arduino / generic build artifacts
|
||||||
|
*.elf
|
||||||
|
*.bin
|
||||||
|
*.hex
|
||||||
|
*.map
|
||||||
|
*.o
|
||||||
|
*.a
|
||||||
|
|
||||||
|
# Logs and temporary files
|
||||||
|
*.log
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
tmp/
|
||||||
|
temp/
|
||||||
18
GLOSSARY.md
Normal file
18
GLOSSARY.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Glossary
|
||||||
|
|
||||||
|
- **Напряжение (voltage):** разность электрических потенциалов. Практически: что показывает мультиметр между двумя точками.
|
||||||
|
- **Ток (current):** поток заряда через участок схемы. Практически: что может перегреть компонент, если не ограничено.
|
||||||
|
- **Сопротивление (resistance):** ограничение тока. Резистор в LED-схеме работает как safety guard.
|
||||||
|
- **Закон Ома (Ohm's law):** `V = I * R`. Используется для оценки тока через резистор.
|
||||||
|
- **Мощность (power):** `P = V * I`. Важна для нагрева компонентов.
|
||||||
|
- **Земля (ground, GND):** опорная точка напряжений в схеме.
|
||||||
|
- **Общая земля (common ground):** общий GND между устройствами, чтобы сигналы имели один reference.
|
||||||
|
- **Ограничение тока (current limiting):** режим БП, который не дает току превысить заданный лимит.
|
||||||
|
- **GPIO (general-purpose input/output):** цифровой пин микроконтроллера. Для ESP32 считать строго 3.3V.
|
||||||
|
- **Breadboard rails:** длинные линии питания на макетной плате. Могут быть разделены посередине.
|
||||||
|
- **Pull-up:** резистор, который подтягивает вход к логической единице.
|
||||||
|
- **Pull-down:** резистор, который подтягивает вход к логическому нулю.
|
||||||
|
- **PWM (pulse-width modulation):** быстрое переключение сигнала с разной долей включенного времени.
|
||||||
|
- **I2C:** двухпроводной интерфейс с линиями SDA и SCL.
|
||||||
|
- **UART:** последовательный интерфейс TX/RX.
|
||||||
|
- **Datasheet:** технический контракт компонента: пределы, режимы, pinout, electrical characteristics.
|
||||||
40
README.md
Normal file
40
README.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# embedded-lab
|
||||||
|
|
||||||
|
`embedded-lab` — инженерный лабораторный репозиторий для изучения практической электроники и embedded-разработки.
|
||||||
|
|
||||||
|
Это не конспект и не набор случайных заметок. Репозиторий ведется как embedded lab notebook: каждая сессия должна оставлять после себя проверяемый след — что собиралось, что ожидалось, что было измерено, какие ошибки возникли и какой вывод сделан.
|
||||||
|
|
||||||
|
## Learning Philosophy
|
||||||
|
|
||||||
|
Базовый цикл обучения:
|
||||||
|
|
||||||
|
1. **Эксперимент** — собираем маленькую схему или firmware-пример.
|
||||||
|
2. **Схема** — явно фиксируем соединения и ограничения.
|
||||||
|
3. **Измерение** — проверяем напряжение, ток, сопротивление, питание, уровни сигналов.
|
||||||
|
4. **Ошибка** — не считаем схему правильной заранее; симптомы важнее предположений.
|
||||||
|
5. **Вывод** — коротко записываем, что стало понятнее и что делать дальше.
|
||||||
|
|
||||||
|
Подход близок к software engineering: схема — это runtime-система, мультиметр — debugger, питание — production dependency, datasheet — API contract, smoke test — первое безопасное включение.
|
||||||
|
|
||||||
|
## Быстрый Старт
|
||||||
|
|
||||||
|
1. Прочитать `SAFETY.md`.
|
||||||
|
2. Прочитать `SESSION_PROTOCOL.md`.
|
||||||
|
3. Проверить текущее состояние в `memory_bank/01_current_state.md`.
|
||||||
|
4. Начать с лабораторной `labs/001_led_resistor_psu/README.md`.
|
||||||
|
5. Перед подачей питания использовать `snippets/psu_safety_checklist.md` и `snippets/multimeter_checklist.md`.
|
||||||
|
|
||||||
|
Первая цель: безопасно собрать LED + resistor от лабораторного БП, выставить current limit, измерить напряжения и вычислить ток через резистор.
|
||||||
|
|
||||||
|
## Как Вести Репозиторий
|
||||||
|
|
||||||
|
После каждой учебной сессии обновляются:
|
||||||
|
|
||||||
|
- `memory_bank/01_current_state.md`
|
||||||
|
- `memory_bank/02_concepts.md`
|
||||||
|
- `memory_bank/03_components.md`
|
||||||
|
- `memory_bank/04_mistakes_and_debugging.md`
|
||||||
|
- `memory_bank/08_learning_log.md`
|
||||||
|
- relevant files внутри `labs/`
|
||||||
|
|
||||||
|
Не нужно писать длинную теорию. Важнее сохранить факты, измерения, симптомы, решения и следующие действия.
|
||||||
99
ROADMAP.md
Normal file
99
ROADMAP.md
Normal 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 и схемы объяснима через ограничения железа.
|
||||||
38
SAFETY.md
Normal file
38
SAFETY.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Safety
|
||||||
|
|
||||||
|
Этот файл читается перед первыми лабораторными и перед любым новым типом подключения.
|
||||||
|
|
||||||
|
## Лабораторный БП
|
||||||
|
|
||||||
|
- Перед подключением схемы выставить нужное напряжение без нагрузки.
|
||||||
|
- Всегда выставлять **current limit** до подключения схемы.
|
||||||
|
- Не начинать с высокого тока. Для первых LED-схем использовать малый лимит и повышать только если понятно, почему это нужно.
|
||||||
|
- После изменения схемы выключить выход БП, проверить соединения, затем включать снова.
|
||||||
|
- Если БП ушел в current limit, не "добавлять ток" автоматически. Сначала искать короткое замыкание, перепутанную полярность или неверный номинал резистора.
|
||||||
|
|
||||||
|
## ESP32
|
||||||
|
|
||||||
|
- **ESP32 GPIO is 3.3V only.**
|
||||||
|
- Нельзя подключать 5V напрямую к GPIO ESP32.
|
||||||
|
- Внешние модули и ESP32 должны иметь **common ground**, если между ними есть сигнальные соединения.
|
||||||
|
- Не питать ESP32 от нескольких источников без понимания схемы питания dev board.
|
||||||
|
- Перед подключением к GPIO проверять мультиметром, какое напряжение реально приходит на провод.
|
||||||
|
|
||||||
|
## Breadboard И Проверки
|
||||||
|
|
||||||
|
- Перед подачей питания проверить схему мультиметром на короткое замыкание между `+` и `GND`.
|
||||||
|
- Проверить, не разделены ли power rails на breadboard посередине.
|
||||||
|
- Не считать цвет провода доказательством сигнала. Цвет помогает читать схему, но проверяет только мультиметр.
|
||||||
|
|
||||||
|
## Пайка
|
||||||
|
|
||||||
|
- Паять только с вентиляцией.
|
||||||
|
- Держать горячий паяльник на подставке.
|
||||||
|
- Не трогать жало и свежие соединения.
|
||||||
|
- После пайки проверять мостики и короткие замыкания.
|
||||||
|
|
||||||
|
## Запрет На Старте
|
||||||
|
|
||||||
|
- Никаких mains/220V проектов на начальном этапе.
|
||||||
|
- Не разбирать сетевые блоки питания, зарядки и устройства, подключенные к розетке.
|
||||||
|
- Работать только с низковольтными DC-схемами.
|
||||||
51
SESSION_PROTOCOL.md
Normal file
51
SESSION_PROTOCOL.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# Session Protocol
|
||||||
|
|
||||||
|
Каждая учебная сессия должна оставлять короткую инженерную запись. Цель — не написать лекцию, а сохранить состояние, измерения, ошибки и следующий шаг.
|
||||||
|
|
||||||
|
## Формат Сессии
|
||||||
|
|
||||||
|
### Goal
|
||||||
|
|
||||||
|
Что хотим проверить или собрать.
|
||||||
|
|
||||||
|
### Hypothesis
|
||||||
|
|
||||||
|
Что ожидаем увидеть и почему.
|
||||||
|
|
||||||
|
### Circuit
|
||||||
|
|
||||||
|
Какие компоненты используются и как соединены.
|
||||||
|
|
||||||
|
### Expected Behavior
|
||||||
|
|
||||||
|
Как схема или firmware должны вести себя при правильной сборке.
|
||||||
|
|
||||||
|
### Expected Measurements
|
||||||
|
|
||||||
|
Какие напряжения, токи, сопротивления или логические уровни ожидаются.
|
||||||
|
|
||||||
|
### Actual Measurements
|
||||||
|
|
||||||
|
Фактические измерения. Не придумывать значения, если они не измерены.
|
||||||
|
|
||||||
|
### Bugs / Surprises
|
||||||
|
|
||||||
|
Симптомы, ошибки, странное поведение, запах, нагрев, current limit, нестабильность контакта.
|
||||||
|
|
||||||
|
### Explanation
|
||||||
|
|
||||||
|
Короткое объяснение результата через схему, измерения и ограничения компонентов.
|
||||||
|
|
||||||
|
### Files To Update
|
||||||
|
|
||||||
|
Какие файлы memory bank и lab notes нужно обновить.
|
||||||
|
|
||||||
|
### Next Step
|
||||||
|
|
||||||
|
Один или несколько конкретных следующих шагов.
|
||||||
|
|
||||||
|
## Команда Для AI-Агента После Сессии
|
||||||
|
|
||||||
|
```text
|
||||||
|
Update the embedded-lab memory bank and lab notes based on this session. Update current state, concepts, components, mistakes/debugging, learning log, and next actions. Keep it concise but specific.
|
||||||
|
```
|
||||||
16
datasheets/README.md
Normal file
16
datasheets/README.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Datasheets
|
||||||
|
|
||||||
|
Здесь хранить ссылки или локальные заметки по datasheets компонентов.
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
- Datasheet — это API contract компонента.
|
||||||
|
- Для ESP32 dev board фиксировать pinout и electrical limits.
|
||||||
|
- Для транзисторов фиксировать тип, pinout и допустимый ток.
|
||||||
|
- Для LCD I2C фиксировать address, питание и pull-up voltage.
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
|
||||||
|
- Добавить datasheet/pinout конкретной ESP32 dev board.
|
||||||
|
- Добавить datasheet или маркировку транзисторов из набора.
|
||||||
|
- Добавить заметку по LCD 1602 I2C backpack.
|
||||||
14
diagrams/README.md
Normal file
14
diagrams/README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Diagrams
|
||||||
|
|
||||||
|
Здесь хранить схемы, pinout snapshots, wiring diagrams и иллюстрации лабораторных.
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
- Диаграмма должна соответствовать фактической сборке или явно быть marked as expected.
|
||||||
|
- Если схема менялась во время debugging, полезно сохранить final actual version.
|
||||||
|
- Не заменять измерения красивой схемой: diagram помогает читать, мультиметр подтверждает.
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
|
||||||
|
- Добавить diagram для `001_led_resistor_psu` после первой сборки.
|
||||||
|
- Добавить breadboard rail map после Lab 002.
|
||||||
25
firmware/README.md
Normal file
25
firmware/README.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Firmware
|
||||||
|
|
||||||
|
Firmware хранится отдельно от lab notes, чтобы код, физическая схема и измерения не смешивались.
|
||||||
|
|
||||||
|
Каждый firmware example должен иметь:
|
||||||
|
|
||||||
|
- ссылку на relevant lab;
|
||||||
|
- выбранный board/workflow;
|
||||||
|
- physical test procedure;
|
||||||
|
- ожидаемое поведение;
|
||||||
|
- known limitations;
|
||||||
|
- способ не commit-ить secrets.
|
||||||
|
|
||||||
|
## Preferred Initial Workflow
|
||||||
|
|
||||||
|
- Начать с Arduino Core или PlatformIO.
|
||||||
|
- ESP-IDF оставить на более поздний этап, когда базовые GPIO/I2C/PWM и debugging уже понятны.
|
||||||
|
- Для каждого примера сначала описывать, что должно быть видно физически: LED blink, serial log, LCD text, measured GPIO level.
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
- `esp32/` — общие заметки по ESP32.
|
||||||
|
- `arduino/` — Arduino Core examples and notes.
|
||||||
|
- `platformio/` — PlatformIO projects and notes.
|
||||||
|
- `esp-idf/` — future ESP-IDF experiments.
|
||||||
17
firmware/arduino/README.md
Normal file
17
firmware/arduino/README.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Arduino Core
|
||||||
|
|
||||||
|
Arduino Core подходит для первых labs, потому что быстро дает feedback loop: write, flash, observe, measure.
|
||||||
|
|
||||||
|
## Use For
|
||||||
|
|
||||||
|
- Blink
|
||||||
|
- Button input
|
||||||
|
- PWM LED dimming
|
||||||
|
- I2C scanner
|
||||||
|
- LCD test
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Board selection must match actual ESP32 dev board.
|
||||||
|
- Serial logs are part of debugging, but physical measurements still matter.
|
||||||
|
- Secrets must not be committed.
|
||||||
14
firmware/esp-idf/README.md
Normal file
14
firmware/esp-idf/README.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# ESP-IDF
|
||||||
|
|
||||||
|
ESP-IDF is planned for later stages.
|
||||||
|
|
||||||
|
## Use Later For
|
||||||
|
|
||||||
|
- Deeper ESP32 architecture.
|
||||||
|
- Tasks, timers and FreeRTOS concepts.
|
||||||
|
- More production-like firmware structure.
|
||||||
|
- Wi-Fi reliability and power management.
|
||||||
|
|
||||||
|
## Current Decision
|
||||||
|
|
||||||
|
Do not start here. First build confidence with safety, measurements, GPIO, PWM and I2C using Arduino Core or PlatformIO.
|
||||||
15
firmware/esp32/README.md
Normal file
15
firmware/esp32/README.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# ESP32 Firmware Notes
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
- GPIO считать strictly 3.3V.
|
||||||
|
- Перед использованием GPIO проверить pinout конкретной dev board.
|
||||||
|
- Избегать boot strap pins на первых лабораторных, пока не понятны ограничения.
|
||||||
|
- Для внешних схем нужен common ground.
|
||||||
|
- Сначала проверять простую physical behavior, затем усложнять firmware.
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
|
||||||
|
- Записать точную модель ESP32 dev board.
|
||||||
|
- Выбрать безопасные GPIO для первых labs.
|
||||||
|
- Зафиксировать upload workflow.
|
||||||
15
firmware/platformio/README.md
Normal file
15
firmware/platformio/README.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# PlatformIO
|
||||||
|
|
||||||
|
PlatformIO is a good default once the first Arduino-style examples work.
|
||||||
|
|
||||||
|
## Why Use It
|
||||||
|
|
||||||
|
- Reproducible project configuration.
|
||||||
|
- Clear dependency management.
|
||||||
|
- Better structure for multiple examples.
|
||||||
|
|
||||||
|
## Initial Rules
|
||||||
|
|
||||||
|
- Each project should reference its lab.
|
||||||
|
- `platformio.ini` should document board and framework.
|
||||||
|
- Physical test procedure belongs in lab `firmware.md`, not only in code comments.
|
||||||
54
labs/001_led_resistor_psu/README.md
Normal file
54
labs/001_led_resistor_psu/README.md
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# Lab 001: LED + Resistor + Bench PSU
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Безопасно зажечь LED от лабораторного БП через последовательный резистор, выставить current limit и измерить напряжения.
|
||||||
|
|
||||||
|
## Required Components
|
||||||
|
|
||||||
|
- Bench power supply
|
||||||
|
- Multimeter
|
||||||
|
- Breadboard MB-102
|
||||||
|
- LED
|
||||||
|
- Resistor, начать с безопасного номинала после проверки набора
|
||||||
|
- Dupont wires
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
LED светится при правильной полярности и ограниченном токе. БП не должен уходить в current limit при исправной схеме и разумном резисторе.
|
||||||
|
|
||||||
|
## Pre-Flight Checklist
|
||||||
|
|
||||||
|
- Определить номинал резистора.
|
||||||
|
- Выставить напряжение БП до подключения схемы.
|
||||||
|
- Выставить малый current limit.
|
||||||
|
- Проверить LED polarity.
|
||||||
|
- Проверить мультиметром отсутствие короткого замыкания между `+` и `GND`.
|
||||||
|
|
||||||
|
## Safety Notes
|
||||||
|
|
||||||
|
- Не подключать LED без резистора.
|
||||||
|
- Не начинать с высокого current limit.
|
||||||
|
- Выключать выход БП перед изменением схемы.
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
- Напряжение БП: TBD before run.
|
||||||
|
- Падение напряжения на LED: expected depends on LED color.
|
||||||
|
- Падение напряжения на резисторе: `Vres = Vpsu - Vled`.
|
||||||
|
- Ток через LED: `I = Vres / R`.
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: записать только реальные измерения.
|
||||||
|
|
||||||
|
## Debugging Checklist
|
||||||
|
|
||||||
|
- LED не светится: проверить полярность.
|
||||||
|
- LED не светится: проверить rail continuity.
|
||||||
|
- БП в current limit: искать short или слишком малый резистор.
|
||||||
|
- Измерить напряжение на LED и резисторе отдельно.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: краткий вывод после выполнения.
|
||||||
27
labs/001_led_resistor_psu/measurements.md
Normal file
27
labs/001_led_resistor_psu/measurements.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Measurements
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
| Point | Expected |
|
||||||
|
| --- | --- |
|
||||||
|
| PSU output voltage | TBD |
|
||||||
|
| PSU current limit | Low, set before connecting |
|
||||||
|
| LED voltage drop | Depends on LED color |
|
||||||
|
| Resistor voltage drop | `Vpsu - Vled` |
|
||||||
|
| LED current | `Vres / R` |
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: добавить реальные значения после выполнения.
|
||||||
|
|
||||||
|
| Point | Actual |
|
||||||
|
| --- | --- |
|
||||||
|
| PSU output voltage | TBD |
|
||||||
|
| PSU current limit | TBD |
|
||||||
|
| LED voltage drop | TBD |
|
||||||
|
| Resistor voltage drop | TBD |
|
||||||
|
| Calculated current | TBD |
|
||||||
|
|
||||||
|
## Observations
|
||||||
|
|
||||||
|
TODO: светимость, нагрев, current limit, странные симптомы.
|
||||||
17
labs/001_led_resistor_psu/notes.md
Normal file
17
labs/001_led_resistor_psu/notes.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Notes
|
||||||
|
|
||||||
|
## Bugs / Surprises
|
||||||
|
|
||||||
|
TODO: записать симптомы и debugging steps.
|
||||||
|
|
||||||
|
## Explanation
|
||||||
|
|
||||||
|
TODO: объяснить результат через Ohm's law, падения напряжения и current limit.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: что теперь понятно и что проверить дальше.
|
||||||
|
|
||||||
|
## Next Actions
|
||||||
|
|
||||||
|
TODO: следующий маленький шаг.
|
||||||
18
labs/001_led_resistor_psu/schematic.md
Normal file
18
labs/001_led_resistor_psu/schematic.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Schematic
|
||||||
|
|
||||||
|
## Expected Circuit
|
||||||
|
|
||||||
|
```text
|
||||||
|
PSU + -> resistor -> LED anode
|
||||||
|
LED cathode -> PSU -
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Резистор должен быть последовательно с LED.
|
||||||
|
- Направление LED проверить перед включением.
|
||||||
|
- Breadboard rails проверить мультиметром, не полагаться на маркировку.
|
||||||
|
|
||||||
|
## Actual Circuit
|
||||||
|
|
||||||
|
TODO: записать фактическое соединение после сборки.
|
||||||
49
labs/002_breadboard_and_multimeter/README.md
Normal file
49
labs/002_breadboard_and_multimeter/README.md
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# Lab 002: Breadboard And Multimeter
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Понять соединения breadboard MB-102 и научиться проверять rails, continuity, voltage и resistance мультиметром.
|
||||||
|
|
||||||
|
## Required Components
|
||||||
|
|
||||||
|
- Breadboard MB-102
|
||||||
|
- Multimeter
|
||||||
|
- Dupont wires
|
||||||
|
- Resistors
|
||||||
|
- Bench power supply, только после dry checks
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
Мультиметр показывает continuity только там, где точки breadboard реально соединены. Power rails могут быть разделены посередине.
|
||||||
|
|
||||||
|
## Pre-Flight Checklist
|
||||||
|
|
||||||
|
- Проверить режим continuity.
|
||||||
|
- Проверить сопротивление известного резистора.
|
||||||
|
- Проверить, какие точки в одном ряду соединены.
|
||||||
|
- Проверить rails вдоль всей длины breadboard.
|
||||||
|
|
||||||
|
## Safety Notes
|
||||||
|
|
||||||
|
- Не подавать питание, пока не понятна topology breadboard.
|
||||||
|
- Перед включением БП проверить короткое замыкание между rails.
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
- Continuity внутри одного connected row.
|
||||||
|
- No continuity между разными rows.
|
||||||
|
- Rails: TBD, зависит от конкретной breadboard.
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: записать реальные continuity и rail checks.
|
||||||
|
|
||||||
|
## Debugging Checklist
|
||||||
|
|
||||||
|
- Если схема не питается, проверить split rails.
|
||||||
|
- Если измерение странное, проверить режим мультиметра и положение щупов.
|
||||||
|
- Если контакт нестабильный, заменить jumper или точку breadboard.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: краткий вывод после выполнения.
|
||||||
27
labs/002_breadboard_and_multimeter/measurements.md
Normal file
27
labs/002_breadboard_and_multimeter/measurements.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Measurements
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
| Check | Expected |
|
||||||
|
| --- | --- |
|
||||||
|
| Same row continuity | Continuity |
|
||||||
|
| Different rows continuity | No continuity |
|
||||||
|
| Positive rail full length | TBD |
|
||||||
|
| Negative rail full length | TBD |
|
||||||
|
| Resistance of known resistor | Near nominal value |
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: добавить реальные значения.
|
||||||
|
|
||||||
|
| Check | Actual |
|
||||||
|
| --- | --- |
|
||||||
|
| Same row continuity | TBD |
|
||||||
|
| Different rows continuity | TBD |
|
||||||
|
| Positive rail full length | TBD |
|
||||||
|
| Negative rail full length | TBD |
|
||||||
|
| Known resistor value | TBD |
|
||||||
|
|
||||||
|
## Observations
|
||||||
|
|
||||||
|
TODO: особенности конкретной breadboard.
|
||||||
17
labs/002_breadboard_and_multimeter/notes.md
Normal file
17
labs/002_breadboard_and_multimeter/notes.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Notes
|
||||||
|
|
||||||
|
## Bugs / Surprises
|
||||||
|
|
||||||
|
TODO: записать неожиданные continuity results или плохие контакты.
|
||||||
|
|
||||||
|
## Explanation
|
||||||
|
|
||||||
|
TODO: объяснить реальную topology breadboard.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: что теперь известно о breadboard и мультиметре.
|
||||||
|
|
||||||
|
## Next Actions
|
||||||
|
|
||||||
|
TODO: следующий маленький шаг.
|
||||||
13
labs/002_breadboard_and_multimeter/schematic.md
Normal file
13
labs/002_breadboard_and_multimeter/schematic.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Schematic
|
||||||
|
|
||||||
|
## Expected Checks
|
||||||
|
|
||||||
|
```text
|
||||||
|
Breadboard row continuity: probe A <-> probe B
|
||||||
|
Power rail continuity: rail start <-> rail middle <-> rail end
|
||||||
|
Short check: + rail <-> - rail
|
||||||
|
```
|
||||||
|
|
||||||
|
## Actual Breadboard Map
|
||||||
|
|
||||||
|
TODO: записать, какие rails разделены и где нужны jumpers.
|
||||||
52
labs/003_esp32_blink/README.md
Normal file
52
labs/003_esp32_blink/README.md
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# Lab 003: ESP32 Blink
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Прошить ESP32 и выполнить простой blink на безопасном GPIO или встроенном LED, если он есть на конкретной dev board.
|
||||||
|
|
||||||
|
## Required Components
|
||||||
|
|
||||||
|
- ESP32 dev board
|
||||||
|
- USB cable
|
||||||
|
- Computer with Arduino Core or PlatformIO
|
||||||
|
- Optional external LED + resistor
|
||||||
|
- Multimeter
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
ESP32 прошивается, запускает firmware, LED мигает с заданным периодом.
|
||||||
|
|
||||||
|
## Pre-Flight Checklist
|
||||||
|
|
||||||
|
- Определить точную модель ESP32 dev board.
|
||||||
|
- Найти pinout и безопасные GPIO.
|
||||||
|
- Не подключать 5V к GPIO.
|
||||||
|
- Если используется external LED, поставить резистор последовательно.
|
||||||
|
- Проверить, что питание идет только понятным способом.
|
||||||
|
|
||||||
|
## Safety Notes
|
||||||
|
|
||||||
|
- ESP32 GPIO strictly 3.3V.
|
||||||
|
- External LED должен иметь резистор.
|
||||||
|
- Не использовать boot strap pins без проверки pinout.
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
- USB 5V на входе dev board: expected near 5V.
|
||||||
|
- 3.3V rail на ESP32: expected near 3.3V.
|
||||||
|
- GPIO blink level: low около 0V, high около 3.3V.
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: записать реальные измерения.
|
||||||
|
|
||||||
|
## Debugging Checklist
|
||||||
|
|
||||||
|
- Если прошивка не загружается, проверить board/port/boot mode.
|
||||||
|
- Если LED не мигает, проверить правильный GPIO.
|
||||||
|
- Если external LED не светится, проверить полярность и резистор.
|
||||||
|
- Измерить 3.3V rail и GPIO level мультиметром.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: краткий вывод после выполнения.
|
||||||
26
labs/003_esp32_blink/firmware.md
Normal file
26
labs/003_esp32_blink/firmware.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# Firmware
|
||||||
|
|
||||||
|
## Preferred Starting Workflow
|
||||||
|
|
||||||
|
Start with Arduino Core or PlatformIO. ESP-IDF оставить на более поздний этап.
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
- Configure selected GPIO as output.
|
||||||
|
- Toggle GPIO with visible delay.
|
||||||
|
- If using built-in LED, confirm whether active HIGH or active LOW.
|
||||||
|
|
||||||
|
## Physical Test Procedure
|
||||||
|
|
||||||
|
1. Прошить firmware.
|
||||||
|
2. Наблюдать blink.
|
||||||
|
3. Измерить GPIO low/high мультиметром.
|
||||||
|
4. Записать board model, GPIO и actual behavior.
|
||||||
|
|
||||||
|
## Code
|
||||||
|
|
||||||
|
TODO: добавить минимальный blink sketch после выбора board/workflow.
|
||||||
|
|
||||||
|
## Actual Result
|
||||||
|
|
||||||
|
TODO: записать результат прошивки и наблюдения.
|
||||||
25
labs/003_esp32_blink/measurements.md
Normal file
25
labs/003_esp32_blink/measurements.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Measurements
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
| Point | Expected |
|
||||||
|
| --- | --- |
|
||||||
|
| USB input | Near 5V |
|
||||||
|
| ESP32 3.3V rail | Near 3.3V |
|
||||||
|
| GPIO LOW | Near 0V |
|
||||||
|
| GPIO HIGH | Near 3.3V |
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: добавить реальные значения.
|
||||||
|
|
||||||
|
| Point | Actual |
|
||||||
|
| --- | --- |
|
||||||
|
| USB input | TBD |
|
||||||
|
| ESP32 3.3V rail | TBD |
|
||||||
|
| GPIO LOW | TBD |
|
||||||
|
| GPIO HIGH | TBD |
|
||||||
|
|
||||||
|
## Observations
|
||||||
|
|
||||||
|
TODO: upload logs, LED behavior, reset/boot issues.
|
||||||
17
labs/003_esp32_blink/notes.md
Normal file
17
labs/003_esp32_blink/notes.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Notes
|
||||||
|
|
||||||
|
## Bugs / Surprises
|
||||||
|
|
||||||
|
TODO: записать проблемы с flashing, GPIO, board selection или LED polarity.
|
||||||
|
|
||||||
|
## Explanation
|
||||||
|
|
||||||
|
TODO: объяснить связь firmware output mode, GPIO voltage и observed blink.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: что подтверждено о board и workflow.
|
||||||
|
|
||||||
|
## Next Actions
|
||||||
|
|
||||||
|
TODO: следующий маленький шаг.
|
||||||
19
labs/003_esp32_blink/schematic.md
Normal file
19
labs/003_esp32_blink/schematic.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Schematic
|
||||||
|
|
||||||
|
## Option A: Built-In LED
|
||||||
|
|
||||||
|
```text
|
||||||
|
Computer USB -> ESP32 dev board
|
||||||
|
Built-in LED GPIO: TBD by board model
|
||||||
|
```
|
||||||
|
|
||||||
|
## Option B: External LED
|
||||||
|
|
||||||
|
```text
|
||||||
|
ESP32 GPIO -> resistor -> LED anode
|
||||||
|
LED cathode -> ESP32 GND
|
||||||
|
```
|
||||||
|
|
||||||
|
## Actual Circuit
|
||||||
|
|
||||||
|
TODO: указать выбранный GPIO, resistor value и способ питания.
|
||||||
52
labs/004_button_pullup_pulldown/README.md
Normal file
52
labs/004_button_pullup_pulldown/README.md
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# Lab 004: Button Pull-Up / Pull-Down
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Собрать кнопку как цифровой вход ESP32 и сравнить pull-up и pull-down подходы.
|
||||||
|
|
||||||
|
## Required Components
|
||||||
|
|
||||||
|
- ESP32 dev board
|
||||||
|
- Button, if available
|
||||||
|
- Resistors
|
||||||
|
- Breadboard
|
||||||
|
- Dupont wires
|
||||||
|
- Multimeter
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
GPIO имеет стабильный уровень `0` или `1`, а при нажатии кнопки меняет состояние предсказуемо.
|
||||||
|
|
||||||
|
## Pre-Flight Checklist
|
||||||
|
|
||||||
|
- Уточнить, есть ли кнопки в наборе.
|
||||||
|
- Выбрать безопасный GPIO.
|
||||||
|
- Проверить, что на GPIO не попадет 5V.
|
||||||
|
- Проверить common ground.
|
||||||
|
- Проверить wiring до прошивки.
|
||||||
|
|
||||||
|
## Safety Notes
|
||||||
|
|
||||||
|
- ESP32 GPIO strictly 3.3V.
|
||||||
|
- Не подключать GPIO напрямую к 5V.
|
||||||
|
- Не оставлять input floating, если цель — стабильное чтение.
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
- GPIO idle level: около 0V или 3.3V в зависимости от схемы.
|
||||||
|
- GPIO pressed level: противоположный idle level.
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: записать реальные измерения.
|
||||||
|
|
||||||
|
## Debugging Checklist
|
||||||
|
|
||||||
|
- Если input random, проверить pull-up/pull-down.
|
||||||
|
- Если состояние не меняется, проверить button orientation.
|
||||||
|
- Если ESP32 не boot-ится, проверить выбранный GPIO.
|
||||||
|
- Измерить напряжение на GPIO в idle и pressed states.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: краткий вывод после выполнения.
|
||||||
22
labs/004_button_pullup_pulldown/firmware.md
Normal file
22
labs/004_button_pullup_pulldown/firmware.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Firmware
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
- Configure GPIO as input.
|
||||||
|
- Read button state.
|
||||||
|
- Print state to serial or toggle LED.
|
||||||
|
- Optional: compare external resistor with internal pull-up.
|
||||||
|
|
||||||
|
## Physical Test Procedure
|
||||||
|
|
||||||
|
1. Measure GPIO idle voltage.
|
||||||
|
2. Press button and measure GPIO voltage.
|
||||||
|
3. Run firmware and compare serial/LED state with measurements.
|
||||||
|
|
||||||
|
## Code
|
||||||
|
|
||||||
|
TODO: добавить firmware после выбора GPIO и workflow.
|
||||||
|
|
||||||
|
## Actual Result
|
||||||
|
|
||||||
|
TODO: записать фактическое поведение.
|
||||||
21
labs/004_button_pullup_pulldown/measurements.md
Normal file
21
labs/004_button_pullup_pulldown/measurements.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Measurements
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
| State | Expected GPIO Voltage |
|
||||||
|
| --- | --- |
|
||||||
|
| Idle | TBD by pull-up/pull-down choice |
|
||||||
|
| Pressed | Opposite of idle |
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: добавить реальные значения.
|
||||||
|
|
||||||
|
| State | Actual GPIO Voltage |
|
||||||
|
| --- | --- |
|
||||||
|
| Idle | TBD |
|
||||||
|
| Pressed | TBD |
|
||||||
|
|
||||||
|
## Observations
|
||||||
|
|
||||||
|
TODO: bounce, unstable readings, serial output.
|
||||||
17
labs/004_button_pullup_pulldown/notes.md
Normal file
17
labs/004_button_pullup_pulldown/notes.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Notes
|
||||||
|
|
||||||
|
## Bugs / Surprises
|
||||||
|
|
||||||
|
TODO: записать floating input, bounce, wrong button orientation или boot issues.
|
||||||
|
|
||||||
|
## Explanation
|
||||||
|
|
||||||
|
TODO: объяснить pull-up/pull-down через defined default state.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: что стало понятно о digital input.
|
||||||
|
|
||||||
|
## Next Actions
|
||||||
|
|
||||||
|
TODO: следующий маленький шаг.
|
||||||
21
labs/004_button_pullup_pulldown/schematic.md
Normal file
21
labs/004_button_pullup_pulldown/schematic.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Schematic
|
||||||
|
|
||||||
|
## Pull-Down Option
|
||||||
|
|
||||||
|
```text
|
||||||
|
3.3V -> button -> GPIO
|
||||||
|
GPIO -> resistor -> GND
|
||||||
|
ESP32 GND -> circuit GND
|
||||||
|
```
|
||||||
|
|
||||||
|
## Pull-Up Option
|
||||||
|
|
||||||
|
```text
|
||||||
|
3.3V -> resistor -> GPIO
|
||||||
|
GPIO -> button -> GND
|
||||||
|
ESP32 GND -> circuit GND
|
||||||
|
```
|
||||||
|
|
||||||
|
## Actual Circuit
|
||||||
|
|
||||||
|
TODO: указать выбранный вариант, GPIO и resistor value.
|
||||||
51
labs/005_pwm_led_dimming/README.md
Normal file
51
labs/005_pwm_led_dimming/README.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# Lab 005: PWM LED Dimming
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Управлять яркостью LED с ESP32 через PWM и проверить связь duty cycle с наблюдаемой яркостью.
|
||||||
|
|
||||||
|
## Required Components
|
||||||
|
|
||||||
|
- ESP32 dev board
|
||||||
|
- LED
|
||||||
|
- Resistor
|
||||||
|
- Breadboard
|
||||||
|
- Dupont wires
|
||||||
|
- Multimeter
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
LED меняет яркость при изменении PWM duty cycle. GPIO остается в пределах 0V..3.3V.
|
||||||
|
|
||||||
|
## Pre-Flight Checklist
|
||||||
|
|
||||||
|
- Выбрать безопасный PWM-capable GPIO.
|
||||||
|
- Подключить LED только через резистор.
|
||||||
|
- Проверить полярность LED.
|
||||||
|
- Проверить common ground.
|
||||||
|
|
||||||
|
## Safety Notes
|
||||||
|
|
||||||
|
- ESP32 GPIO strictly 3.3V.
|
||||||
|
- GPIO не должен питать нагрузку с большим током.
|
||||||
|
- Не подключать LED без резистора.
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
- GPIO low: около 0V.
|
||||||
|
- GPIO high: около 3.3V.
|
||||||
|
- Average voltage by multimeter may change with duty cycle, but exact reading depends on meter.
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: записать реальные измерения.
|
||||||
|
|
||||||
|
## Debugging Checklist
|
||||||
|
|
||||||
|
- Если яркость не меняется, проверить GPIO и PWM channel.
|
||||||
|
- Если LED не светится, проверить полярность и resistor path.
|
||||||
|
- Если readings странные, помнить, что мультиметр усредняет PWM.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: краткий вывод после выполнения.
|
||||||
22
labs/005_pwm_led_dimming/firmware.md
Normal file
22
labs/005_pwm_led_dimming/firmware.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Firmware
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
- Configure PWM on selected GPIO.
|
||||||
|
- Sweep duty cycle from low to high.
|
||||||
|
- Optional: print current duty cycle to serial.
|
||||||
|
|
||||||
|
## Physical Test Procedure
|
||||||
|
|
||||||
|
1. Start with low duty cycle.
|
||||||
|
2. Observe LED brightness.
|
||||||
|
3. Measure average voltage for several duty cycles.
|
||||||
|
4. Record whether visual brightness matches expected trend.
|
||||||
|
|
||||||
|
## Code
|
||||||
|
|
||||||
|
TODO: добавить PWM firmware после выбора workflow.
|
||||||
|
|
||||||
|
## Actual Result
|
||||||
|
|
||||||
|
TODO: записать фактическое поведение.
|
||||||
25
labs/005_pwm_led_dimming/measurements.md
Normal file
25
labs/005_pwm_led_dimming/measurements.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Measurements
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
| Duty Cycle | Expected Observation |
|
||||||
|
| --- | --- |
|
||||||
|
| 0% | LED off |
|
||||||
|
| 25% | Dim |
|
||||||
|
| 50% | Medium |
|
||||||
|
| 100% | Brightest safe level |
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: добавить реальные значения.
|
||||||
|
|
||||||
|
| Duty Cycle | Average Voltage | Observation |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 0% | TBD | TBD |
|
||||||
|
| 25% | TBD | TBD |
|
||||||
|
| 50% | TBD | TBD |
|
||||||
|
| 100% | TBD | TBD |
|
||||||
|
|
||||||
|
## Observations
|
||||||
|
|
||||||
|
TODO: visual response, flicker, meter behavior.
|
||||||
17
labs/005_pwm_led_dimming/notes.md
Normal file
17
labs/005_pwm_led_dimming/notes.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Notes
|
||||||
|
|
||||||
|
## Bugs / Surprises
|
||||||
|
|
||||||
|
TODO: записать PWM setup issues, wrong GPIO, unexpected brightness.
|
||||||
|
|
||||||
|
## Explanation
|
||||||
|
|
||||||
|
TODO: объяснить PWM как fast switching и duty cycle.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: что стало понятно о PWM.
|
||||||
|
|
||||||
|
## Next Actions
|
||||||
|
|
||||||
|
TODO: следующий маленький шаг.
|
||||||
12
labs/005_pwm_led_dimming/schematic.md
Normal file
12
labs/005_pwm_led_dimming/schematic.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Schematic
|
||||||
|
|
||||||
|
## Expected Circuit
|
||||||
|
|
||||||
|
```text
|
||||||
|
ESP32 PWM GPIO -> resistor -> LED anode
|
||||||
|
LED cathode -> ESP32 GND
|
||||||
|
```
|
||||||
|
|
||||||
|
## Actual Circuit
|
||||||
|
|
||||||
|
TODO: указать GPIO, resistor value и LED polarity.
|
||||||
52
labs/006_i2c_lcd_1602/README.md
Normal file
52
labs/006_i2c_lcd_1602/README.md
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# Lab 006: I2C LCD 1602
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Подключить LCD 1602 с I2C-модулем к ESP32, найти I2C address и вывести тестовый текст.
|
||||||
|
|
||||||
|
## Required Components
|
||||||
|
|
||||||
|
- ESP32 dev board
|
||||||
|
- LCD 1602 with I2C module
|
||||||
|
- Dupont wires
|
||||||
|
- Multimeter
|
||||||
|
- Optional breadboard
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
I2C scanner находит адрес LCD. После настройки адреса и contrast display показывает тестовый текст.
|
||||||
|
|
||||||
|
## Pre-Flight Checklist
|
||||||
|
|
||||||
|
- Проверить питание LCD-модуля и уровни I2C линий.
|
||||||
|
- Проверить, не подтянуты ли SDA/SCL к 5V при подключении к ESP32.
|
||||||
|
- Выбрать GPIO для SDA/SCL.
|
||||||
|
- Соединить common ground.
|
||||||
|
- Проверить contrast potentiometer на LCD backpack.
|
||||||
|
|
||||||
|
## Safety Notes
|
||||||
|
|
||||||
|
- ESP32 GPIO strictly 3.3V.
|
||||||
|
- 5V pull-ups на SDA/SCL могут быть опасны для ESP32.
|
||||||
|
- Не подключать 5V signals напрямую к GPIO.
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
- LCD VCC: TBD by module choice.
|
||||||
|
- SDA/SCL idle level: should be safe for ESP32, ideally near 3.3V.
|
||||||
|
- GND continuity between ESP32 and LCD.
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: записать реальные измерения и I2C address.
|
||||||
|
|
||||||
|
## Debugging Checklist
|
||||||
|
|
||||||
|
- Если scanner ничего не находит, проверить SDA/SCL order.
|
||||||
|
- Если адрес найден, но текста нет, проверить contrast.
|
||||||
|
- Если символы мусорные, проверить библиотеку и geometry `16x2`.
|
||||||
|
- Измерить idle voltage на SDA/SCL.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: краткий вывод после выполнения.
|
||||||
24
labs/006_i2c_lcd_1602/firmware.md
Normal file
24
labs/006_i2c_lcd_1602/firmware.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Firmware
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
- Run I2C scanner.
|
||||||
|
- Record detected address.
|
||||||
|
- Initialize LCD as `16x2`.
|
||||||
|
- Print a short test message.
|
||||||
|
|
||||||
|
## Physical Test Procedure
|
||||||
|
|
||||||
|
1. Measure SDA/SCL idle voltage.
|
||||||
|
2. Run I2C scanner.
|
||||||
|
3. Adjust contrast.
|
||||||
|
4. Print test text.
|
||||||
|
5. Record address and actual behavior.
|
||||||
|
|
||||||
|
## Code
|
||||||
|
|
||||||
|
TODO: добавить I2C scanner и LCD test code после выбора workflow.
|
||||||
|
|
||||||
|
## Actual Result
|
||||||
|
|
||||||
|
TODO: записать scanner output и display result.
|
||||||
27
labs/006_i2c_lcd_1602/measurements.md
Normal file
27
labs/006_i2c_lcd_1602/measurements.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Measurements
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
| Point | Expected |
|
||||||
|
| --- | --- |
|
||||||
|
| LCD VCC | TBD by module |
|
||||||
|
| SDA idle | Safe for ESP32 |
|
||||||
|
| SCL idle | Safe for ESP32 |
|
||||||
|
| GND continuity | Continuity |
|
||||||
|
| I2C address | TBD by scanner |
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: добавить реальные значения.
|
||||||
|
|
||||||
|
| Point | Actual |
|
||||||
|
| --- | --- |
|
||||||
|
| LCD VCC | TBD |
|
||||||
|
| SDA idle | TBD |
|
||||||
|
| SCL idle | TBD |
|
||||||
|
| GND continuity | TBD |
|
||||||
|
| I2C address | TBD |
|
||||||
|
|
||||||
|
## Observations
|
||||||
|
|
||||||
|
TODO: contrast, backlight, characters, scanner output.
|
||||||
17
labs/006_i2c_lcd_1602/notes.md
Normal file
17
labs/006_i2c_lcd_1602/notes.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Notes
|
||||||
|
|
||||||
|
## Bugs / Surprises
|
||||||
|
|
||||||
|
TODO: записать wrong address, blank display, 5V pull-up concern или wiring issues.
|
||||||
|
|
||||||
|
## Explanation
|
||||||
|
|
||||||
|
TODO: объяснить I2C address, SDA/SCL и common ground.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: что стало понятно о I2C и LCD.
|
||||||
|
|
||||||
|
## Next Actions
|
||||||
|
|
||||||
|
TODO: следующий маленький шаг.
|
||||||
18
labs/006_i2c_lcd_1602/schematic.md
Normal file
18
labs/006_i2c_lcd_1602/schematic.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Schematic
|
||||||
|
|
||||||
|
## Expected Circuit
|
||||||
|
|
||||||
|
```text
|
||||||
|
ESP32 GND -> LCD GND
|
||||||
|
ESP32 3.3V or 5V -> LCD VCC, only after checking module requirements
|
||||||
|
ESP32 SDA GPIO -> LCD SDA
|
||||||
|
ESP32 SCL GPIO -> LCD SCL
|
||||||
|
```
|
||||||
|
|
||||||
|
## Important Check
|
||||||
|
|
||||||
|
Before connecting SDA/SCL to ESP32, verify I2C pull-up voltage. ESP32 GPIO must not receive 5V.
|
||||||
|
|
||||||
|
## Actual Circuit
|
||||||
|
|
||||||
|
TODO: указать VCC, SDA GPIO, SCL GPIO и I2C address.
|
||||||
55
labs/007_transistor_switch/README.md
Normal file
55
labs/007_transistor_switch/README.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# Lab 007: Transistor Switch
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Собрать транзисторный ключ для управления нагрузкой и понять, почему GPIO не должен напрямую питать более тяжелые нагрузки.
|
||||||
|
|
||||||
|
## Required Components
|
||||||
|
|
||||||
|
- Transistor from starter kit
|
||||||
|
- Resistors
|
||||||
|
- LED or small safe load
|
||||||
|
- Bench power supply
|
||||||
|
- ESP32 optional after bench-only test
|
||||||
|
- Breadboard
|
||||||
|
- Multimeter
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
Малый управляющий сигнал включает или выключает ток через нагрузку. Нагрузка питается через отдельный путь, а GPIO управляет транзистором.
|
||||||
|
|
||||||
|
## Pre-Flight Checklist
|
||||||
|
|
||||||
|
- Определить тип транзистора и pinout.
|
||||||
|
- Выбрать безопасную нагрузку.
|
||||||
|
- Поставить resistor для LED/load, если нужен.
|
||||||
|
- Поставить base/gate resistor, если применимо.
|
||||||
|
- Проверить common ground при управлении от ESP32.
|
||||||
|
|
||||||
|
## Safety Notes
|
||||||
|
|
||||||
|
- Не подключать нагрузку напрямую к GPIO ESP32.
|
||||||
|
- ESP32 GPIO strictly 3.3V.
|
||||||
|
- Current limit на БП выставить до подключения.
|
||||||
|
- Проверить pinout транзистора по datasheet.
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
- Voltage on control pin/base/gate: TBD by circuit.
|
||||||
|
- Load voltage changes between off/on states.
|
||||||
|
- Current through load limited and expected.
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: записать реальные измерения.
|
||||||
|
|
||||||
|
## Debugging Checklist
|
||||||
|
|
||||||
|
- Если нагрузка всегда off, проверить pinout и base/gate drive.
|
||||||
|
- Если нагрузка всегда on, проверить wiring и transistor orientation.
|
||||||
|
- Если ESP32 resets, проверить питание и common ground.
|
||||||
|
- Если БП в current limit, искать short или неправильную нагрузку.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: краткий вывод после выполнения.
|
||||||
25
labs/007_transistor_switch/measurements.md
Normal file
25
labs/007_transistor_switch/measurements.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Measurements
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
| State | Expected |
|
||||||
|
| --- | --- |
|
||||||
|
| Control off | Load off, low/no load current |
|
||||||
|
| Control on | Load on, current within limit |
|
||||||
|
| Common ground | Continuity if ESP32 controls circuit |
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: добавить реальные значения.
|
||||||
|
|
||||||
|
| Point | Actual |
|
||||||
|
| --- | --- |
|
||||||
|
| Control voltage off | TBD |
|
||||||
|
| Control voltage on | TBD |
|
||||||
|
| Load voltage off | TBD |
|
||||||
|
| Load voltage on | TBD |
|
||||||
|
| Load current | TBD |
|
||||||
|
|
||||||
|
## Observations
|
||||||
|
|
||||||
|
TODO: switching behavior, heating, current limit.
|
||||||
17
labs/007_transistor_switch/notes.md
Normal file
17
labs/007_transistor_switch/notes.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Notes
|
||||||
|
|
||||||
|
## Bugs / Surprises
|
||||||
|
|
||||||
|
TODO: записать pinout mistakes, always-on/off behavior или current limit events.
|
||||||
|
|
||||||
|
## Explanation
|
||||||
|
|
||||||
|
TODO: объяснить transistor as switch и разделение control path / load path.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: что стало понятно о транзисторном ключе.
|
||||||
|
|
||||||
|
## Next Actions
|
||||||
|
|
||||||
|
TODO: следующий маленький шаг.
|
||||||
13
labs/007_transistor_switch/schematic.md
Normal file
13
labs/007_transistor_switch/schematic.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Schematic
|
||||||
|
|
||||||
|
## Expected Low-Side Switch Shape
|
||||||
|
|
||||||
|
```text
|
||||||
|
Supply + -> load -> transistor -> Supply GND
|
||||||
|
Control signal -> resistor -> transistor control pin
|
||||||
|
Controller GND -> Supply GND
|
||||||
|
```
|
||||||
|
|
||||||
|
## Actual Circuit
|
||||||
|
|
||||||
|
TODO: указать тип транзистора, pinout, load, resistors и источник control signal.
|
||||||
53
labs/008_wifi_status_display/README.md
Normal file
53
labs/008_wifi_status_display/README.md
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
# Lab 008: Wi-Fi Status Display
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Собрать маленький IoT status display: ESP32 подключается к Wi-Fi и показывает статус на LCD 1602 I2C.
|
||||||
|
|
||||||
|
## Required Components
|
||||||
|
|
||||||
|
- ESP32 dev board
|
||||||
|
- LCD 1602 I2C
|
||||||
|
- Dupont wires
|
||||||
|
- Multimeter
|
||||||
|
- Wi-Fi network credentials, not committed to repo
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
ESP32 загружается, подключается к Wi-Fi, показывает connection status, IP или heartbeat на LCD.
|
||||||
|
|
||||||
|
## Pre-Flight Checklist
|
||||||
|
|
||||||
|
- Выполнить `003_esp32_blink`.
|
||||||
|
- Выполнить `006_i2c_lcd_1602`.
|
||||||
|
- Проверить I2C address.
|
||||||
|
- Проверить SDA/SCL voltage safety.
|
||||||
|
- Не commit-ить Wi-Fi credentials.
|
||||||
|
|
||||||
|
## Safety Notes
|
||||||
|
|
||||||
|
- ESP32 GPIO strictly 3.3V.
|
||||||
|
- Проверить LCD I2C pull-up voltage.
|
||||||
|
- Common ground обязателен.
|
||||||
|
- Credentials хранить вне repo или в ignored local config.
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
- ESP32 3.3V rail stable.
|
||||||
|
- SDA/SCL idle levels safe for ESP32.
|
||||||
|
- LCD powered as verified in Lab 006.
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: записать реальные измерения и network behavior.
|
||||||
|
|
||||||
|
## Debugging Checklist
|
||||||
|
|
||||||
|
- Если Wi-Fi не подключается, проверить credentials и serial logs.
|
||||||
|
- Если LCD пустой, вернуться к Lab 006.
|
||||||
|
- Если ESP32 resets, проверить питание и brownout messages.
|
||||||
|
- Если статус зависает, добавить timeout/reconnect logic.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: краткий вывод после выполнения.
|
||||||
25
labs/008_wifi_status_display/firmware.md
Normal file
25
labs/008_wifi_status_display/firmware.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Firmware
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
- Initialize serial logging.
|
||||||
|
- Initialize LCD.
|
||||||
|
- Connect to Wi-Fi with timeout.
|
||||||
|
- Show status: booting, connecting, connected, failed/retrying.
|
||||||
|
- Avoid committing credentials.
|
||||||
|
|
||||||
|
## Physical Test Procedure
|
||||||
|
|
||||||
|
1. Confirm LCD works with known test message.
|
||||||
|
2. Flash Wi-Fi firmware.
|
||||||
|
3. Watch serial logs.
|
||||||
|
4. Verify LCD status transitions.
|
||||||
|
5. Record failures and reconnect behavior.
|
||||||
|
|
||||||
|
## Code
|
||||||
|
|
||||||
|
TODO: добавить firmware после выбора workflow и credential strategy.
|
||||||
|
|
||||||
|
## Actual Result
|
||||||
|
|
||||||
|
TODO: записать network status, LCD output и serial observations.
|
||||||
25
labs/008_wifi_status_display/measurements.md
Normal file
25
labs/008_wifi_status_display/measurements.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Measurements
|
||||||
|
|
||||||
|
## Expected Measurements
|
||||||
|
|
||||||
|
| Point | Expected |
|
||||||
|
| --- | --- |
|
||||||
|
| ESP32 3.3V rail | Stable near 3.3V |
|
||||||
|
| LCD VCC | Same as verified in Lab 006 |
|
||||||
|
| SDA idle | Safe for ESP32 |
|
||||||
|
| SCL idle | Safe for ESP32 |
|
||||||
|
|
||||||
|
## Actual Measurements
|
||||||
|
|
||||||
|
TODO: добавить реальные значения.
|
||||||
|
|
||||||
|
| Point | Actual |
|
||||||
|
| --- | --- |
|
||||||
|
| ESP32 3.3V rail | TBD |
|
||||||
|
| LCD VCC | TBD |
|
||||||
|
| SDA idle | TBD |
|
||||||
|
| SCL idle | TBD |
|
||||||
|
|
||||||
|
## Observations
|
||||||
|
|
||||||
|
TODO: Wi-Fi connection time, reconnect behavior, LCD messages.
|
||||||
17
labs/008_wifi_status_display/notes.md
Normal file
17
labs/008_wifi_status_display/notes.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Notes
|
||||||
|
|
||||||
|
## Bugs / Surprises
|
||||||
|
|
||||||
|
TODO: записать Wi-Fi failures, LCD issues, power resets или credential problems.
|
||||||
|
|
||||||
|
## Explanation
|
||||||
|
|
||||||
|
TODO: объяснить boot/connect/display state flow.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
TODO: что стало понятно о простом IoT status device.
|
||||||
|
|
||||||
|
## Next Actions
|
||||||
|
|
||||||
|
TODO: следующий маленький шаг.
|
||||||
14
labs/008_wifi_status_display/schematic.md
Normal file
14
labs/008_wifi_status_display/schematic.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Schematic
|
||||||
|
|
||||||
|
## Expected Circuit
|
||||||
|
|
||||||
|
```text
|
||||||
|
ESP32 GND -> LCD GND
|
||||||
|
ESP32 safe VCC -> LCD VCC, based on Lab 006
|
||||||
|
ESP32 SDA GPIO -> LCD SDA
|
||||||
|
ESP32 SCL GPIO -> LCD SCL
|
||||||
|
```
|
||||||
|
|
||||||
|
## Actual Circuit
|
||||||
|
|
||||||
|
TODO: указать GPIO, LCD VCC, I2C address и источник питания ESP32.
|
||||||
24
labs/README.md
Normal file
24
labs/README.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Labs
|
||||||
|
|
||||||
|
Лабораторные — основная единица обучения в этом репозитории.
|
||||||
|
|
||||||
|
Каждая лабораторная содержит:
|
||||||
|
|
||||||
|
- `README.md` — цель, компоненты, ожидаемое поведение, safety и checklist.
|
||||||
|
- `schematic.md` — соединения и схема в текстовом виде.
|
||||||
|
- `measurements.md` — expected и actual measurements.
|
||||||
|
- `notes.md` — debugging notes, ошибки, выводы.
|
||||||
|
- `firmware.md` — если в лабораторной есть код.
|
||||||
|
|
||||||
|
Правило: сначала фиксируем expected, затем собираем, измеряем и только потом обновляем actual.
|
||||||
|
|
||||||
|
## Current Sequence
|
||||||
|
|
||||||
|
1. `001_led_resistor_psu`
|
||||||
|
2. `002_breadboard_and_multimeter`
|
||||||
|
3. `003_esp32_blink`
|
||||||
|
4. `004_button_pullup_pulldown`
|
||||||
|
5. `005_pwm_led_dimming`
|
||||||
|
6. `006_i2c_lcd_1602`
|
||||||
|
7. `007_transistor_switch`
|
||||||
|
8. `008_wifi_status_display`
|
||||||
35
memory_bank/00_profile.md
Normal file
35
memory_bank/00_profile.md
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Profile
|
||||||
|
|
||||||
|
## Background
|
||||||
|
|
||||||
|
- Middle ML Engineer.
|
||||||
|
- Уверенный опыт с Python, Linux, Docker, Kubernetes, backend и software engineering.
|
||||||
|
- Новичок в практической электронике и embedded-разработке.
|
||||||
|
- Физика известна на интуитивном уровне: электрон, поле, ток, напряжение, транзистор понятны в общих чертах, но практического опыта пока мало.
|
||||||
|
|
||||||
|
## Learning Goals
|
||||||
|
|
||||||
|
- Учиться через эксперименты, измерения, debugging и маленькие проекты.
|
||||||
|
- Постепенно перейти от базовых DC-схем к ESP32, интерфейсам, firmware patterns и IoT-проектам.
|
||||||
|
- Вести репозиторий как долговременный embedded lab notebook.
|
||||||
|
- Использовать AI-агента как tutor, reviewer и maintainer заметок.
|
||||||
|
|
||||||
|
## Learning Style
|
||||||
|
|
||||||
|
- Практично и инженерно.
|
||||||
|
- Меньше лекций, больше схем, измерений, симптомов и выводов.
|
||||||
|
- Связь с software engineering приветствуется: contracts, runtime behavior, debugging, observability, state machines.
|
||||||
|
|
||||||
|
## Current Equipment
|
||||||
|
|
||||||
|
1. Регулируемый лабораторный источник питания постоянного тока 30V 10A.
|
||||||
|
2. Термостойкий коврик для пайки и ремонта электроники.
|
||||||
|
3. Стартовый набор электронных компонентов: резисторы, керамические и электролитические конденсаторы, светодиоды, транзисторы.
|
||||||
|
4. Многофункциональные бокорезы 5-в-1.
|
||||||
|
5. 120 Dupont jumper wires: female-female, male-male, male-female.
|
||||||
|
6. Breadboard MB-102, 830 точек.
|
||||||
|
7. Припой ПОС-61 с канифолью, 0.8 мм, 100 г.
|
||||||
|
8. 4 модуля ESP32 Wi-Fi + Bluetooth.
|
||||||
|
9. Электрический паяльник с регулировкой, 80 Вт.
|
||||||
|
10. Мультиметр.
|
||||||
|
11. LCD 1602 green display с I2C-модулем.
|
||||||
27
memory_bank/01_current_state.md
Normal file
27
memory_bank/01_current_state.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Current State
|
||||||
|
|
||||||
|
## Current Phase
|
||||||
|
|
||||||
|
Stage 0 — Safety, tools, measurements.
|
||||||
|
|
||||||
|
## Current Lab
|
||||||
|
|
||||||
|
`001_led_resistor_psu`
|
||||||
|
|
||||||
|
## Known Working Setup
|
||||||
|
|
||||||
|
Пока ничего не проверено.
|
||||||
|
|
||||||
|
## Next Actions
|
||||||
|
|
||||||
|
1. Проверить мультиметр.
|
||||||
|
2. Изучить current limit на БП.
|
||||||
|
3. Собрать LED + resistor.
|
||||||
|
4. Измерить напряжения.
|
||||||
|
5. Вычислить ток через резистор.
|
||||||
|
|
||||||
|
## Current Risks
|
||||||
|
|
||||||
|
- Неизвестны номиналы резисторов в наборе.
|
||||||
|
- Не проверено, как разделены power rails на breadboard.
|
||||||
|
- Не проверены фактические настройки и поведение лабораторного БП.
|
||||||
43
memory_bank/02_concepts.md
Normal file
43
memory_bank/02_concepts.md
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# Concepts
|
||||||
|
|
||||||
|
Краткие практические определения. Расширять только тем, что помогает собирать, измерять и debug-ить.
|
||||||
|
|
||||||
|
## Voltage
|
||||||
|
|
||||||
|
Напряжение измеряется между двумя точками. В embedded это как разница уровней, относительно которой вход понимает `0` или `1`.
|
||||||
|
|
||||||
|
## Current
|
||||||
|
|
||||||
|
Ток течет через компонент. Если путь слишком "легкий" и нет ограничения, компонент может перегреться или сгореть.
|
||||||
|
|
||||||
|
## Resistance
|
||||||
|
|
||||||
|
Сопротивление ограничивает ток. Первый практический пример: резистор последовательно со светодиодом.
|
||||||
|
|
||||||
|
## Ohm's Law
|
||||||
|
|
||||||
|
`V = I * R`. Используется для оценки тока, если известно падение напряжения на резисторе.
|
||||||
|
|
||||||
|
## Power
|
||||||
|
|
||||||
|
`P = V * I`. Если мощность слишком большая для компонента, он греется.
|
||||||
|
|
||||||
|
## Ground
|
||||||
|
|
||||||
|
GND — опорная точка схемы. Напряжения обычно измеряются относительно нее, но мультиметр всегда измеряет между двумя точками.
|
||||||
|
|
||||||
|
## Common Ground
|
||||||
|
|
||||||
|
Если ESP32 управляет внешней схемой, GND ESP32 и GND внешней схемы должны быть соединены. Без этого сигнал не имеет общего reference.
|
||||||
|
|
||||||
|
## Current Limiting
|
||||||
|
|
||||||
|
Ограничение тока на БП — safety guard. Оно не чинит схему, но может ограничить ущерб при ошибке.
|
||||||
|
|
||||||
|
## GPIO
|
||||||
|
|
||||||
|
GPIO — управляемый пин микроконтроллера. Для ESP32 считать все GPIO строго 3.3V logic, не 5V tolerant.
|
||||||
|
|
||||||
|
## Breadboard Rails
|
||||||
|
|
||||||
|
Длинные линии `+` и `-` на breadboard удобны для питания, но часто разделены посередине. Их нужно проверять мультиметром.
|
||||||
87
memory_bank/03_components.md
Normal file
87
memory_bank/03_components.md
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# Components
|
||||||
|
|
||||||
|
Каталог компонентов. Обновлять по мере реального использования и проверки.
|
||||||
|
|
||||||
|
## Bench Power Supply
|
||||||
|
|
||||||
|
- **Назначение:** регулируемое DC-питание для схем.
|
||||||
|
- **Что проверить:** выставление напряжения без нагрузки, current limit, поведение при коротком замыкании через безопасный тест.
|
||||||
|
- **Типичные ошибки:** слишком высокий current limit, подача питания до проверки схемы, попытка "лечить" short circuit повышением тока.
|
||||||
|
- **Safety notes:** начинать с малого current limit; выключать выход перед изменением схемы.
|
||||||
|
|
||||||
|
## Multimeter
|
||||||
|
|
||||||
|
- **Назначение:** измерение напряжения, сопротивления, continuity, иногда тока.
|
||||||
|
- **Что проверить:** режимы, щупы, батарею, корректный вход для измерения тока.
|
||||||
|
- **Типичные ошибки:** измерять ток параллельно как напряжение, забыть вернуть щуп из current jack.
|
||||||
|
- **Safety notes:** перед измерением тока понимать путь тока через мультиметр.
|
||||||
|
|
||||||
|
## Breadboard MB-102
|
||||||
|
|
||||||
|
- **Назначение:** быстрая сборка схем без пайки.
|
||||||
|
- **Что проверить:** соединения рядов, split rails, качество контактов.
|
||||||
|
- **Типичные ошибки:** вставить компоненты в не соединенные точки, ожидать continuous rail там, где он разделен.
|
||||||
|
- **Safety notes:** проверять power rails перед включением.
|
||||||
|
|
||||||
|
## Resistors
|
||||||
|
|
||||||
|
- **Назначение:** ограничение тока, делители напряжения, pull-up/pull-down.
|
||||||
|
- **Что проверить:** номинал по маркировке или мультиметром.
|
||||||
|
- **Типичные ошибки:** неверный номинал, отсутствие резистора с LED.
|
||||||
|
- **Safety notes:** учитывать мощность резистора при заметном токе.
|
||||||
|
|
||||||
|
## LEDs
|
||||||
|
|
||||||
|
- **Назначение:** индикация, первый визуальный тест схемы.
|
||||||
|
- **Что проверить:** полярность, forward voltage, наличие последовательного резистора.
|
||||||
|
- **Типичные ошибки:** подключить без резистора, перепутать анод и катод.
|
||||||
|
- **Safety notes:** ток должен быть ограничен резистором или надежным источником тока.
|
||||||
|
|
||||||
|
## Capacitors
|
||||||
|
|
||||||
|
- **Назначение:** фильтрация, сглаживание, временные эффекты.
|
||||||
|
- **Что проверить:** емкость, полярность для электролитических, voltage rating.
|
||||||
|
- **Типичные ошибки:** перепутать полярность электролита, поставить слишком низкий voltage rating.
|
||||||
|
- **Safety notes:** электролитический конденсатор может выйти из строя при неправильной полярности.
|
||||||
|
|
||||||
|
## Transistors
|
||||||
|
|
||||||
|
- **Назначение:** управляемый ключ или усилительный элемент.
|
||||||
|
- **Что проверить:** тип, pinout, базовый/затворный резистор, допустимый ток.
|
||||||
|
- **Типичные ошибки:** перепутать выводы, ожидать "идеальный switch", забыть резистор управления.
|
||||||
|
- **Safety notes:** не управлять нагрузкой от GPIO напрямую, если ток выше возможностей ESP32.
|
||||||
|
|
||||||
|
## ESP32 Dev Board
|
||||||
|
|
||||||
|
- **Назначение:** микроконтроллер с Wi-Fi и Bluetooth.
|
||||||
|
- **Что проверить:** точную модель, pinout, безопасные GPIO, способ питания, USB flashing.
|
||||||
|
- **Типичные ошибки:** 5V на GPIO, использование boot strap pins без понимания, multiple power sources.
|
||||||
|
- **Safety notes:** GPIO strictly 3.3V; common ground обязателен с внешними схемами.
|
||||||
|
|
||||||
|
## LCD 1602 I2C
|
||||||
|
|
||||||
|
- **Назначение:** текстовый дисплей через I2C.
|
||||||
|
- **Что проверить:** I2C address, питание модуля, уровни SDA/SCL, contrast potentiometer.
|
||||||
|
- **Типичные ошибки:** неверный адрес, перепутанные SDA/SCL, отсутствие common ground.
|
||||||
|
- **Safety notes:** проверить, не подтянуты ли I2C линии к 5V при подключении к ESP32.
|
||||||
|
|
||||||
|
## Dupont Wires
|
||||||
|
|
||||||
|
- **Назначение:** быстрые соединения между breadboard, ESP32 и модулями.
|
||||||
|
- **Что проверить:** тип male/female, целостность, плотность контакта.
|
||||||
|
- **Типичные ошибки:** плохой контакт, неверный провод из-за цвета, loose connector.
|
||||||
|
- **Safety notes:** не тянуть за провод при включенной схеме.
|
||||||
|
|
||||||
|
## Soldering Iron
|
||||||
|
|
||||||
|
- **Назначение:** пайка проводов, модулей и компонентов.
|
||||||
|
- **Что проверить:** температура, состояние жала, подставка.
|
||||||
|
- **Типичные ошибки:** перегрев площадок, холодная пайка, лишний припой.
|
||||||
|
- **Safety notes:** вентиляция, горячее жало, порядок на рабочем месте.
|
||||||
|
|
||||||
|
## Solder
|
||||||
|
|
||||||
|
- **Назначение:** создание электрического и механического соединения.
|
||||||
|
- **Что проверить:** диаметр, флюс/канифоль, качество смачивания.
|
||||||
|
- **Типичные ошибки:** мостики между контактами, недостаточный прогрев соединения.
|
||||||
|
- **Safety notes:** пары флюса не вдыхать; после пайки проверять continuity/shorts.
|
||||||
57
memory_bank/04_mistakes_and_debugging.md
Normal file
57
memory_bank/04_mistakes_and_debugging.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# Mistakes And Debugging
|
||||||
|
|
||||||
|
Файл для повторяющихся ошибок, симптомов и способов проверки.
|
||||||
|
|
||||||
|
## LED Без Резистора
|
||||||
|
|
||||||
|
- **Симптом:** LED может резко вспыхнуть, перегреться или выйти из строя.
|
||||||
|
- **Проверка:** убедиться, что резистор стоит последовательно с LED.
|
||||||
|
- **Вывод:** LED-схема всегда требует ограничения тока.
|
||||||
|
|
||||||
|
## Слишком Высокий Current Limit На БП
|
||||||
|
|
||||||
|
- **Симптом:** при ошибке схема получает большой ток до того, как проблема замечена.
|
||||||
|
- **Проверка:** выставить current limit до подключения схемы.
|
||||||
|
- **Вывод:** current limit — safety guard, а не настройка "побольше".
|
||||||
|
|
||||||
|
## Перепутанная Полярность LED
|
||||||
|
|
||||||
|
- **Симптом:** LED не светится при ожидаемом токе.
|
||||||
|
- **Проверка:** проверить анод/катод и падение напряжения на LED.
|
||||||
|
- **Вывод:** отсутствие света не всегда значит отсутствие питания.
|
||||||
|
|
||||||
|
## Split Power Rails На Breadboard
|
||||||
|
|
||||||
|
- **Симптом:** одна часть схемы не получает питание.
|
||||||
|
- **Проверка:** continuity test вдоль rails.
|
||||||
|
- **Вывод:** breadboard rails нельзя считать непрерывными без проверки.
|
||||||
|
|
||||||
|
## Отсутствие Common Ground
|
||||||
|
|
||||||
|
- **Симптом:** сигналы между модулями работают нестабильно или не работают.
|
||||||
|
- **Проверка:** проверить соединение GND между устройствами.
|
||||||
|
- **Вывод:** сигналу нужен общий reference.
|
||||||
|
|
||||||
|
## 5V На GPIO ESP32
|
||||||
|
|
||||||
|
- **Симптом:** риск повреждения ESP32.
|
||||||
|
- **Проверка:** измерить напряжение на линии перед подключением к GPIO.
|
||||||
|
- **Вывод:** ESP32 GPIO считать строго 3.3V.
|
||||||
|
|
||||||
|
## Плохой Контакт На Breadboard
|
||||||
|
|
||||||
|
- **Симптом:** схема работает при шевелении проводов или случайно пропадает.
|
||||||
|
- **Проверка:** continuity test, переставить провод, заменить jumper.
|
||||||
|
- **Вывод:** механика соединения — часть debugging.
|
||||||
|
|
||||||
|
## Неправильное Измерение Тока Мультиметром
|
||||||
|
|
||||||
|
- **Симптом:** короткое замыкание через мультиметр или сгоревший предохранитель.
|
||||||
|
- **Проверка:** ток измеряется последовательно, щуп в правильном jack.
|
||||||
|
- **Вывод:** режим измерения тока меняет схему.
|
||||||
|
|
||||||
|
## Powering ESP32 From Multiple Sources Without Understanding
|
||||||
|
|
||||||
|
- **Симптом:** непредсказуемое питание, риск повреждения USB-порта или платы.
|
||||||
|
- **Проверка:** выяснить power path dev board перед подключением внешнего питания.
|
||||||
|
- **Вывод:** сначала USB-only, внешнее питание позже и осознанно.
|
||||||
36
memory_bank/05_project_ideas.md
Normal file
36
memory_bank/05_project_ideas.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# Project Ideas
|
||||||
|
|
||||||
|
## ESP32 LCD Status Display
|
||||||
|
|
||||||
|
- **Идея:** показывать состояние устройства, Wi-Fi и тестовые сообщения на LCD 1602.
|
||||||
|
- **Prerequisite labs:** `003_esp32_blink`, `006_i2c_lcd_1602`.
|
||||||
|
|
||||||
|
## Wi-Fi Heartbeat Monitor
|
||||||
|
|
||||||
|
- **Идея:** ESP32 периодически показывает heartbeat через LED или LCD.
|
||||||
|
- **Prerequisite labs:** `003_esp32_blink`, `005_pwm_led_dimming`, `008_wifi_status_display`.
|
||||||
|
|
||||||
|
## Simple MQTT Dashboard
|
||||||
|
|
||||||
|
- **Идея:** отправлять telemetry или статус в MQTT broker и отображать команды.
|
||||||
|
- **Prerequisite labs:** `003_esp32_blink`, `008_wifi_status_display`.
|
||||||
|
|
||||||
|
## Button-Controlled Menu On LCD
|
||||||
|
|
||||||
|
- **Идея:** меню на LCD, управляемое кнопками.
|
||||||
|
- **Prerequisite labs:** `004_button_pullup_pulldown`, `006_i2c_lcd_1602`.
|
||||||
|
|
||||||
|
## PWM LED Controller
|
||||||
|
|
||||||
|
- **Идея:** управлять яркостью LED через PWM и кнопки.
|
||||||
|
- **Prerequisite labs:** `004_button_pullup_pulldown`, `005_pwm_led_dimming`.
|
||||||
|
|
||||||
|
## Transistor-Switched Load
|
||||||
|
|
||||||
|
- **Идея:** ESP32 управляет нагрузкой через транзисторный ключ.
|
||||||
|
- **Prerequisite labs:** `001_led_resistor_psu`, `003_esp32_blink`, `007_transistor_switch`.
|
||||||
|
|
||||||
|
## Sensor Node В Будущем
|
||||||
|
|
||||||
|
- **Идея:** автономный узел с сенсором, Wi-Fi и telemetry.
|
||||||
|
- **Prerequisite labs:** `003_esp32_blink`, `006_i2c_lcd_1602`, `008_wifi_status_display`, будущие ADC/sensor labs.
|
||||||
10
memory_bank/06_open_questions.md
Normal file
10
memory_bank/06_open_questions.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Open Questions
|
||||||
|
|
||||||
|
- Какая именно ESP32 dev board используется?
|
||||||
|
- Какие номиналы резисторов есть в наборе?
|
||||||
|
- Есть ли кнопки и потенциометры?
|
||||||
|
- Какой I2C address у LCD 1602?
|
||||||
|
- Какие GPIO безопаснее использовать на первом этапе?
|
||||||
|
- Какой workflow выбрать: Arduino Core, PlatformIO или ESP-IDF?
|
||||||
|
- Разделены ли power rails на текущей breadboard MB-102?
|
||||||
|
- Есть ли предохранитель в мультиметре на current input?
|
||||||
10
memory_bank/07_decisions.md
Normal file
10
memory_bank/07_decisions.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Decisions
|
||||||
|
|
||||||
|
- Учимся через лабораторные, а не через длинный теоретический конспект.
|
||||||
|
- Начинаем с safety и измерений.
|
||||||
|
- Не используем mains/220V.
|
||||||
|
- ESP32 GPIO считаем strictly 3.3V.
|
||||||
|
- Сначала Arduino Core или PlatformIO, ESP-IDF позже.
|
||||||
|
- Каждая лабораторная должна иметь expected и actual measurements.
|
||||||
|
- Не считаем схему правильной до проверки.
|
||||||
|
- Измерения и симптомы важнее предположений.
|
||||||
33
memory_bank/08_learning_log.md
Normal file
33
memory_bank/08_learning_log.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# Learning Log
|
||||||
|
|
||||||
|
Журнал учебных сессий. Новые записи добавлять сверху или снизу, но сохранять единый формат.
|
||||||
|
|
||||||
|
## Entry Template
|
||||||
|
|
||||||
|
### Date
|
||||||
|
|
||||||
|
TBD
|
||||||
|
|
||||||
|
### Session Goal
|
||||||
|
|
||||||
|
TBD
|
||||||
|
|
||||||
|
### What Was Built
|
||||||
|
|
||||||
|
TBD
|
||||||
|
|
||||||
|
### What Was Measured
|
||||||
|
|
||||||
|
TBD
|
||||||
|
|
||||||
|
### What Failed
|
||||||
|
|
||||||
|
TBD
|
||||||
|
|
||||||
|
### What Was Learned
|
||||||
|
|
||||||
|
TBD
|
||||||
|
|
||||||
|
### Next Action
|
||||||
|
|
||||||
|
TBD
|
||||||
5
snippets/README.md
Normal file
5
snippets/README.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Snippets
|
||||||
|
|
||||||
|
Практические чеклисты и короткие шаблоны для повторного использования в labs.
|
||||||
|
|
||||||
|
Использовать перед экспериментом, а не после того, как схема уже повела себя странно.
|
||||||
10
snippets/breadboard_checklist.md
Normal file
10
snippets/breadboard_checklist.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Breadboard Checklist
|
||||||
|
|
||||||
|
1. Проверить, как соединены rows на конкретной breadboard.
|
||||||
|
2. Проверить continuity power rails по всей длине.
|
||||||
|
3. Найти split rails, если они есть.
|
||||||
|
4. Соединить split rails jumpers только осознанно.
|
||||||
|
5. Проверить short между `+` и `-` rails перед питанием.
|
||||||
|
6. При нестабильной схеме пошевелить провод только после выключения питания и затем проверить контакт мультиметром.
|
||||||
|
|
||||||
|
Цвет провода помогает читать схему, но не доказывает электрическое соединение.
|
||||||
45
snippets/debugging_template.md
Normal file
45
snippets/debugging_template.md
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
# Debugging Template
|
||||||
|
|
||||||
|
## Symptom
|
||||||
|
|
||||||
|
Что наблюдается фактически.
|
||||||
|
|
||||||
|
## Expected
|
||||||
|
|
||||||
|
Что должно было произойти.
|
||||||
|
|
||||||
|
## Actual
|
||||||
|
|
||||||
|
Что произошло и какие измерения это подтверждают.
|
||||||
|
|
||||||
|
## Circuit Assumption To Re-check
|
||||||
|
|
||||||
|
- Power
|
||||||
|
- Ground
|
||||||
|
- Polarity
|
||||||
|
- Pinout
|
||||||
|
- Breadboard rails
|
||||||
|
- GPIO voltage
|
||||||
|
- Component value
|
||||||
|
|
||||||
|
## Measurements
|
||||||
|
|
||||||
|
| Point | Expected | Actual |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| TBD | TBD | TBD |
|
||||||
|
|
||||||
|
## Hypothesis
|
||||||
|
|
||||||
|
Какая причина наиболее вероятна.
|
||||||
|
|
||||||
|
## Test
|
||||||
|
|
||||||
|
Какой один маленький тест подтвердит или опровергнет гипотезу.
|
||||||
|
|
||||||
|
## Result
|
||||||
|
|
||||||
|
Что показал тест.
|
||||||
|
|
||||||
|
## Fix / Next Action
|
||||||
|
|
||||||
|
Что изменить или проверить дальше.
|
||||||
12
snippets/esp32_gpio_safety.md
Normal file
12
snippets/esp32_gpio_safety.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# ESP32 GPIO Safety
|
||||||
|
|
||||||
|
- ESP32 GPIO strictly 3.3V.
|
||||||
|
- Не подключать 5V напрямую к GPIO.
|
||||||
|
- Перед подключением внешнего сигнала измерить его voltage относительно ESP32 GND.
|
||||||
|
- Для внешних модулей нужен common ground.
|
||||||
|
- Не питать нагрузку напрямую от GPIO, если ток неизвестен или заметен.
|
||||||
|
- Проверить pinout конкретной dev board.
|
||||||
|
- На старте избегать boot strap pins, пока не понятны их ограничения.
|
||||||
|
- Если используется I2C module, проверить pull-up voltage на SDA/SCL.
|
||||||
|
|
||||||
|
Минимальный вопрос перед подключением к GPIO: "Какое напряжение реально будет на этом проводе?"
|
||||||
23
snippets/i2c_scanner.md
Normal file
23
snippets/i2c_scanner.md
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# I2C Scanner Note
|
||||||
|
|
||||||
|
I2C scanner — первый firmware smoke test для I2C-модуля.
|
||||||
|
|
||||||
|
## Before Running
|
||||||
|
|
||||||
|
1. Проверить VCC модуля.
|
||||||
|
2. Проверить common ground.
|
||||||
|
3. Проверить SDA/SCL wiring.
|
||||||
|
4. Измерить idle voltage на SDA/SCL.
|
||||||
|
5. Убедиться, что уровни безопасны для ESP32.
|
||||||
|
|
||||||
|
## Expected Result
|
||||||
|
|
||||||
|
Scanner должен найти один или несколько I2C addresses. Для LCD 1602 часто встречаются адреса вроде `0x27` или `0x3F`, но фактический адрес нужно измерить scanner-ом.
|
||||||
|
|
||||||
|
## If Nothing Found
|
||||||
|
|
||||||
|
- Проверить SDA/SCL swap.
|
||||||
|
- Проверить питание.
|
||||||
|
- Проверить common ground.
|
||||||
|
- Проверить выбранные GPIO in firmware.
|
||||||
|
- Проверить, не нужен ли другой I2C bus setup.
|
||||||
20
snippets/multimeter_checklist.md
Normal file
20
snippets/multimeter_checklist.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Multimeter Checklist
|
||||||
|
|
||||||
|
## Voltage Measurement
|
||||||
|
|
||||||
|
1. Черный щуп в `COM`.
|
||||||
|
2. Красный щуп в voltage/resistance jack, не в current jack.
|
||||||
|
3. Выбрать DC voltage mode.
|
||||||
|
4. Измерять между двумя точками, часто между signal и GND.
|
||||||
|
5. Не разрывать схему для измерения напряжения.
|
||||||
|
|
||||||
|
## Resistance / Continuity
|
||||||
|
|
||||||
|
1. Отключить питание схемы.
|
||||||
|
2. Разрядить подозрительные конденсаторы, если они есть.
|
||||||
|
3. Выбрать resistance или continuity mode.
|
||||||
|
4. Проверить short между power rails до подачи питания.
|
||||||
|
|
||||||
|
## Current Measurement Warning
|
||||||
|
|
||||||
|
Ток измеряется последовательно, мультиметр становится частью цепи. Не измерять ток так же, как напряжение.
|
||||||
14
snippets/psu_safety_checklist.md
Normal file
14
snippets/psu_safety_checklist.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# PSU Safety Checklist
|
||||||
|
|
||||||
|
Перед подключением схемы к лабораторному БП:
|
||||||
|
|
||||||
|
1. Выключить output БП.
|
||||||
|
2. Выставить нужное напряжение без нагрузки.
|
||||||
|
3. Выставить малый current limit.
|
||||||
|
4. Проверить полярность проводов.
|
||||||
|
5. Проверить схему мультиметром на short между `+` и `GND`.
|
||||||
|
6. Подключить схему.
|
||||||
|
7. Включить output и наблюдать ток.
|
||||||
|
8. Если БП ушел в current limit, выключить output и искать ошибку.
|
||||||
|
|
||||||
|
Не повышать current limit, пока причина ограничения тока не понятна.
|
||||||
Reference in New Issue
Block a user