first commit

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

35
memory_bank/00_profile.md Normal file
View 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-модулем.

View 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.
- Не проверены фактические настройки и поведение лабораторного БП.

View 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 удобны для питания, но часто разделены посередине. Их нужно проверять мультиметром.

View 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.

View 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, внешнее питание позже и осознанно.

View 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.

View 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?

View File

@@ -0,0 +1,10 @@
# Decisions
- Учимся через лабораторные, а не через длинный теоретический конспект.
- Начинаем с safety и измерений.
- Не используем mains/220V.
- ESP32 GPIO считаем strictly 3.3V.
- Сначала Arduino Core или PlatformIO, ESP-IDF позже.
- Каждая лабораторная должна иметь expected и actual measurements.
- Не считаем схему правильной до проверки.
- Измерения и симптомы важнее предположений.

View 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