engineering

Учебник Сенсорика для начинающих

25 уроков · 8 разделов · бесплатно, без регистрации

Любая «умная» система начинается с датчика — куска физики, который превращает температуру, давление, свет или ускорение в число. Но сырое число с датчика почти всегда врёт: оно нелинейно, зашумлено, смещено и квантовано. Этот курс — про то, как превратить грязный сигнал в надёжную оценку измеряемой величины. Мы разберём, как устроены реальные датчики (термопары, терморезисторы, ИК и ультразвук, IMU), как работает аналого-цифровое преобразование, как калибровать и линеаризовать показания, как давить шум скользящим, экспоненциальным и медианным фильтром, как сливать несколько датчиков комплементарным фильтром и фильтром Калмана, и как из чистого сигнала делать события и пороги. Рядом с каждой формулой — короткая программа на стандартной библиотеке Python, которая её считает прямо в браузере. Курс не дублирует теорию ЦОС и Фурье — упор на физику измерения, калибровку, фильтрацию и слияние.

Курс «Сенсорика: датчики и обработка сигналов» состоит из 8 разделов и 25 уроков: Что такое датчик, Типы датчиков, Аналого-цифровое преобразование, Калибровка и линеаризация, Шум и фильтрация, Слияние датчиков, Пороги, события и интерфейсы и Применение: сквозные расчёты. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Что такое датчик

    1. Измеряемая величина и передаточная функция

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

    2. Чувствительность, диапазон и разрешение

      Чувствительность как наклон характеристики, диапазон измерений, разрешение и их связь с пригодностью датчика для задачи.

    3. Нелинейность и гистерезис

      Что такое нелинейность в % FSO и гистерезис датчика, как их измеряют и почему они ограничивают точность.

  2. 2 Типы датчиков

    1. Датчики температуры: термопара и терморезистор

      Термопара (эффект Зеебека) и терморезистор (NTC, уравнение Бета): как из напряжения и сопротивления получить температуру.

    2. Датчики давления и света

      Пьезорезистивные датчики давления и фотодиоды/фоторезисторы: линейный пересчёт давления и логарифмический отклик на свет.

    3. Датчики расстояния: ИК и ультразвук

      Как ИК-триангуляция и ультразвуковой дальномер измеряют расстояние: время полёта, скорость звука и обратная зависимость ИК.

    4. Инерциальные датчики: IMU

      Акселерометр и гироскоп в IMU: как из ускорения получить угол наклона, что измеряет гироскоп и зачем их объединять.

  3. 3 Аналого-цифровое преобразование

    1. Дискретизация и теорема Котельникова

      Частота дискретизации, теорема Котельникова (Найквиста) и эффект наложения (алиасинг): почему нужно мерить вдвое чаще максимальной частоты.

    2. Разрядность АЦП и шаг квантования

      Сколько уровней даёт N-битный АЦП, как считать шаг квантования (LSB) и максимальную ошибку квантования.

    3. Шум квантования и эффективное разрешение

      Ошибка квантования ±0.5 LSB, отношение сигнал/шум SNR ≈ 6.02N+1.76 дБ и эффективное число бит (ENOB).

  4. 4 Калибровка и линеаризация

    1. Двухточечная калибровка

      Линейная двухточечная калибровка датчика: расчёт наклона и смещения по двум эталонным точкам, коррекция нуля и масштаба.

    2. Аппроксимация многочленом

      Линеаризация нелинейного датчика многочленом: метод наименьших квадратов для прямой и квадратичная аппроксимация на Python stdlib.

    3. Единицы измерения и перевод

      Работа с единицами в показаниях датчиков: SI-приставки, перевод величин, температурные шкалы и контроль размерностей.

  5. 5 Шум и фильтрация

    1. Природа шума и скользящее среднее

      Откуда берётся шум датчика, как скользящее среднее усредняет окно отсчётов и почему оно снижает шум в корень из N раз.

    2. Экспоненциальный фильтр (EMA)

      Экспоненциальное скользящее среднее: рекуррентная формула, параметр alpha, компромисс скорость/сглаживание и память в один отсчёт.

    3. Медианный фильтр против выбросов

      Медианный фильтр: почему медиана устойчива к выбросам, чем отличается от среднего и как давить импульсный шум датчика.

  6. 6 Слияние датчиков

    1. Зачем сливать датчики

      Идея слияния датчиков: один датчик быстрый, но дрейфует, другой стабильный, но медленный — вместе они дают лучшую оценку.

    2. Комплементарный фильтр

      Комплементарный фильтр для IMU: смесь интеграла гироскопа и угла акселерометра, формула с alpha и 1D-симуляция оценки угла.

    3. Фильтр Калмана на пальцах (1D)

      Идея фильтра Калмана на простом 1D-примере: предсказание, обновление, коэффициент усиления Калмана и симуляция на Python stdlib.

  7. 7 Пороги, события и интерфейсы

    1. Пороги и гистерезис событий

      Пороговое срабатывание с гистерезисом (триггер Шмитта): два порога вместо одного, чтобы убрать дребезг на границе.

    2. Антидребезг сигналов и кнопок

      Антидребезг (debounce) кнопок и дискретных датчиков: подавление ложных переключений требованием стабильности N отсчётов.

    3. Интерфейсы: аналоговый, I2C, SPI

      Как датчики передают данные: аналоговый выход через АЦП и цифровые шины I2C (адресная, два провода) и SPI (быстрая, отдельный выбор).

  8. 8 Применение: сквозные расчёты

    1. Метеостанция: от давления к погоде

      Сквозной пример метеостанции: приведение давления к уровню моря и расчёт точки росы по температуре и влажности.

    2. Система ориентации: цепочка обработки IMU

      Сквозной расчёт угла из IMU: фильтрация акселерометра, наклон через arctan и слияние с гироскопом комплементарным фильтром.

    3. Обнаружение движения по дисперсии

      Детектор движения: сравнение стандартного отклонения окна сигнала с порогом, скользящая дисперсия и устойчивость к шуму.