Tabla de contenido:
- Paso 1: el código
- Paso 2: la electrónica
- Paso 3: Construcción: cámara e iluminador de infrarrojos
- Paso 4: Construcción: Tubería de agua
- Paso 5: Construcción: apuntar al servo
- Paso 6: Construcción: Montaje de las fuentes de alimentación, el ventilador, la Raspberry Pi y la placa proto
- Paso 7: Construcción: el Proto Board
- Paso 8: Construcción: Cámara Raspberry Pi
- Paso 9: Lista de piezas
Video: Lanzador de agua con seguimiento automático: 9 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
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
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
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
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
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
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
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:
Sistema de seguimiento automático solar portátil: 9 pasos (con imágenes)
Sistema de seguimiento automático solar portátil: Medomyself participa en el Programa de Asociados de Amazon Services LLC, un programa de publicidad afiliado diseñado para proporcionar un medio para que los sitios ganen tarifas de publicidad mediante publicidad y enlaces a amazon.com por: Dave Weaver Esta compilación está hecha con
Kits de coche de seguimiento de robot inteligente de bricolaje Seguimiento de coche fotosensible: 7 pasos
DIY Smart Robot Tracking Car Kits Tracking Car Photosensitive: Design by SINONING ROBOTPuedes comprar desde el robot de seguimiento carTheoryLM393 chip compara los dos fotorresistores, cuando hay un fotorresistor LED en BLANCO, el lado del motor se detendrá inmediatamente, el otro lado del motor girar, de modo que
Ahorre agua y dinero con el monitor de agua de la ducha: 15 pasos (con imágenes)
Ahorre agua y dinero con el monitor de agua de la ducha: ¿Qué utiliza más agua, un baño o una ducha? Hace poco estaba pensando en esta pregunta y me di cuenta de que en realidad no sé cuánta agua se usa cuando me ducho. Sé que cuando estoy en la ducha, a veces mi mente divaga, pensando en algo genial
SEGUIMIENTO AUTOMÁTICO DE FUENTE DE LUZ CON ARDUINO UNO R3: 5 Pasos
SEGUIMIENTO AUTOMÁTICO DE LA FUENTE DE LUZ CON ARDUINO UNO R3: En esta lección, usaremos un servomotor, una fotorresistencia y una resistencia desplegable para ensamblar un sistema de fuente de luz de seguimiento automático
Lanzador de pelotas automático para perros: 6 pasos
Lanzador de pelotas automático para perros: Ambos tenemos perros y, como todo el mundo sabe, los perros podrían pasar todo el día jugando a la pelota. Por eso, pensamos en una forma de construir un lanzador de bolas automático