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

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

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

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

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

  • Пассивный инфракрасный - Измеряет изменения температуры тела (инфракрасная энергия) для обнаружения движения
  • СВЧ - Измеряет отражение от объектов с помощью микроволн для обнаружения движения

Эти два типа детекторов движения являются наиболее распространенными, поскольку они часто используются в таких приложениях, как системы безопасности. Хотя существует множество других типов датчиков движения, включая зональные отражающие датчики, использующие предполагаемый свет, датчики вибрации и ультразвуковые датчики [1]. Для использования с любителями и проектами DIY наиболее широко доступным и используемым типом датчика движения является пассивный инфракрасный (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. Этот флаг устанавливается в HIGH, когда прерывание запускается впервые, и отправляется в низкий уровень только после расчетной задержки, которая в этом примере составляет одну минуту. Он также используется для обеспечения того, чтобы значение флага motionDetected не переключалось до истечения этой временной задержки.

Справка:

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

Share this article

Нужна помощь в поиске правильного привода?

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