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

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

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

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

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

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

Эти два типа детекторов движения являются наиболее распространенными, поскольку они часто используются в таких приложениях, как системы безопасности. Хотя существует множество других типов детекторов движения, включая отражающие датчики, которые используют предполагаемый свет, датчики вибрации и ультразвуковые датчики.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:

Need Help Finding the Right Actuator?

We precision engineer and manufacture our products so you get direct manufacturers pricing. We offer same day shipping and knowledgeable customer support. Try using our Actuator Calculator to get help picking the right actuator for your application.