Урок 3. Несколько лис и усреднение
Урок 3. Несколько лис по очереди: расписание ARDF и усреднение
Паспорт урока
| Параметр | Значение |
|---|---|
| Место в модуле | FoxHunter, модуль 1 «Физика пеленгации», урок 3 из 6 |
| Длительность | 45 мин (класс) + полевой выход 90 мин |
| Возраст | 11–16, материал двухуровневый |
| Оборудование | 3 лисы (FOX_ID = 1, 2, 3), охотник, foxhunt_sim.py |
| Предварительные знания | Уроки 1–2: дБм, зоны, динамический диапазон |
| Предмет | Информатика (разделение ресурса), математика (среднее, дисперсия) |
Образовательные цели
| № | Цель | Блум | Миллер | Чем доказывается |
|---|---|---|---|---|
| 3.1 | Объяснять разделение времени как способ сосуществования передатчиков | понимать | знает как | Разбор слотовой схемы |
| 3.2 | Обосновывать необходимость сброса буфера при смене источника | анализировать | знает как | Ответ про rssiReset() |
| 3.3 | Выбирать окно усреднения под условия задачи | оценивать | показывает как | Подобранный RSSI_AVG_N с обоснованием |
| 3.4 | Различать шум измерения и реальное изменение величины | анализировать | знает как | Ответ: «цифра прыгает — это поломка?» |
Сценарий занятия (45 минут)
| Время | Блок | Что делает педагог | Что делают ученики |
|---|---|---|---|
| 0–5 | Retrieval | Мини-квиз по уроку 2 | Пишут, разбор вслух |
| 5–12 | Проблема 1: три лисы | Включает три лисы одновременно на одной частоте | Наблюдают хаос |
| 12–22 | Теория: разделение времени | Слоты, расписание, позывные | Считают параметры цикла |
| 22–28 | Проблема 2: прыгающая цифра | Показывает сырой RSSI на неподвижном охотнике | Видят разброс ±3–5 дБ |
| 28–38 | Теория: усреднение | Скользящее среднее, компромисс | Работают с симулятором |
| 38–45 | Практика и ДЗ | Разбор задач | Решают свой уровень |
Блок 1. Проблема первая: три лисы (5–12 мин)
Демонстрация
Педагог включает три лисы одновременно, все с FOX_COUNT = 1 (то есть каждая вещает непрерывно, не зная о соседях).
«Раньше была одна лиса. Теперь их три, и все кричат непрерывно на одной частоте. Что услышит охотник?»
Что произойдёт
Охотник будет принимать пакеты вперемешку от всех трёх. Зуммер начнёт метаться: то громко (близкая лиса), то тихо (дальняя). Найти какую-либо конкретную лису невозможно — прибор показывает «то одно, то другое».
Часть пакетов вообще пропадёт: если две лисы передают одновременно, их сигналы накладываются и приёмник не разбирает ни один. Это коллизия.
Постановка проблемы
На доску:
Три передатчика на одной частоте мешают друг другу. Нужен способ поделить эфир.
Вопрос классу: «Как поделить одну частоту между тремя лисами?»
Ожидаемые ответы детей и реакция:
| Идея ученика | Комментарий педагога |
|---|---|
| «Дать каждой свою частоту» | Правильно, так тоже делают — это частотное разделение. Но тогда охотнику нужно три приёмника или перестройка |
| «Пусть говорят по очереди» | Это нужный ответ. Записать |
| «Пусть говорят тише» | Не поможет: они всё равно наложатся |
| «Пусть каждая скажет свой номер» | Верно, и мы это сделаем — но сначала надо развести их во времени |
Блок 2. Теория: разделение времени (12–22 мин)
2.1. Базовый уровень (11–13 лет)
Через разговор в классе.
Если все в классе заговорят одновременно — не разберёшь ни одного. Что делает учитель? Устанавливает очередь: сначала говорит один, потом другой. Каждому — своё время.
Лисы делают то же самое. Время делится на слоты — отрезки по 20 секунд. В первые 20 секунд говорит только лиса №1, следующие 20 — только лиса №2, потом лиса №3. И снова по кругу.
Как охотник узнаёт, кто сейчас говорит:
Каждая лиса «представляется» числом писков: лиса 1 — один короткий пик, лиса 2 — два, лиса 3 — три. Услышал два пика — сейчас в эфире вторая лиса, и вся громкость относится к ней.
Настоящий ARDF:
В настоящей спортивной радиопеленгации лисы представляются азбукой Морзе: MOE, MOI, MOS, MOH, MO5. Мы заменили морзянку на понятное число писков — принцип тот же.
2.2. Углублённый уровень (14–16 лет)
Шаг 1. TDMA — множественный доступ с разделением по времени.
Приём называется TDMA (Time Division Multiple Access). Общий ресурс — частотный канал — делится не по частоте, а по времени. Каждому участнику выделяется свой периодический интервал.
Параметры нашей схемы:
| Параметр | Значение | Смысл |
|---|---|---|
SLOT_MS | 20 000 мс | длительность слота одной лисы |
FOX_COUNT | 3 | число лис в цикле |
| Период цикла | 60 с | SLOT_MS × FOX_COUNT |
BEACON_MS | 300 мс | период маяка внутри слота |
| Пакетов за слот | 66 | SLOT_MS / BEACON_MS |
Шаг 2. Что это означает для охотника.
Если ученик ищет лису №2, а сейчас идёт слот лисы №3, ему придётся ждать. Максимальное ожидание своей лисы:
Это цена разделения: эфир поделён честно, но каждый участник получает лишь треть времени.
Шаг 3. Почему слоты «плывут».
У каждой лисы свой кварцевый генератор, и их частоты чуть отличаются. За долгую охоту слоты постепенно расходятся — лисы начинают наползать друг на друга.
В настоящем ARDF синхронизацию берут от точного источника: GPS-времени или радиосигнала точного времени. В нашем учебном стенде синхронизации нет, и для занятия длиной час это приемлемо. Честная оговорка: это ограничение нашей реализации, а не принципа.
Шаг 4. Альтернативы разделению по времени.
| Способ | Как делится ресурс | Где применяется |
|---|---|---|
| TDMA | по времени (слоты) | наш стенд, GSM, промышленные шины |
| FDMA | по частоте (каналы) | радиостанции, аналоговое ТВ |
| CDMA | по кодам (все сразу, разные коды) | 3G, GPS |
| ALOHA | никак — передают когда хотят, коллизии допустимы | LoRaWAN (разберём в PowerSentry) |
Блок 3. Проблема вторая: прыгающая цифра (22–28 мин)
Демонстрация
Охотник кладётся неподвижно, лиса тоже неподвижна. Открывается монитор порта с сырым RSSI.
«Ничто не движется. Что должен показывать прибор?»
Дети ожидают постоянное число. На экране — значения, гуляющие на несколько дБ: −62, −65, −61, −67, −63…
Разговор
| Реплика | Ответ |
|---|---|
| «Прибор плохой» | Проверим: он показывает −62…−67, а не −20 и −90. Разброс небольшой и вокруг одного значения |
| «Что-то мешает» | Верно по сути. Что именно — разберём сейчас |
| «Это ошибка измерения» | Точная формулировка. Записать |
Откуда берётся разброс
- Многолучёвка. Сигнал приходит несколькими путями; малейшее движение воздуха, людей, дверей меняет их сложение.
- Тепловой шум приёмника. Собственный шум электроники добавляется к сигналу.
- Дискретность измерения. Приёмник оценивает мощность с конечной точностью (±2–3 дБ у SX126x).
Блок 4. Теория: усреднение (28–38 мин)
4.1. Базовый уровень
Если измерить свой рост один раз, можно ошибиться — встал не так, линейка съехала. Если измерить пять раз и взять среднее, ошибка станет меньше: случайные промахи в разные стороны частично гасят друг друга.
Охотник делает то же самое: он хранит последние пять значений RSSI и берёт их среднее. Одно случайное «плохое» измерение уже не заставит зуммер дёрнуться.
4.2. Углублённый уровень
Шаг 1. Скользящее среднее.
Прошивка хранит буфер из RSSI_AVG_N последних значений и на каждый новый пакет пересчитывает среднее:
Это скользящее окно: с приходом нового значения самое старое выбрасывается.
Шаг 2. Насколько уменьшается разброс.
Для независимых измерений со стандартным отклонением σ среднее по N значениям имеет отклонение:
При типичном σ = 3 дБ:
| N | σ среднего | Выигрыш |
|---|---|---|
| 1 (без усреднения) | 3,00 дБ | — |
| 3 | 1,73 дБ | в 1,7 раза |
| 5 (по умолчанию) | 1,34 дБ | в 2,2 раза |
| 7 | 1,13 дБ | в 2,6 раза |
| 9 | 1,00 дБ | в 3 раза |
Шаг 3. Цена усреднения — задержка.
Пакеты приходят каждые BEACON_MS = 300 мс. Значит окно усреднения занимает:
| N | Длительность окна | Отставание при ходьбе 1,4 м/с |
|---|---|---|
| 3 | 0,9 с | ≈ 0,6 м |
| 5 | 1,5 с | ≈ 1,1 м |
| 7 | 2,1 с | ≈ 1,5 м |
Когда ученик бежит, зуммер описывает ситуацию, которая была секунду назад — на метр позади.
Шаг 4. Компромисс.
| Уменьшить N (до 3) | Увеличить N (до 7) |
|---|---|
| зуммер отзывчивее | зуммер плавнее |
| заметнее дёргается | заметнее отстаёт |
| для быстро бегающих детей | для шумной обстановки |
Это тот же компромисс, что в любом сглаживающем фильтре: точность против скорости реакции.
Шаг 5. Зачем сбрасывать буфер при смене лисы.
Когда активная лиса меняется (закончился слот), в буфере остаются значения от предыдущей лисы, стоящей в другом месте. Если продолжить усреднение, первые секунды новая лиса будет «смешана» со старой, и зуммер покажет несуществующую промежуточную громкость.
Поэтому в прошивке при смене fox_id вызывается rssiReset() — буфер очищается, и среднее начинает набираться заново, только из значений новой лисы.
Блок 5. Работа с симулятором
Запуск: uv run foxhunt_sim.py
- Ползунок
RSSI_AVG_N= 1. Держим мышь неподвижно — значение в поле зуммера прыгает, зона иногда перескакивает туда-обратно. RSSI_AVG_N= 9. То же положение — значение почти не меняется, зона стабильна.- Быстрое движение при N = 9. Провести мышь резко через весь этаж: зуммер заметно «догоняет».
- То же при N = 3. Реакция быстрее, но появляется дрожание.
Вывод формулируют сами дети: чем больше окно, тем спокойнее, но медленнее.
Блок 6. Практические задачи (38–45 мин)
Уровень A (11–13 лет)
A1. Три лисы, слот 20 секунд. Ученик ищет лису №2, и сейчас только что начался слот лисы №3. Сколько ждать своей лисы?
Ответ
Слот лисы №3 — 20 секунд, затем снова лиса №1 — ещё 20 секунд, и только потом лиса №2. Ждать 40 секунд.
A2. Охотник лежит неподвижно, а число на экране меняется: −62, −65, −61, −67. Прибор сломан?
Ответ
Нет. Это нормальный шум измерения: сигнал приходит несколькими путями, добавляется собственный шум приёмника. Все значения лежат близко друг к другу (около −64), значит прибор работает. Для устранения дёрганья прибор усредняет несколько последних значений.
A3. Почему лисы «представляются» разным числом писков?
Ответ
Чтобы охотник понимал, к какой именно лисе относится текущая громкость. Без этого он бы слышал громко-тихо-громко и не знал, что это разные лисы, а не одна движущаяся.
Уровень B (13–15 лет)
B1. Сырой RSSI имеет разброс σ = 3 дБ. Насколько уменьшится разброс при усреднении по 5 значениям? По 9?
Решение
- N = 5: 3 / √5 = 3 / 2,236 = 1,34 дБ (в 2,2 раза меньше);
- N = 9: 3 / √9 = 3 / 3 = 1,00 дБ (в 3 раза меньше).
Замечание: чтобы уменьшить разброс вдвое, нужно увеличить N вчетверо. Это фундаментальное свойство усреднения.
B2. Пакеты приходят каждые 300 мс, окно усреднения N = 7. Ученик бежит со скоростью 3 м/с. На сколько метров «отстаёт» показание зуммера?
Решение
Длительность окна: 7 · 300 мс = 2,1 с.
Среднее по окну отражает середину этого интервала, то есть отстаёт примерно на половину окна: 2,1 / 2 = 1,05 с.
Отставание в метрах: 3 м/с · 1,05 с ≈ 3,2 м.
Вывод: при беге отставание становится существенным — сопоставимым с размером зоны. Для быстро двигающихся детей окно надо уменьшать до 3.
B3. Почему буфер усреднения сбрасывается при смене активной лисы?
Ответ
В буфере лежат значения RSSI от предыдущей лисы, которая находится в другом месте и даёт другой уровень сигнала. Если не сбросить, среднее первые несколько пакетов будет смесью двух разных источников и покажет громкость, не соответствующую ни одной из лис.
Например: старая лиса давала −60 дБм, новая даёт −85 дБм. Без сброса первое же среднее по 5 значениям (4 старых + 1 новое) даст около −65 дБм — прибор скажет «очень близко», хотя новая лиса далеко.
Уровень C (15–16 лет)
C1. Время пакета в эфире при SF7/BW125 для 9-байтового payload составляет 41 мс. Период маяка — 300 мс. Какую долю времени лиса занимает эфир? Останется ли место для трёх лис без слотов?
Решение
Занятость эфира одной лисой:
Три лисы без расписания: суммарная нагрузка 3 · 13,7% = 41%.
Формально эфир не переполнен (41% < 100%), но передачи не синхронизированы, поэтому наложения неизбежны. Вероятность коллизии для случайных передач оценивается по модели ALOHA: при нагрузке G = 0,41 доля успешных ≈ e^(−2G) ≈ 44%. То есть больше половины пакетов погибнет.
Вывод: без расписания три лисы теряют больше половины пакетов, что делает громкость рваной. TDMA решает проблему полностью: в каждый момент передаёт ровно одна лиса, коллизий нет по построению.
C2. Предложите способ уменьшить время ожидания своей лисы, не отказываясь от разделения времени. Оцените последствия.
Разбор
Варианты:
- Уменьшить
SLOT_MS(например, до 5 с). Ожидание падает с 40 до 10 с. Цена: за слот приходит лишь 16 пакетов вместо 66 — буфер усреднения (5 значений) успевает набраться, но времени на поиск в пределах одного слота мало, ученик едва успевает сделать несколько шагов. - Уменьшить число лис в цикле. Прямое сокращение ожидания, но это меняет условия задачи.
- Перемежать слоты: 1, 2, 3, 1, 2, 3 с более коротким слотом — это и есть вариант 1.
- Разнести лис по частотам (FDMA) — ожидание исчезает вовсе, но охотнику нужна перестройка частоты, то есть усложнение прибора и потеря простоты.
Правильный вывод: уменьшение слота сокращает ожидание, но сокращает и непрерывное время наблюдения за одной лисой. Оптимум лежит там, где за слот ученик успевает сделать осмысленное перемещение (5–10 шагов) — это примерно 10–20 с.
C3. Скользящее среднее — не единственный способ сглаживания. Сравните его с медианой по окну (применяется в WarWalk). Какой фильтр лучше для охоты и почему?
Разбор
| Свойство | Скользящее среднее | Медиана окна |
|---|---|---|
| Гашение гауссова шума | лучше (использует все значения) | хуже |
| Устойчивость к выбросам | плохая: один выброс тянет среднее | отличная: выброс игнорируется |
| Сохранение резкой ступеньки | размывает | сохраняет |
| Вычислительная стоимость | минимальная | требует сортировки |
Для охоты предпочтительно среднее: шум здесь в основном гауссов (тепловой + мелкая многолучёвка), резких ступенек нет — расстояние меняется плавно при ходьбе.
Для WarWalk предпочтительна медиана: там встречаются одиночные сильные выбросы от зеркальных отражений, и есть настоящие ступеньки — граница тени здания, которую нельзя размывать.
Вывод: выбор фильтра определяется характером шума и характером полезного сигнала, а не «качеством» фильтра вообще.
Ответы на вопросы, которые прозвучат
| Вопрос ученика | Как отвечать |
|---|---|
| «Почему нельзя дать каждой лисе свою частоту?» | Можно, это FDMA. Но охотнику пришлось бы перестраиваться между частотами и он терял бы время — либо нужно три приёмника. Разделение по времени дешевле |
| «Что будет, если две лисы собьются и заговорят вместе?» | Их сигналы наложатся, приёмник не разберёт ни один — это коллизия. Именно поэтому часы лис должны идти согласованно |
| «А почему не усреднять по 100 значениям — будет очень точно?» | Точность растёт как √N, а задержка — как N. При 100 значениях окно составит 30 секунд: зуммер будет описывать, где вы были полминуты назад |
| «Среднее или медиана — что лучше?» | Зависит от шума. Если помеха — редкий сильный выброс, лучше медиана. Если мелкое дрожание — лучше среднее. У нас второй случай |
| «Зачем вообще усреднять, если можно смотреть на график?» | Ребёнок на охоте смотрит не на график, а под ноги. Зуммер — единственный канал информации, и он должен быть однозначным |
| «Настоящий ARDF тоже так работает?» | Да, принцип тот же: пять лис по очереди, минутные слоты, позывные азбукой Морзе. Мы упростили морзянку до числа писков |
Раздаточный лист (для печати)
Урок 3. Несколько лис и усреднение
Часть 1. Расписание.
Параметр Значение Длительность слота 20 с Число лис 3 Период цикла ____ с Максимальное ожидание своей лисы ____ с Пакетов за слот (маяк каждые 300 мс) ____ Позывные: лиса 1 — ● , лиса 2 — ●● , лиса 3 — ●●●
Часть 2. Усреднение.
Формула уменьшения разброса:
N σ среднего (при σ = 3 дБ) Длительность окна Отставание при 1,4 м/с 1 3 5 7 Мой вывод: какое N выбрать для нашей группы и почему?
________________________________________________________
Часть 3. Полевые наблюдения (заполнить на охоте).
Лиса Найдена за (мин) Что мешало Что помогло №1 №2 №3
Полевой выход (отдельное занятие, 90 мин)
Подготовка
- Три лисы прошиты с
FOX_ID= 1, 2, 3 иFOX_COUNT = 3во всех трёх; SLOT_MS = 20000, мощность подобрана под площадку (урок 2);- Проведён инструктаж по ТБ и регламент полевого выхода (документ 4 экспертизы);
- У каждой команды — раздаточный лист и часы.
Ход
| Время | Этап |
|---|---|
| 0–10 | Инструктаж, распределение ролей в командах |
| 10–20 | Тренировка: научиться считать писки и определять номер активной лисы |
| 20–70 | Поиск трёх лис по очереди |
| 70–85 | Сбор, обмен результатами, заполнение листа |
| 85–90 | Короткий разбор: что мешало, что помогло |
Роли в команде (обязательно, по рубрике В)
- Оператор — держит охотник, называет зону вслух;
- Штурман — принимает решение о направлении, следит за временем слота;
- Протоколист — записывает время находок и наблюдения в лист.
Роли меняются после каждой найденной лисы.
Домашнее задание
Обязательная часть
Врайтап по рубрике А. Обязательные пункты: какое RSSI_AVG_N вы бы выбрали для своей команды и почему; что происходило в первые секунды после смены лисы.
Уровень A
Провести дома опыт с усреднением: измерить пять раз что-нибудь неточным способом (например, время падения предмета по секундомеру телефона). Записать все пять значений и среднее. Объяснить, почему среднее надёжнее одного измерения.
Уровень B
Рассчитать параметры расписания для 5 лис при слоте 15 с: период цикла, максимальное ожидание, число пакетов за слот. Оценить, удобно ли это для охоты длиной 45 минут.
Ориентир для педагога
Период цикла: 5 · 15 = 75 с. Максимальное ожидание: 4 · 15 = 60 с. Пакетов за слот: 15000 / 300 = 50.
За 45 минут проходит 45·60/75 = 36 полных циклов — каждая лиса выходит в эфир 36 раз. Достаточно. Но ожидание до минуты утомительно: ученик стоит без информации. Вывод: для 5 лис слот лучше сократить до 10 с.
Уровень C
Оценить, при каком числе лис схема TDMA перестаёт быть удобной, если считать приемлемым ожидание не более 30 секунд. Предложить, что делать при большем числе лис.
Ориентир для педагога
Условие: SLOT_MS · (N − 1) ≤ 30 с. При слоте 20 с: N − 1 ≤ 1,5, то есть N ≤ 2,5 → максимум 2 лисы. При слоте 10 с: N ≤ 4. При слоте 5 с: N ≤ 7, но за 5 с приходит лишь 16 пакетов, и ученик почти не успевает переместиться.
Вывод: TDMA плохо масштабируется по числу участников — время делится на всех. При большом числе передатчиков переходят к частотному разделению либо к случайному доступу (ALOHA), где нет гарантированного слота, но нет и ожидания. Это прямая подводка к PowerSentry.
Итог урока: что записать в журнал
Вывод урока 3
- Несколько передатчиков на одной частоте мешают друг другу — нужен способ разделить эфир.
- TDMA: время делится на слоты, в каждый момент передаёт один. Цена — ожидание своей очереди.
- Измеренная величина всегда содержит шум. «Цифра прыгает» — не поломка.
- Скользящее среднее уменьшает разброс в √N раз, но задерживает реакцию на N периодов.
- Усреднять можно только однородные данные: при смене источника буфер сбрасывается.
Связь с курсом
| Что родилось на этом уроке | Где станет инструментом |
|---|---|
| Разделение общего ресурса | PowerSentry (ALOHA, ёмкость сети) |
| Шум измерения как норма | RFCurtain (два окна), WarWalk (медиана) |
| Скользящее окно | RFCurtain (быстрая медиана и медленная база) |
| Однородность усредняемых данных | RFCurtain (заморозка базы), WarWalk (сетка по сессии) |
| Компромисс «точность ↔ скорость» | Все последующие модули |
Чек-лист педагога перед уроком
- Три лисы прошиты с разными
FOX_IDиFOX_COUNT = 3 - Проверено: охотник корректно проговаривает номер активной лисы
- Для демонстрации хаоса подготовлен вариант с
FOX_COUNT = 1на всех трёх - Монитор порта настроен для показа сырого RSSI
- Симулятор проверен, ползунок
RSSI_AVG_Nработает - Раздаточный лист распечатан по числу команд
- Для полевого выхода — выполнен регламент (документ 4 экспертизы)