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