Tabla de contenido:

Lanzador de agua con seguimiento automático: 9 pasos
Lanzador de agua con seguimiento automático: 9 pasos

Video: Lanzador de agua con seguimiento automático: 9 pasos

Video: Lanzador de agua con seguimiento automático: 9 pasos
Video: 17 RECOMENDACIONES PARA VOLAR DRONES SOBRE EL AGUA-SEGUIMIENTO - PRUEBA REAL en ESPAÑOL 2024, Mes de julio
Anonim
Lanzador de agua de seguimiento automático
Lanzador de agua de seguimiento automático

Los ciervos devoradores de rosas me motivaron a construir un desintegrador de agua de seguimiento de objetivos para ayudar a disuadir a las criaturas voraces … Este desintegrador de agua utiliza detección de movimiento basada en video para apuntar un servo y disparar ráfagas cortas de agua al objetivo. Dispara solo después de que un objetivo adquirido está parado durante unos segundos (el retraso se puede ajustar en el código). No me importa si los ciervos están simplemente caminando, pero si se detienen para tomar un refrigerio, ¡sploosh!

Aquí hay un video de mí probando el lanzador de agua:

El lanzador de agua es una caja independiente que se puede conectar de forma remota (a través de wi-fi / VNC) desde cualquier computadora en su red para monitorear lo que está haciendo. Toma una foto cada vez que se activa para que luego puedas ver lo que se estaba disparando.

Usé una Raspberry Pi, una cámara NoIR, un iluminador de infrarrojos, un servo lineal estándar y una válvula de agua para crear este desintegrador de agua de seguimiento de objetivos de día / noche. El código está escrito en Python y se basa en gran medida en las muestras de código de procesamiento de imágenes cv2 de Adrian Rosebrock. Puedes ver su escrito en:

www.pyimagesearch.com/2015/06/01/home-surv…

Dado que voy tras objetivos terrestres relativamente grandes (ciervos), mi problema se ha simplificado un poco. Solo necesito apuntar horizontalmente para poder usar solo un servo. Esperar a que el ciervo se detenga me ayuda a eliminar muchos falsos disparadores. Este es mi intento de rev-0 y encontré algunas cosas que modificaría si construyera otra. He notado estas cosas en el informe detallado que sigue.

Paso 1: el código

El chorro de agua utiliza Raspberry Pi 3 para el procesamiento. Para capturar video, se usa una cámara NoIR Raspberry Pi junto con un iluminador IR para video nocturno. El paquete Python OpenCV / cv2 se utiliza para capturar y procesar información de la imagen y calcular las coordenadas de destino. La biblioteca pigpio se usa para controlar el gpio para un funcionamiento estable del servo. El uso del paquete normal RPi. GPIO resultó en un servo inestable. NOTA: Cuando utilice la biblioteca pigpio, debe ejecutar el demonio pigpio. Agregue esto al archivo de inicio /etc/rc.local de su Pi para pigpio lib y la interfaz de la cámara Raspberry Pi:

/etc/rc.local# Configure / dev / video0 para vincularlo a la interfaz de cámara incorporada de Raspberry Pi modprobe bcm2835-v4l2 # Inicie el demonio pigpio para la biblioteca de control de E / S de Raspberry Pipigpiod

Consulte https://pypi.python.org/pypi/pigpi para obtener más detalles.

El código fuente se llama: water_blaster.py y se adjunta a continuación.

Descargo de responsabilidad: Soy nuevo en la codificación de Python, ¡así que no lo trate como un gran modelo de estilo de codificación de Python!

El algoritmo básico es el siguiente:

  • Toma un marco de referencia de video inicial. Esto se utilizará para comparar y detectar movimiento.
  • Coge otro marco.
  • Convierta el marco a escala de grises, redúzcalo, difumínelo.
  • Calcule la diferencia con el marco de referencia
  • Filtra las pequeñas diferencias y obtén las coordenadas de mayor diferencia.
  • Pon un temporizador. Si la coordenada del objetivo no cambia durante unos segundos, entonces tome una foto de lo que estamos a punto de disparar y active la válvula de agua para una ráfaga de agua. Mueva el servo hacia adelante y hacia atrás unos pocos grados para un disparo de “escopeta”.
  • Si obtenemos tres disparadores demasiado rápido, deshabilitemos el disparo, haga una pausa un poco, luego actualice el marco de referencia, ya que es posible que estemos disparando a una sombra o luz del porche que se acaba de encender …
  • Cada pocos minutos actualice el marco de referencia para tener en cuenta los cambios de baja frecuencia (salida / puesta del sol, entrada nublada, etc.)

Solo estoy usando un mecanismo de apuntamiento horizontal, pero muchos montajes de servo de giro / inclinación están disponibles en EBay y sería fácil agregar otro servo para controlar el apuntamiento vertical si quisieras una orientación más precisa.

Configuré la Raspberry Pi para que se ejecutara como un servidor VNC, luego me conecté a ella a través de VNC desde mi computadora portátil para iniciar el programa y monitorear el video y los registros. cd en el directorio donde almacena water_blaster.py y ejecútelo escribiendo:

./python water_blaster.py

Abrirá una ventana de monitor de video, iniciará un archivo de registro llamado "./log_[date]_[time] y creará un subdirectorio llamado" trigger_pictures "donde se almacenan los archivos-j.webp

Aquí hay algunas notas sobre la configuración de VNC en su Raspberry Pi:

La primera vez que configuré la Raspberry Pi, usé un monitor / teclado / mouse externo para configurar las cosas. Allí habilité el servidor VNC en la configuración de RasPi (Logotipo de Raspberry / Preferencias / Configuración de Raspberry Pi / Interfaces / Verificar la opción VNC). Luego, cuando se inicia, le permite conectarse a su pantalla: 0 a través del cliente VNC (con las mismas credenciales que el usuario predeterminado "pi").

En el modo sin cabeza, el valor predeterminado es una pantalla de resolución muy pequeña (ya que no detecta ninguna pantalla), para forzarla a una resolución mayor, agrega esto a /boot/config.txt y reinicia:

# Use si tiene pantalla # hdmi_ignore_edid = 0xa5000080hdmi_group = 2 # 1400x1050 w / 60Hz # hdmi_mode = 42 # 1356x768 w / 60Hzhdmi_mode = 39

Aquí hay más información:

Paso 2: la electrónica

Los requisitos de la electrónica del chorro de agua son mínimos con el uso de la Raspberry Pi 3 gpio para controlar un servo, una válvula de agua y un iluminador de infrarrojos a través de búferes de transistores discretos (integrados en una pequeña placa proto). Una cámara NoIR estándar se conecta directamente a la Raspberry Pi.

El nombre del esquema es: water_blaster_schematic.pdf y se adjunta a continuación.

Usé un suministro dedicado de 5v / 2.5A para la Raspberry Pi y un suministro de 12v / 1A para activar el iluminador IR y la válvula de agua. La fuente de 12v también impulsa un regulador de 5v para suministrar energía al servo de 5v. Esto se hizo para mantener la potencia de control del motor "ruidosa" aislada del suministro de 5v de la Raspberry Pi. El suministro de 12v / 1A resultó estar justo en su límite (en realidad, un poco más una vez que agregué el ventilador). El código apaga el iluminador de infrarrojos antes de encender el relé de la válvula de agua para mantener el consumo de corriente dentro del rango … Sería mejor si usara un suministro de 1.5A. Asegúrese de conectar los terminales de tierra de todas las fuentes de alimentación juntos.

El módulo de la cámara es una versión estándar de NoIR que se conecta directamente a la Raspberry Pi. Es una cámara Raspberry Pi con el filtro de infrarrojos ya retirado, lo que permite su uso con un iluminador de infrarrojos para tomar videos nocturnos.

El servo utilizado es un servo lineal de 5v de tamaño estándar con 3-4 kg-cm de torque.

El iluminador de infrarrojos era un anillo de 48 LED de bajo costo que encontré en EBay por alrededor de $ 4. No es muy fuerte y solo puede iluminar hasta unos 15 pies. Si tiene un presupuesto adicional, conseguir un iluminador más potente sería una buena mejora.

Agregué un "interruptor de depuración" a gpio23. El código verifica el estado del interruptor y, si se presiona, deshabilitará el relé de la válvula de agua para la prueba de fuego seco. Pensé que haría más con ese interruptor, pero no terminé usándolo en absoluto. Lo eliminaría y el código que lo busca …

Paso 3: Construcción: cámara e iluminador de infrarrojos

Construcción: cámara e iluminador de infrarrojos
Construcción: cámara e iluminador de infrarrojos

Usé una caja de munición de plástico de Harbor Freight como recinto. Principalmente, necesitaba algo resistente al agua, ya que es inevitable que haya mucha agua rociada o que se escurra. Hay muchos agujeros / recortes, pero están cubiertos por toldos, plástico transparente o perforados debajo de voladizos para arrojar agua. A la vista posterior, debería haber usado una caja de metal con disipadores de calor conectados internamente a los componentes de alta potencia. Al hacer eso, creo que podría haber evitado agregar el ventilador. La caja de plástico era demasiado aislante y permitió que la temperatura interior aumentara demasiado.

Se cortó una pequeña ventana en el extremo para que la cámara pudiera ver y el iluminador de infrarrojos se montó dentro de una vieja caja de plástico para lentes que tenía por ahí.

Paso 4: Construcción: Tubería de agua

Construcción: Tubería de agua
Construcción: Tubería de agua
Construcción: Tubería de agua
Construcción: Tubería de agua

La entrada de agua se conecta a una válvula de agua de 12 V que está conectada a un tubo de vinilo de ¼”ID x 3/8” OD. Eso, a su vez, se conecta a un tubo de púas de ¼”a un conector de PVC de ajuste deslizante de ¾ y se pega a un tapón de agua de PVC de ¾” con un orificio de 1/16”perforado para la corriente de agua. Quería mantener el relé de la válvula de agua fuera del clima para que esté montado dentro de la caja. Existe el peligro de que tenga una fuga, pero he perforado orificios de drenaje en la parte inferior de la caja y he montado los componentes electrónicos en lo alto para minimizar la posibilidad de daños potenciales por agua en los componentes electrónicos si eso sucede. Un plan menos agradable desde el punto de vista estético, pero más seguro, sería montar la válvula en el exterior y colocar los cables del relé de 12v en el interior. El disco de plástico transparente sobre el servo fue una forma conveniente de montar el extremo de la manguera y evita que el agua gotee sobre el servo. El ventilador fue una ocurrencia tardía ya que la caja se estaba calentando demasiado. Construí un pequeño toldo sobre él para evitar que el agua goteara.

Paso 5: Construcción: apuntar al servo

Construcción: Apuntar Servo
Construcción: Apuntar Servo

Se corta un orificio en la parte superior de la caja y el servo de puntería se monta y se sella con silicona para evitar que entre agua.

Paso 6: Construcción: Montaje de las fuentes de alimentación, el ventilador, la Raspberry Pi y la placa proto

Construcción: Montaje de las fuentes de alimentación, el ventilador, la Raspberry Pi y la placa proto
Construcción: Montaje de las fuentes de alimentación, el ventilador, la Raspberry Pi y la placa proto

Las dos fuentes de alimentación (5v y 12v) están conectadas a un solo cable de alimentación que sale por el lateral de la caja. La Raspberry Pi y una placa proto están montadas en el costado de la caja cerca de la parte superior. Observe los orificios de drenaje perforados en la parte inferior y los orificios de ventilación de aire perforados a lo largo del borde superior. El ventilador está montado frente a la Raspberry Pi. No hay un interruptor de encendido / apagado, ya que no quiero alentar a apagar la Raspberry Pi sin un comando formal "sudo apagar ahora" (es decir, no quiero que se apague la energía con demasiada facilidad).

Paso 7: Construcción: el Proto Board

Construcción: el Proto Board
Construcción: el Proto Board

La placa proto contiene un regulador de 5v, tapa de filtro, transistores de potencia (que impulsan el servo y la válvula de agua) y un interruptor de depuración.

Paso 8: Construcción: Cámara Raspberry Pi

Construcción: Cámara Raspberry Pi
Construcción: Cámara Raspberry Pi

La cámara Raspberry Pi se conecta directamente a la Raspberry Pi a través del cable plano y está montada en la placa de plástico transparente que cubre el recorte de visualización en la parte frontal de la caja.

Paso 9: Lista de piezas

El proyecto terminó costando alrededor de $ 120. La mayor parte del costo del proyecto es la Raspberry Pi, la cámara, el servo y las fuentes de alimentación. Encontré la mayoría de las piezas en EBay o Amazon y las piezas de plomería en la ferretería local.

  • Raspberry Pi 3 (Amazon) $ 38
  • Cámara NoIR (EBay) $ 30
  • Servo analógico de 5v (torque de 4 kg-cm) (EBay) $ 10
  • Fuente de alimentación de pared de 5v / 2.4A (EBay) $ 8
  • Válvula de agua de 12v ½”(EBay) $ 5
  • Tubería, acopladores de tubería (Osh) $ 5
  • Caja de munición de plástico (flete portuario) $ 5
  • Fuente de alimentación de pared de 12v / 1.5A (EBay) $ 5
  • Iluminador de infrarrojos (EBay) $ 4
  • Misc. Componentes (resistencias, interruptores, diodos) $ 2
  • Ventilador de CPU (EBay) $ 2
  • Proto Board, separadores, tornillos (EBay) $ 2
  • (2) Transistores de potencia (2n5296) (EBay) $ 1
  • Regulador de 5v (LM7805) (EBay) $ 1
  • Plástico transparente de 3/32”(contenedor misc. De plásticos de grifo) $ 1
  • Cable de alimentación (Osh) $ 1

Tiendas / sitios donde compré artículos:

  • Alice1101983 Sitio de EBay:
  • Sitio de 2bevoque EBay:
  • Carga portuaria
  • Hardware de suministro de huerta
  • Amazonas
  • Toque Plásticos

Recomendado: