# Методическое пособие: урок «Пассивный датчик движения AM312»

Стенд: ESP32 + `PirSensor` (пассивный ИК-датчик) + серийная диагностика в
[`main.cpp`](src/main.cpp) + опциональный Python-визуализатор таймлайна событий
([`tools/timeline_view.py`](tools/timeline_view.py)). Пособие связывает работу датчика с темами
физики (инфракрасное излучение, тепловое излучение тел) и с азой инженерной практики: отличие
пассивного датчика от активного, дребезг сигнала, hold time.

Рассчитано на **1 урок 40–45 минут**. Урок значительно выигрывает, если в кабинете есть второй
стенд — [HMMD-mmWave](../HMMD-mmWave) — тогда получается прямое сравнение "пассивный vs
активный" датчик на реальном оборудовании, а не по описанию.

## Кто чем пользуется

1. **Инженер** собирает схему по [WIRING.md](WIRING.md), прошивает `src/main.cpp`.
2. **Учитель** на уроке открывает Serial Monitor — весь базовый функционал доступен без Python.
   Для визуальной демонстрации классу (таймлайн на экране проектора) — опционально запускается
   `tools/timeline_view.py`, см. [README.md](README.md).

---

## Урок. Пассивный датчик: что видит, а что не видит AM312

**Тема:** инфракрасное излучение тел, пироэлектрический эффект, отличие пассивных датчиков от
активных, программная фильтрация дребезга сигнала.

**Ход работы.**

1. Включить стенд, открыть Serial Monitor. В первые ~5 секунд после включения в логе будет
   стоять пометка `прогрев` — обсудить с классом, почему датчику физически нужно время после
   включения (пироэлектрический элемент стабилизируется, см.
   [THEORY.md, раздел 5](THEORY.md#5-почему-нет-программной-калибровки)).
2. Провести рукой перед датчиком — должно появиться `[MOTION] движение обнаружено`, загорится
   встроенный LED.
3. Замереть перед датчиком, не двигаясь (задержать дыхание не обязательно — важна именно
   неподвижность позы и рук). Засечь время: статус `[MOTION]` погаснет примерно через `holdTimeMs`
   (2 секунды по умолчанию) после последнего движения.
4. **Если в кабинете есть [HMMD-mmWave](../HMMD-mmWave)** — повторить тот же эксперимент
   "замри" на радаре параллельно. AM312 потеряет цель быстро (в пределах hold time), HMMD может
   продолжать её видеть заметно дольше или не терять вовсе — за счёт того, что реагирует даже на
   микродвижения (дыхание), а не только на явное перемещение.

**Разбор.** AM312 — пассивный датчик: он ничего не излучает, только принимает изменение
инфракрасного излучения в поле зрения
([THEORY.md, раздел 1](THEORY.md#1-принцип-работы-пассивный-датчик-а-не-радар)). Именно поэтому
неподвижный человек для него невидим — сигнал возникает только на **изменение** потока
излучения, пересекающего чувствительные зоны датчика. Это принципиально иной физический механизм,
чем у активных радаров, которые сами излучают волну и анализируют отражение.

Обсудить с классом, почему код не гасит статус мгновенно при первом же спаде сигнала в LOW
(раздел [THEORY.md, раздел 4](THEORY.md#4-логика-удержания-статуса-hold-time)) — реальный выход
AM312 не непрерывен даже во время движения, и наивная логика "нет сигнала прямо сейчас = нет
движения" даёт заметное мерцание индикатора.

**Практическое задание.** Если есть оба датчика (PIR и радар) — заполнить сравнительную таблицу
"что каждый датчик заметил, а что пропустил" за одинаковое время эксперимента "замри на месте".
Если радара нет — обсудить теоретически, для какой задачи (освещение коридора, где важен только
факт прохода, или переговорка, где люди подолгу сидят неподвижно) PIR подходит, а для какой —
нет, опираясь на разницу в физическом принципе, а не на маркетинговые преимущества (см.
[THEORY.md, раздел 7](THEORY.md#7-когда-pir-уместнее-радара-и-наоборот)).

---

## Приложение: тайминг и оборудование

| Урок | Длительность | Обязательное оборудование | Предмет |
|---|---|---|---|
| Пассивный датчик AM312 | 40–45 мин | Стенд; желательно — второй стенд с HMMD-mmWave для сравнения | Физика |
