![Cat-a-way - Sprinkler Cat-a-way com visão computacional: 6 etapas (com fotos) Cat-a-way - Sprinkler Cat-a-way com visão computacional: 6 etapas (com fotos)](https://i.howwhatproduce.com/images/001/image-171-56-j.webp)
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03
![Cat-a-way - Sprinkler Cat com visão computacional Cat-a-way - Sprinkler Cat com visão computacional](https://i.howwhatproduce.com/images/001/image-171-57-j.webp)
Problema - Gatos usando seu jardim como banheiro
Solução - Gaste muito tempo projetando um aspersor para gatos com o recurso de upload automático do YouTube
Este não é um passo a passo, mas uma visão geral da construção e alguns códigos
#BeforeYouCallPETA - Os gatos estão bem, é um aspersor de baixa pressão como a chuva, que eles podem correr antes mesmo de girar em torno deles. O projeto não é ensopar um gato, mas afastá-lo antes que sujem meu jardim com a versão para gatos do Barkers Eggs.
Etapa 1: itens principais necessários
![Principais itens necessários Principais itens necessários](https://i.howwhatproduce.com/images/001/image-171-58-j.webp)
Raspberry Pi zero e cartão SD
Câmera Raspberry Pi
Retransmissão
555 temporizador…. (ou um arduino e outro relé se seus 555 timers não chegarem)
Solenóide
Sprinkler
Algum tipo de caixa para os eletrônicos
A vontade de acertar um prego metafórico com uma marreta de 6 toneladas
Uma câmera com tão pouca resolução que você mal consegue ver a água, mas ainda consegue ver os gatos correndo para se proteger
Etapa 2: O Sistema
![Image Image](https://i.howwhatproduce.com/images/001/image-171-60-j.webp)
![](https://i.ytimg.com/vi/_YKvCFbMTOQ/hqdefault.jpg)
1, a câmera Pi detecta um objeto do tamanho de um gato se movendo por alguns quadros da câmera (mostrado na próxima etapa)
2, Pi dispara sprinkler
3, Cat corre para se proteger
4, vídeo carregado automaticamente para o youtube para o prazer de visualização
Etapa 3: tempo de codificação
![Juntar as peças Juntar as peças](https://i.howwhatproduce.com/images/001/image-171-61-j.webp)
Usando openCV usando subtração de quadro, você pode encontrar áreas do quadro que mudam com o tempo, usando algumas funções interessantes, você pode descobrir o quão grandes são essas mudanças e se persistem com o tempo, e o mais importante, descobrir se elas são do tamanho de um gato.
Existem alguns tutoriais sobre subtração de quadros que entram em grandes detalhes se você fizer uma pesquisa rápida no Google.
Visão geral de como o código funciona
1, a câmera continua tirando fotos e comparando-as com as últimas
2, se uma forma do tamanho de um gato for detectada, será notado
3, se a mudança no tamanho do gato persistir por cerca de 4 quadros, o pi usa seu GPIO para ligar o relé para iniciar o Arduino
4, o arduino envia um sinal para alimentar o segundo relé por 5 segundos, que ativa o solenóide
5, O solenóide quando alimentado permite água para o sprinkler
6, enquanto o aspersor está ativo, a câmera para de detectar e grava o vídeo
7, o vídeo é enviado ao Youtube
8, Imagens instantâneas enviadas para a caixa de depósito para o sistema de ajuste fino
Nota - Por que acabei usando 2 relés e um arduino para ligar um solenóide por 5 segundos …
1, O pi não pode iniciar e parar o solenóide durante a gravação do vídeo, pois os scripts python pausam até que o vídeo seja concluído, daí a necessidade do arduino (ou temporizador 555) para permitir que o solenóide abra e feche independentemente do script enquanto o o vídeo ainda está sendo gravado.
2, O primeiro relé e o arduino podem ser substituídos por um temporizador 555, mas isso não veio no correio a tempo para este projeto, o 555 economizaria muito tempo, dinheiro e etapas.
3, O pi não pode acionar o solenóide diretamente porque o Pi GPIO funciona em 3,3 V e 51 mA máx., E o solenóide quer 5 V e muito mais do que 51 mA para acionar.
4, cada quadro pode ser cortado para remover a detecção de movimento em áreas indesejadas, como um jardim de vizinhos. Deixar de fazer isso fará com que o referido vizinho olhe confusamente para o seu jardim porque o irrigador dispara toda vez que ele quer entrar em seu galpão.
5, provavelmente perdi algo óbvio e perdi meu tempo configurando-o assim.
Código abaixo
import cv2import numpy as np import argparse #cat import time import RPi. GPIO as GPIO import os import dropbox from picamera.array import PiRGBArray from picamera import PiCamera # ------------------ ------------------------------ Carregar para o youtube ----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_% H-% M-% S") cdate = time.strftime ("_% d-% m-% Y") vidname = ctime + cdate #Trigger relay GPIO.output (11, True) time.sleep (.5) GPIO.output (11, False) print ("Taking Video") tente: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Upload to youtube print ("Uploading to YouTube") os. system ('sudo youtube-upload --title = "Gato molhou {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Remove arquivo de vídeo quando terminar os.remove ('vid {0}.h264'.format (vidname)) print ("Vídeo enviado e removido de Pi") exceto: pass # -------------------- ---------------------------- Instantâneos para caixa de depósito ------------------- -------------------- def St illsToDropbox (): print ("Upload Still To Dropbox Function") access_token = 'Ah ah ah, você não disse a palavra mágica … Ah ah ah, você não disse a palavra mágica' ctime = time.strftime (" % H:% M:% S ") cdate = time.strftime ("% d-% m-% Y ") try: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (filename) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (filename, image) image.close () os.remove ("ToDropbox-j.webp
#HowToTriggerRealProgrammersWithBadCode
Etapa 4: juntando tudo
![Juntar as peças Juntar as peças](https://i.howwhatproduce.com/images/001/image-171-62-j.webp)
![Juntar as peças Juntar as peças](https://i.howwhatproduce.com/images/001/image-171-63-j.webp)
![Juntar as peças Juntar as peças](https://i.howwhatproduce.com/images/001/image-171-64-j.webp)
Enfie a parte elétrica em uma caixa à prova d'água, aparafuse as coisas nas paredes e use muita fita adesiva e cola quente
Etapa 5: Resultados
![Image Image](https://i.howwhatproduce.com/images/001/image-171-66-j.webp)
![](https://i.ytimg.com/vi/wMR8D1AWQKc/hqdefault.jpg)
![Resultados Resultados](https://i.howwhatproduce.com/images/001/image-171-67-j.webp)
Quando funciona, funciona
Etapa 6: falsos positivos
![Falso-positivo Falso-positivo](https://i.howwhatproduce.com/images/001/image-171-68-j.webp)
Quando isso não acontece, borrifa sombras de gatos, sua esposa e sua filha.
Dica de profissional - Coloque um interruptor perto da porta que interrompa o programa de detecção de movimento….. depois esqueça de usá-lo e fique encharcado ao colocar as lixeiras para fora.
Espero ter feito qualquer especialista em programação, eletrônica e DIY se encolher com todos os erros que provavelmente cometi, e especialmente espero que você tenha gostado de todos os meus erros de ortografia.
Recomendado:
Hackeando o Hexbug Spider XL para adicionar visão computacional usando um smartphone Android: 9 etapas (com imagens)
![Hackeando o Hexbug Spider XL para adicionar visão computacional usando um smartphone Android: 9 etapas (com imagens) Hackeando o Hexbug Spider XL para adicionar visão computacional usando um smartphone Android: 9 etapas (com imagens)](https://i.howwhatproduce.com/images/001/image-2941-4-j.webp)
Hackeando o Hexbug Spider XL para adicionar visão computacional usando um smartphone Android: Eu sou um grande fã do Hexbug & trade original; Spider. Eu possuí mais de uma dúzia e hackeei todos eles. Sempre que um de meus filhos vai para uma casa de amigos ’ festa de aniversário, o amigo ganha um Hexbug ™ aranha como um presente. Eu hackeei o ou
Reconhecimento de estrelas usando visão computacional (OpenCV): 11 etapas (com imagens)
![Reconhecimento de estrelas usando visão computacional (OpenCV): 11 etapas (com imagens) Reconhecimento de estrelas usando visão computacional (OpenCV): 11 etapas (com imagens)](https://i.howwhatproduce.com/images/007/image-18321-j.webp)
Reconhecimento de estrelas usando visão computacional (OpenCV): Este instrutível irá descrever como criar um programa de visão computacional para identificar automaticamente padrões de estrelas em uma imagem. O método usa a biblioteca OpenCV (Open-Source Computer Vision) para criar um conjunto de cascatas HAAR treinadas que podem ser
Varinha de Harry Potter de verdade usando visão computacional: 8 etapas (com imagens)
![Varinha de Harry Potter de verdade usando visão computacional: 8 etapas (com imagens) Varinha de Harry Potter de verdade usando visão computacional: 8 etapas (com imagens)](https://i.howwhatproduce.com/images/003/image-7299-j.webp)
Varinha de Harry Potter Real Usando Visão de Computador: " Qualquer Tecnologia Suficientemente Avançada é Indistinguível de Magia " - Arthur C. Clarke Alguns meses atrás, meu irmão visitou o Japão e teve uma experiência real com bruxos no Mundo Mágico de Harry Potter no Universal Studios
Uso de sonar, Lidar e visão computacional em microcontroladores para auxiliar os deficientes visuais: 16 etapas
![Uso de sonar, Lidar e visão computacional em microcontroladores para auxiliar os deficientes visuais: 16 etapas Uso de sonar, Lidar e visão computacional em microcontroladores para auxiliar os deficientes visuais: 16 etapas](https://i.howwhatproduce.com/images/004/image-11966-3-j.webp)
Usando Sonar, Lidar e Visão Computacional em Microcontroladores para Auxiliar os Deficientes Visuais: Eu quero criar uma "bengala" inteligente que pode ajudar as pessoas com deficiência visual muito mais do que as soluções existentes. A bengala será capaz de notificar o usuário sobre objetos na frente ou nas laterais, fazendo um ruído no headphon do tipo som surround
Cadeira de rodas controlada por visão computacional com manequim: 6 etapas (com fotos)
![Cadeira de rodas controlada por visão computacional com manequim: 6 etapas (com fotos) Cadeira de rodas controlada por visão computacional com manequim: 6 etapas (com fotos)](https://i.howwhatproduce.com/images/004/image-9042-47-j.webp)
Cadeira de rodas controlada por visão computacional com manequim: Projeto de AJ Sapala, Fanyun Peng, Kuldeep Gohel, Ray LC.Instrutível por AJ Sapala, Fanyun Peng, Ray LC. Criamos uma cadeira de rodas com rodas controladas por uma placa Arduino, que por sua vez é controlada por um raspberry pi executando openCV via Processing