Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Base de cámara motorizada de seguimiento de movimiento

Componentes y suministros

Arduino UNO
× 1
Condensador 100 µF
× 1
LED (genérico)
× 5
Sensor de movimiento PIR (genérico)
× 5
Resistencia 220 ohmios
× 5
Servos (Tower Pro MG996R)
× 1

Acerca de este proyecto

Se me ocurrió esta idea para resolver un problema que tenía con las cámaras de seguridad de mi hogar. Tengo una cámara en particular que está colocada en una pared entre dos habitaciones, sin embargo, solo puede ver una habitación a la vez a menos que inicie sesión en el software de la cámara para rotarla manualmente. Si alguien entrara en la habitación opuesta, la cámara nunca grabaría la acción. Para resolver este problema, decidí crear una base de detección / seguimiento de movimiento en la que pudiera conectar la cámara para que se reposicionara automáticamente en el lugar donde se detectara el movimiento.

CÓMO FUNCIONA:

Este dispositivo utiliza 5 sensores de movimiento PIR para detectar cualquier movimiento dentro de un radio de 180º. Una vez que se detecta movimiento, un servomotor hace girar la base de la cámara para apuntar en esa dirección. También hay 5 luces LED de "estado" ubicadas dentro de la base que se iluminarán cada vez que uno de los sensores PIR detecte movimiento.

¡VÉALO EN ACCIÓN!

CABLEADO:

El cableado para este proyecto es simple y directo, sin embargo, debido al hecho de que hay 5 de todo excepto el servomotor, la cantidad de cables comienza a sumarse bastante. Consulte el diagrama de circuito y los esquemas en la parte inferior de esta página para obtener más detalles, pero estos son los conceptos básicos.

las luces LED de estado ...

Usé una mini placa de pruebas para mantener las luces LED separadas del resto de los circuitos para permitir una extracción más fácil si es necesario. Cada LED responde a un sensor PIR diferente y se iluminará cada vez que detecte movimiento. Simplemente conecte cada LED a una entrada digital separada (9-13) en el Arduino y conecte a tierra a través de una resistencia de 220 ohmios.

los sensores de movimiento PIR ...

Usé los sensores PIR modelo HC-SR501 para este proyecto. Cada sensor PIR debe estar conectado a una entrada digital (2-6) en el Arduino, alimentación de 5 V y tierra. Si está usando el mismo sensor PIR que yo, puede (con cuidado) quitar la cubierta y los pines están marcados debajo. Conectará cada sensor PIR a la luz LED correspondiente en el código cargado más tarde.

el servomotor ...

El servomotor está conectado al soporte donde se encuentra la cámara y gira la cámara para alinearla con el sensor PIR activo. Usando el pinout de su motor, conecte un pin a la alimentación, otro pin a la entrada digital 7 de Arduino y el último pin a tierra. Antes de encender el Arduino, asegúrese de conectar un capacitor de 100 µF entre la energía y la tierra del motor para ayudar a proteger la placa de las sobrecargas de energía que ocurren cuando el motor se mueve.

Una cosa a tener en cuenta acerca de los servomotores es que no todos tienen un rango de movimiento completo de 180º. Después de algunas pruebas, descubrí que el mío solo se movía unos 160º, así que modifique el código en consecuencia si su motor difiere. Sabrá que el motor está tratando de moverse demasiado cuando hace un chirrido en la última posición del sensor PIR.

CONSTRUCCIÓN:

Usé una vieja etiquetadora de CD Memorex para la carcasa del servo y la superficie para colocar una cámara. No pude tomar una foto del "antes", por lo que la imagen de abajo es la única que me queda en línea. La pieza trasera era un disco de plástico plano y resistente que finalmente se desprendió en una sola pieza (después de un poco de persuasión de mi destornillador), por lo que funcionó muy bien como un lugar para colocar mi cámara. También viene con 4 "pies" de goma extraíbles, lo que ayuda a darle a la cámara un poco más de agarre cuando el motor se mueve.

Llevé mis alicates a la parte negra en el centro para quitarlo ... y con eso quiero decir, romperlo en tantas partes como pueda antes de que se vaya :) A continuación, perforé un par de agujeros en la base con mi Dremel y luego adjuntó el servomotor con un par de tornillos.

Por último, utilicé otro tornillo para sujetar el servomotor a la pieza donde se colocará la cámara. Me encontré con un problema en el que el peso de la cámara hacía que la base se inclinara, así que lo resolví haciendo un cilindro de cartón lo suficientemente alto como para que quepa holgadamente entre el motor y la cámara. Ahora todavía se mueve libremente, pero tiene más soporte con su peso distribuido uniformemente.

Así es como se ve todo después de que se hayan instalado los sensores PIR y se hayan completado todos los circuitos. Notarás que utilicé varias tablas de pruebas para completar mi proyecto. La razón de esto es que hizo que fuera extremadamente fácil colocarlos dentro de la base, así como elegir cuál quitar mientras solucionaba problemas y expandía más tarde.

Para completar el proyecto, pinté con aerosol todas las partes visibles del cartón de color negro para que pareciera más transparente con el soporte negro de arriba.

Aquí está el producto terminado después de pintar ...


Código

  • El código principal
El código principal Arduino
Los sensores PIR se calibrarán durante 15 segundos después de encender el Arduino. Se recomienda que salga de la habitación durante este proceso para que los sensores obtengan una imagen real de la habitación sin ningún movimiento.
 / ******************** ******************************* La base de la cámara motorizada que sigue el movimiento ****** por Lindsay Fox *** *********************************************** / // Servomotor # incluye  Servo camServo; // nombra el servomotor que controla la cámara baseint currentPIRposition =0; // establecer el ángulo actual del servo // luces LED de estadoint LEDpin [] ={9,10,11,12,13}; // LED pin numberint currentLEDpin =9; // el pin LED actual; comience con el primero en la secuencia anterior // PIR sensoresint PIRpin [] ={2,3,4,5,6}; // Números de pin PIRint currentPIRpin =2; // el pin PIR actual; comience con el primero en la secuencia anteriorint PIRprevState [] ={1,1,1,1,1}; // el estado anterior del PIR (0 =LOW, 1 =HIGH) int PIRposition [] ={157,117.75,78.5,39.25,0}; // asignar ángulos para el servomotor (0-157 distribuidos equitativamente entre 5 sensores PIR) boolean PIRstatus; // Establecer el estado del sensor PIR como verdadero o falso ///// CONFIGURACIÓN ////////////////////////////////// ////// void setup () {Serial.begin (9600); camServo.attach (7); // asignar pin de servo para (int p =0; p <5; p ++) {// establecer todos los sensores PIR como INPUTS pinMode (PIRpin [p], INPUT); } // finaliza 'p' para for (int l =0; l <5; l ++) {// establece todos los LED como OUTPUTS pinMode (LEDpin [l], OUTPUT); } // fin 'l' para /////// CALIBRAR SENSORES PIR /////// Serial.print ("Calibrar sensores PIR"); for (int c =0; c <15; c ++) {// calibre los sensores PIR durante 15 segundos (cambie de 10 a 60 segundos dependiendo de sus sensores) Serial.print ("."); retraso (1000); // esperar 1 segundo} // finalizar la calibración para Serial.println ("Sensores PIR listos"); camServo.write (78,5); // mueve el servo a la posición central para comenzar} // finaliza la configuración ///// MAIN LOOP ///////////////////////////// /////// bucle vacío () {for (int PIR =0; PIR <5; PIR ++) {// iniciar este bucle para cada sensor PIR currentPIRpin =PIRpin [PIR]; // establece el pin PIR actual en el número actual en 'for' loop currentLEDpin =LEDpin [PIR]; // establece el pin LED actual en el número actual en el bucle 'for' PIRstatus =digitalRead (currentPIRpin); if (PIRstatus ==HIGH) {// si se detecta movimiento en el sensor PIR actual digitalWrite (currentLEDpin, HIGH); // enciende el LED correspondiente if (PIRprevState [PIR] ==0) {// si el estado anterior del sensor PIR es BAJO if (currentPIRposition! =currentPIRpin &&PIRprevState [PIR] ==0) {// si el PIR alto es diferente de la posición actual PIR luego se mueve a la nueva posición camServo.write (PIRposition [PIR]); Serial.print ("Ángulo actual:"); Serial.println (PIRposition [PIR]); retraso (50); currentPIRposition =currentPIRpin; // restablece la posición actual del PIR al pin activo [PIR] PIRprevState [PIR] =1; // establece el estado PIR anterior en ALTO} PIRprevState [PIR] =1; // establece el estado PIR anterior en HIGH si la posición actual es la misma que el pin PIR actual} // finaliza PIRprevState if} // finaliza PIRstatus if else {// digitalWrite (currentLEDpin, LOW); // el led visualiza el estado del pin de salida de los sensores PIRprevState [PIR] =0; // establece el estado PIR anterior en LOW} // end else} // end [PIR] para el ciclo} // finaliza el ciclo principal 

Esquemas


Proceso de manufactura

  1. Cámara
  2. Base mínima de RaspberryPI
  3. Sensor de movimiento con Raspberry Pi
  4. Sistema de alarma por detección de movimiento
  5. Botón de AWS IoT controlado por movimiento
  6. Frambuesa con cámara en pajarera
  7. Lector de libros BrickPi
  8. CÁMARA EN VIVO TRANSMISIÓN DE RASPBERRY PI - CONFIGURACIÓN DE MOVIMIENTO
  9. Tecnología de movimiento lineal
  10. Cámara plenóptica
  11. Una introducción a la válvula de bola motorizada