Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Base de câmera motorizada seguindo movimento

Componentes e suprimentos

Arduino UNO
× 1
Capacitor 100 µF
× 1
LED (genérico)
× 5
Sensor de movimento PIR (genérico)
× 5
Resistor 220 ohm
× 5
Servos (Tower Pro MG996R)
× 1

Sobre este projeto


Tive essa ideia para resolver um problema que estava tendo com as câmeras de segurança de minha casa. Tenho uma câmera específica que está posicionada em uma parede entre duas salas, no entanto, você só pode ver uma sala por vez, a menos que faça login no software da câmera para girá-la manualmente. Se alguém entrasse na sala oposta, a câmera nunca registraria a ação. Para resolver esse problema, decidi criar uma base de detecção / rastreamento de movimento na qual eu poderia anexar a câmera para que ela se reposicionasse automaticamente onde quer que o movimento fosse detectado.





COMO FUNCIONA:


Este dispositivo usa 5 sensores de movimento PIR para detectar qualquer movimento em um raio de 180º. Uma vez que o movimento é detectado, um servo motor gira a base da câmera para apontar naquela direção. Existem também 5 luzes LED de "status" posicionadas dentro da base que acenderão a qualquer momento que um dos sensores PIR detectar movimento.





VEJA EM AÇÃO!





FIAÇÃO:


A fiação para este projeto é simples e direta, no entanto, devido ao fato de haver 5 de tudo, exceto o servo motor, o número de fios começa a aumentar um pouco. Verifique o diagrama de circuito e os esquemas na parte inferior desta página para obter mais detalhes, mas aqui estão os fundamentos.

as luzes de status do LED ...

Usei uma mini placa de ensaio para manter as luzes LED separadas do resto do circuito para permitir uma remoção mais fácil, se necessário. Cada LED responde a um sensor PIR diferente e acenderá sempre que detectar movimento. Basta conectar cada LED a uma entrada digital separada (9-13) no Arduino e aterrá-los por meio de um resistor de 220 ohms.

os sensores de movimento PIR ...

Usei os sensores PIR modelo HC-SR501 para este projeto. Cada sensor PIR precisa ser conectado a uma entrada digital (2-6) no Arduino, alimentação de 5 V e aterramento. Se você estiver usando o mesmo sensor PIR que eu, você pode (com cuidado) retirar a tampa e os pinos são marcados por baixo. Você conectará cada sensor PIR à luz LED correspondente no código carregado posteriormente.

o servo motor ...

O servo motor é conectado ao suporte onde a câmera fica e gira a câmera para alinhá-la com o sensor PIR ativo. Usando a pinagem de seu motor, conecte um pino à alimentação, outro pino à entrada digital 7 do Arduino e o último pino ao aterramento. Antes de ligar o Arduino, certifique-se de conectar um capacitor de 100 µF entre a alimentação e o aterramento do motor para ajudar a proteger a placa contra picos de energia que ocorrem quando o motor se move.

Uma coisa a se notar sobre os servo motores é que nem todos têm uma amplitude de movimento completa de 180º. Depois de alguns testes, descobri que o meu moveu-se apenas cerca de 160º, então modifique o código de acordo se o seu motor for diferente. Você saberá que o motor está tentando se mover muito longe quando faz um ruído de trituração na última posição do sensor PIR.





CONSTRUÇÃO:


Eu usei uma velha etiquetadora de cd da Memorex para a carcaça do servo e a superfície para a câmera sentar. Não consegui tirar uma foto "antes", então a imagem abaixo é a única que restou que consegui encontrar online. A parte de trás era um disco plano e resistente de plástico que acabou se soltando inteiro (depois de um pouco de persuasão da minha chave de fenda), então funcionou muito bem como um lugar para colocar minha câmera. Ele também veio com 4 'pés' de borracha removíveis, o que ajuda a dar à câmera um pouco mais de aderência quando o motor se move.

Levei meu alicate para a parte preta no centro para removê-lo ... e com isso quero dizer, quebre-o em quantas partes eu puder antes que desapareça :) Em seguida, fiz alguns orifícios na base com minha Dremel e, em seguida, conectou o servo motor com alguns parafusos.

Por último, usei outro parafuso para prender o servo motor à peça onde ficará a câmera. Tive um problema em que o peso da câmera estava fazendo a base inclinar, então resolvi isso fazendo um cilindro de papelão alto o suficiente para caber livremente entre o motor e a câmera. Agora ele ainda se move livremente, mas tem mais suporte com seu peso distribuído uniformemente.

Aqui está o que tudo parece depois que os sensores PIR foram instalados e todos os circuitos concluídos. Você notará que usei várias placas de ensaio para concluir meu projeto. A razão para isso é que ele tornou extremamente fácil encaixá-los dentro da base, bem como selecionar e escolher qual deles remover durante a solução de problemas e expandi-los posteriormente.

Para completar o projeto, pintei todas as partes visíveis do papelão de preto para que parecesse mais uniforme com o suporte preto acima.

Aqui está o produto acabado após a pintura ...



Código

  • O código principal
O código principal Arduino
Os sensores PIR serão calibrados por 15 segundos após ligar o Arduino. Recomenda-se que você saia da sala durante este processo para que os sensores obtenham uma imagem real da sala sem qualquer movimento.
 / ******************** **** *************************************************** / // Servor motor # include  Servo camServo; // nomeia o servo motor que controla a base da câmeraint currentPIRposition =0; // definir o ângulo atual do servo // LED de status lightsint LEDpin [] ={9,10,11,12,13}; // Números dos pinos do LEDint currentLEDpin =9; // o pino do LED atual; comece com o primeiro na sequência acima // PIR sensoresint PIRpin [] ={2,3,4,5,6}; // PIR pin numbersint currentPIRpin =2; // o pino PIR atual; comece com o primeiro na sequência acimaint PIRprevState [] ={1,1,1,1,1}; // o estado anterior do PIR (0 =LOW, 1 =HIGH) int PIRposition [] ={157,117.75,78.5,39.25,0}; // atribuir ângulos para servo motor (0-157 distribuídos igualmente entre 5 sensores PIR) boolean PIRstatus; // Defina o status do sensor PIR como verdadeiro ou falso ///// SETUP ////////////////////////////////// ////// void setup () {Serial.begin (9600); camServo.attach (7); // atribuir pino servo para (int p =0; p <5; p ++) {// definir todos os sensores PIR como INPUTS pinMode (PIRpin [p], INPUT); } // fim de 'p' para for (int l =0; l <5; l ++) {// definir todos os LEDs como OUTPUTS pinMode (LEDpin [l], OUTPUT); } // fim de 'l' para /////// CALIBRATE PIR SENSORS /////// Serial.print ("Calibrando Sensores PIR"); for (int c =0; c <15; c ++) {// calibra os sensores PIR por 15 segundos (mude de 10-60 segundos dependendo de seus sensores) Serial.print ("."); atraso (1000); // aguarde 1 segundo} // termina a calibração para Serial.println ("PIR Sensors Ready"); camServo.write (78,5); // mova o servo para a posição central para começar} // finalizar a configuração ///// MAIN LOOP ///////////////////////////// /////// void loop () {for (int PIR =0; PIR <5; PIR ++) {// iniciar este loop para cada sensor PIR currentPIRpin =PIRpin [PIR]; // define o pino PIR atual para o número atual no loop 'for' currentLEDpin =LEDpin [PIR]; // define o pino do LED atual para o número atual no loop 'for' PIRstatus =digitalRead (currentPIRpin); if (PIRstatus ==HIGH) {// se movimento for detectado no sensor PIR atual digitalWrite (currentLEDpin, HIGH); // liga o LED correspondente se (PIRprevState [PIR] ==0) {// se o estado anterior do sensor PIR é BAIXO if (currentPIRposition! =currentPIRpin &&PIRprevState [PIR] ==0) {// se o PIR alto é diferente de posição atual PIR, em seguida, mova para a nova posição camServo.write (PIRposition [PIR]); Serial.print ("Ângulo atual:"); Serial.println (PIRposition [PIR]); atraso (50); currentPIRposition =currentPIRpin; // redefine a posição PIR atual para o pino [PIR] ativo PIRprevState [PIR] =1; // define o estado PIR anterior para HIGH} PIRprevState [PIR] =1; // define o estado PIR anterior para HIGH se a posição atual é a mesma que o pino PIR atual} // finaliza PIRprevState if} // finaliza PIRstatus if else {// digitalWrite (currentLEDpin, LOW); // o led visualiza o estado do pino de saída dos sensores PIRprevState [PIR] =0; // define o estado PIR anterior para LOW} // fim do outro} // fim do [PIR] para o loop} // fim do loop principal 

Esquemas


Processo de manufatura

  1. Câmera
  2. Base mínima de RaspberryPI
  3. Sensor de movimento usando Raspberry Pi
  4. Sistema de alarme de detecção de movimento
  5. Botão AWS IoT controlado por movimento
  6. Framboesa com came na gaiola
  7. BrickPi Bookreader
  8. CÂMERA AO VIVO TRANSMITIDO RASPBERRY PI - CONFIGURAÇÃO DE MOVIMENTO
  9. Tecnologia de movimento linear
  10. Câmera Plenoptica