Detectores de movimento
Os detectores de movimento, como o próprio nome sugere, são sensores usados para detectar movimento. Eles são comumente vistos em alarmes de segurança e sistemas de iluminação acionados por movimento, mas podem ser usados em conjunto com atuadores lineares para uma ampla gama de aplicações frias. Uma aplicação comum de atuadores lineares e detectores de movimento usados em conjunto estão em casas mal-assombradas para dar sustos. Mas juntos, atuadores lineares e detectores de movimento também podem ser usados para uma ampla gama de projetos de automação residencial.
Quando você pensa em detectores de movimento, geralmente pensa em 2 tipos:
- Infravermelho Passivo – Que mede mudanças no calor corporal (energia infravermelha) para detectar movimento
- Microondas – Que mede os reflexos de objetos usando microondas para detectar movimento
Esses dois tipos de detectores de movimento são os mais comuns, pois são frequentemente usados em aplicações como sistemas de segurança. Embora existam muitos outros tipos de detectores de movimento disponíveis, incluindo sensores reflexivos de área, que usam luz inferida, sensores de vibração e sensores ultrassônicos [1]. Para uso com hobbyistas e projetos DIY, o tipo de detector de movimento mais comumente disponível e usado é o sensor de movimento infravermelho passivo (PIR). Por causa disso, o restante deste blog se concentrará em como usar um detector de movimento PIR com seu atuador linear. Embora cada tipo de sensor tenha implementações diferentes, muito do que é descrito abaixo sobre como controlar um atuador linear com um detector de movimento será semelhante para todos os tipos de detectores de movimento.
E quanto aos sensores de proximidade?
Os sensores de proximidade não são detectores de movimento, pois detectam a proximidade de um objeto em vez de movimento. Funcionalmente, um sensor de proximidade pode dizer a que distância um objeto está do sensor, esteja ele em movimento ou não. Enquanto os detectores de movimento, só serão acionados quando houver movimento, independentemente da proximidade do objeto. Você pode utilizar sensores de proximidade como detectores de movimento, pois a saída dos sensores de proximidade mudará quando um objeto ou pessoa se mover na frente do sensor. Embora os sensores de proximidade detectem apenas o quão próximo o objeto mais próximo está do sensor, se algo se mover atrás do objeto mais próximo, o sensor de proximidade não detectará esse movimento. Embora seja possível usar um sensor de proximidade como detector de movimento, pode não ser a melhor solução para o seu projeto.
Configurando seu detector de movimento PIR
Se você está procurando projetar seu próprio robô assustador para o Halloween ou tem outro projeto sensível ao movimento em mente, você vai querer utilizar seu detector de movimento PIR como uma chave de entrada para determinar quando seu atuador linear deve se mover. Para fazer isso, você vai querer usar um microcontrolador, como um Arduíno, para ler a saída do seu detector de movimento PIR e para acionar o seu atuador linear. A saída do detector de movimento PIR é semelhante a um simples botão, quando há movimento o sensor enviará um sinal ou tensão alta ao microcontrolador e quando não houver movimento enviará um sinal ou tensão baixa. Você também pode testar seu sensor PIR antes de instalá-lo em seu projeto, pois alguns sensores PIR permitem ajustar a sensibilidade do sensor para melhor desempenho.
Como você não saberá quando alguém passará pelo seu detector de movimento, você precisará ler constantemente a saída do sensor PIR no loop principal do seu código ou poderá fazer uso de interrupções externas. Interrupções externas são pinos do Arduino que detectam uma mudança de tensão e no nosso caso podem ser usadas para alertar o Arduino que nosso sensor PIR detectou movimento. Dependendo da sua aplicação, qualquer método de leitura da saída do sensor PIR é viável, embora o último seja considerado uma prática recomendada, pois garante que seu código não perderá nenhum movimento detectado pelo sensor PIR. Se você planeja usar uma interrupção externa para detectar uma alteração em seu detector de movimento, você precisará consultar a folha de dados do seu Arduino para garantir quais pinos do seu microcontrolador podem ser usados como pinos de interrupção. Caso contrário, você pode simplesmente conectar a saída do sensor PIR a qualquer um dos pinos de entrada digital do Arduino. O sensor PIR também precisará ser conectado a uma fonte de alimentação apropriada e a um aterramento comum.
Atuador Linear Controlado por Movimento
Em ambos os exemplos abaixo, o Arduino controla o atuador linear usando um motorista. Para aprender como acionar um atuador linear com um acionador de motor ou outros componentes intermediários, como relés, você pode conferir nossa postagem em Como controlar um atuador linear com um Arduino. Além disso, nenhum dos exemplos abaixo utiliza um atuador linear de feedback ou interruptores de limite externos em seu design, o que lhe daria mais controle sobre o atuador do que sem ele. Se você estiver interessado em como e quais opções de feedback estão disponíveis, confira nossa postagem sobre o tema aqui.
O exemplo de código acima mostra como configurar uma interrupção no Arduino IDE onde a interrupção será acionada na borda ascendente do pulso de tensão. Você pode configurar sua interrupção para ser acionada em diferentes pontos de uma mudança de tensão e deve consultar a folha de dados do seu microcontrolador para determinar as opções disponíveis. Depois de identificar e selecionar um pino de interrupção apropriado, o último aspecto que você precisa fazer para configurar sua interrupção é escrever sua rotina de serviço de interrupção. A rotina de serviço de interrupção é uma função simples que o código executará sempre que a interrupção for acionada. Em nosso caso, nossa rotina de serviço de interrupção motionDetector simplesmente define o sinalizador motionDetected como alto quando a interrupção é acionada.
Depois que o seu Arduino tiver lido a saída do seu sensor PIR, seja usando uma interrupção externa ou simplesmente lendo a saída, como você utiliza esse feedback para controlar seu atuador linear dependerá do seu projeto e da sua aplicação. Como o sensor PIR fornece apenas feedback binário, como um botão, o nível de controle sobre o atuador linear será limitado. Uma maneira de controlar o atuador linear com esse feedback é dizer ao atuador para se mover sempre que for detectado movimento, o que pode ser útil em aplicações como sustos robóticos em uma casa mal-assombrada. O código acima mostra como você poderia implementar esse design. Assim que o sinalizador motionDetected for definido como alto, estendemos o atuador linear para frente e após 10 segundos, o sinalizador é redefinido para baixo e o atuador se retrai para o próximo salto assustador. Como usamos o detector de movimento apenas para avisar ao Arduino que alguém está ali, utilizamos um cronômetro para zerar a bandeira e esperar a próxima pessoa passar.
Outro método é alternar entre as posições estendida e retraída do atuador linear sempre que for detectado movimento, o que pode ser útil em aplicações de automação residencial. A implementação desta abordagem é mostrada acima. Na rotina de serviço de interrupção, o sinalizador motionDetected é alternado toda vez que o sensor PIR detecta movimento. Quando o sinalizador é definido como alto, o atuador linear é estendido e quando o sinalizador é definido como baixo, o atuador é retraído. Também adicionamos outro sinalizador timerFlag que é usado para adicionar atraso de tempo após o detector de movimento PIR ser acionado. Este sinalizador é definido como HIGH quando a interrupção é acionada pela primeira vez e só é enviado para nível baixo após o atraso projetado, que é de um minuto neste exemplo. Também é usado para garantir que o valor do sinalizador motionDetected não seja alternado até depois desse atraso.
Referência:
- Tross, K. (2019, outubro). O guia para iniciantes em sensores de movimento. Obtido de: https://www.safewise.com/resources/motion-sensor-guide/