Датчики движения и линейные приводы

Детекторы движения

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

Датчик движения

Когда вы думаете о детекторах движения, вы обычно думаете о двух типах:

  • Пассивный инфракрасный – Который измеряет изменения температуры тела (инфракрасной энергии) для обнаружения движения.
  • Микроволновая печь – Который измеряет отражения от объектов, используя микроволны для обнаружения движения.

Эти два типа детекторов движения являются наиболее распространенными, поскольку они часто используются в таких приложениях, как системы безопасности. Хотя существует множество других типов детекторов движения, включая отражающие датчики, которые используют предполагаемый свет, датчики вибрации и ультразвуковые датчики.1]. Для любителей и домашних проектов наиболее распространенным и используемым типом детектора движения является пассивный инфракрасный (PIR) датчик движения. По этой причине остальная часть этого блога будет посвящена тому, как использовать PIR-детектор движения с линейным приводом. Хотя каждый тип датчика будет иметь разную реализацию, большая часть того, что описано ниже о том, как управлять линейным приводом с помощью детектора движения, будет одинаковой для всех типов детекторов движения.

А как насчет датчиков приближения?

Датчики приближения не являются детекторами движения, поскольку они обнаруживают близость объекта, а не движение. Функционально, датчик приближения может сказать вам, насколько близко объект находится к датчику, независимо от того, движется объект или нет. В то время как детекторы движения срабатывают только при движении, независимо от того, насколько близко находится объект. Вы можете использовать датчики приближения в качестве детекторов движения, поскольку выходные данные датчиков приближения будут меняться, когда объект или человек перемещается перед датчиком. Однако датчики приближения определяют только то, насколько близко к датчику находится ближайший объект, поэтому, если что-то движется за ближайшим объектом, датчик приближения не обнаружит это движение. Хотя использование датчика приближения в качестве детектора движения возможно, это может быть не лучшим решением для вашего проекта.

Датчик приближения

Настройка PIR-детектора движения

Если вы хотите создать своего собственного робота-пугателя для Хэллоуина или имеете в виду другой проект, чувствительный к движению, вам нужно будет использовать свой PIR-детектор движения в качестве входного переключателя, чтобы определить, когда ваш линейный привод должен двигаться. Для этого вам понадобится использовать микроконтроллер, например Ардуино, чтобы считывать выходные данные вашего PIR-детектора движения и управлять линейным приводом. Выход PIR-детектора движения аналогичен простой кнопке: при движении датчик посылает высокий сигнал или напряжение на микроконтроллер, а при отсутствии движения он посылает низкий сигнал или напряжение. Вы также можете протестировать свой PIR-датчик перед установкой его в свою конструкцию, поскольку некоторые PIR-датчики позволяют регулировать чувствительность датчика для повышения производительности.

PIR-датчик, подключенный к Arduino 

Поскольку вы не будете знать, когда кто-то пройдет мимо вашего детектора движения, вам нужно будет либо постоянно считывать выходные данные PIR-датчика в основном цикле вашего кода, либо использовать внешние прерывания. Внешние прерывания — это контакты Arduino, которые обнаруживают изменение напряжения и в нашем случае могут использоваться для оповещения Arduino о том, что наш PIR-датчик обнаружил движение. В зависимости от вашего приложения возможен любой метод считывания выходных данных PIR-датчика, хотя последний считается лучшей практикой, поскольку гарантирует, что ваш код не пропустит ни одного движения, обнаруженного PIR-датчиком. Если вы планируете использовать внешнее прерывание для обнаружения изменений с вашего детектора движения, вам необходимо обратиться к таблице данных вашего Arduino, чтобы убедиться, какие контакты вашего микроконтроллера можно использовать в качестве контактов прерывания. Если нет, вы можете просто подключить выход PIR-датчика к любому из цифровых входов Arduino. Датчик PIR также необходимо будет подключить к соответствующему источнику питания и к общей земле.

Линейный привод с управлением движением

В обоих примерах ниже Arduino управляет линейным приводом с помощью водитель автомобиля. Научиться управлять линейным приводом с помощью привода двигателя или других промежуточных компонентов, таких как реле, вы можете прочитать нашу публикацию на Как управлять линейным приводом с помощью Arduino. Кроме того, ни в одном из приведенных ниже примеров не используется линейный привод с обратной связью или внешние концевые выключатели в их конструкции, что даст вам больше контроля над приводом, чем без него. Если вас интересует, как и какие варианты обратной связи доступны, вы можете прочитать нашу публикацию на эту тему. здесь.  

В приведенном выше примере кода показано, как настроить прерывание в Arduino IDE, при котором прерывание будет запускаться по нарастающему фронту импульса напряжения. Вы можете настроить срабатывание прерывания в разные моменты изменения напряжения, и вам следует обратиться к таблице данных вашего микроконтроллера, чтобы определить доступные параметры. После того как вы определили и выбрали подходящий вывод прерывания, последнее, что вам нужно сделать для настройки прерывания, — это написать процедуру обслуживания прерывания. Процедура обслуживания прерывания — это простая функция, код которой будет выполняться каждый раз при срабатывании прерывания. В нашем случае наша программа обработки прерываний motionDetector просто устанавливает флаг motionDetected на высокий уровень при срабатывании прерывания.

Как только ваш Arduino прочитает выходные данные вашего PIR-датчика, используя внешнее прерывание или просто прочитав выходные данные, то, как вы используете эту обратную связь для управления линейным приводом, будет зависеть от вашей конструкции и вашего приложения. Поскольку PIR-датчик обеспечивает только двоичную обратную связь, как кнопка, уровень управления линейным приводом будет ограничен. Один из способов управления линейным приводом с помощью этой обратной связи — дать ему команду двигаться при обнаружении движения, что может быть полезно в таких приложениях, как пугающие роботы в доме с привидениями. Приведенный выше код показывает, как можно реализовать этот дизайн. Как только флаг motionDetected установлен на высокий уровень, мы выдвигаем линейный привод вперед, и через 10 секунд флаг сбрасывается на низкий уровень, и привод втягивается для следующего испуга прыжком. Поскольку мы используем детектор движения только для того, чтобы сообщить Arduino о том, что кто-то здесь есть, мы используем таймер, чтобы сбросить флаг и ждать, пока мимо пройдет следующий человек.

Другой метод — переключение между выдвинутым и втянутым положениями линейного привода каждый раз при обнаружении движения, что может быть полезно в приложениях домашней автоматизации. Реализация этого подхода показана выше. В процедуре обслуживания прерываний флаг motionDetected переключается каждый раз, когда PIR-датчик обнаруживает движение. Когда флаг установлен на высокий уровень, линейный привод выдвигается, а когда флаг установлен на низкий уровень, привод втягивается. Мы также добавили еще один флаг timerFlag, который используется для добавления временной задержки после срабатывания PIR-детектора движения. Этот флаг устанавливается в ВЫСОКИЙ уровень при первом запуске прерывания и передается в низкий уровень только после заданной задержки времени, которая в этом примере составляет одну минуту. Он также используется для обеспечения того, чтобы значение флага motionDetected не переключалось до истечения этой временной задержки.

Ссылка:

  1. Тросс, К. (октябрь 2019 г.). Руководство для начинающих по датчикам движения. Извлекаются из: https://www.safewise.com/resources/motion-sensor-guide/
Share This Article
Tags: