Обработка сигналов датчиков

Аналоговые датчики
Разработка и описание моделей Django
Позволяют получать информацию о различных физических величинах в реальном масштабе времени. Используются принципы физических законов, которые изменяют сопротивляемость материала в зависимости от изменения окружающей среды.

Далее происходит преобразование электрического сигнала в сигнал пригодный для передачи по линиям связи в контроллер и дальнейшая его обработка.
Между измеряемой величиной и возвращаемым обратно напряжением установлена определённая зависимость.

Например:

  • чем больше величина, тем больше напряжение;
  • чем больше величина, тем напряжение меньше.

Чаще всего зависимость не линейная и актуальна в определенном диапазоне. Данный диапазон называется рабочим и в этом диапазоне показания актуальны. Приближаясь к границам сигнал перестает отражать изменение окружающей среды.
Методы цифрового сигнала
read_digital() - Возвращает 1, если сигнал высокий, и 0, если низкий.

write_digital
(value) - Установите контакт на высокий уровень сигнала, если value равна 1. value равна 0 - низкий уровань.

set_pull(value)
- Установить состояние контакта.Одно из трех возможных значений: pin.PULL_UP, pin.PULL_DOWN или pin.NO_PULL. См. ниже обсуждение состояний извлечения по умолчанию.

get_pull() - Извлечь состояние контакта, одно из трех возможных значений: NO_PULL, PULL_DOWN, или PULL_UP.

get_mode() - Возвращает режим вывода. Когда контакт используется для определенной функции, например запись цифрового значения или чтение аналогового значения, режим вывода изменztncz. Пины могут иметь один из следующих режимов: "unused", "analog", "read_digital", "write_digital", "display", "button", "music", "audio", "touch", "i2c", "spi".
Методы аналогового сигнала
read_analog() - Вернуть напряжение, приложенное к контакту, целое число между 0 (что означает 0 В) и 1023 (что означает 3,3 В).

write_analog(value) - Установите ШИМ-сигнал на контакт с рабочим циклом, пропорциональным предоставленный в value. value может быть либо целым числом, либо число с плавающей запятой от 0 до 1023.

set_analog_period(period) - Установите период выводимого ШИМ-сигнала на period в миллисекундах. Минимальное допустимое значение составляет 1 мс

set_analog_period_microseconds(period) - Установите период выводимого ШИМ-сигнала на period в микросекунды. Минимальное допустимое значение составляет 256 мкс.
Широтно-импульсная модуляция
Контакты платы не могут выводить аналоговый сигнал, как аудиоусилитель. Но можно сделать это - путем модуляции напряжения на выводе. Контакты могут либо включить полный выход 3,3 В или выключить его 0 В.

Но можно управлять яркостью светодиодов или скоростью электродвигателя используя ШИМ (очень быстро включать и выключать напряжение и контролировать ее продолжительность). Функция write_analog использует ШИМ.
Библиотека
Для удобства работы с датчиками разработана библиотека. Она позволяет работать с датчиками в методологии Объектно-ориентированного программирования. Написана документация по работе с библиотекой

Перейти на документацию
Пример работы с датчиком

from microbit import display, pin0

from Analog_Gas import Analog_Gas

gas = Analog_Gas(pin0)

gas.calibrate()
while True:
    display.scroll(gas.get_signal())