Índice:
- Etapa 1: O Código
- Etapa 2: os eletrônicos
- Etapa 3: Construção: Câmera e iluminador infravermelho
- Etapa 4: Construção: Tubulação de água
- Etapa 5: Construção: visando servo
- Etapa 6: Construção: Montagem das fontes de alimentação, ventilador, Raspberry Pi e Proto-board
- Etapa 7: Construção: o Proto Board
- Etapa 8: Construção: Câmera Raspberry Pi
- Etapa 9: Lista de peças
Vídeo: Water Blaster de rastreamento automático: 9 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
O cervo comedor de rosas me motivou a construir um jateador de água de rastreamento de alvo para ajudar a deter as criaturas vorazes … Este jateador de água usa detecção de movimento baseada em vídeo para apontar um servo e disparar rajadas curtas de água no alvo. Ele atira somente depois que um alvo adquirido fica parado por alguns segundos (o atraso pode ser ajustado no código). Eu não me importo se os cervos estão apenas passando, mas se eles pararem para um lanche, sploosh!
Aqui está um vídeo meu testando o jato de água:
O jato de água é uma caixa autônoma que pode ser conectada remotamente (via wi-fi / VNC) de qualquer computador em sua rede para monitorar o que está fazendo. Ele tira uma foto cada vez que é disparado para que você possa ver mais tarde o que foi detonado.
Eu usei um Raspberry Pi, câmera NoIR, iluminador IR, servo linear padrão e uma válvula de água para criar este dia / noite, jato de água de rastreamento de alvo. O código é escrito em Python e se baseia muito nas amostras de código de processamento de imagem cv2 de Adrian Rosebrock. Você pode ver o que ele escreveu em:
www.pyimagesearch.com/2015/06/01/home-surv…
Já que estou indo atrás de alvos relativamente grandes baseados no solo (cervos), meu problema é um tanto simplificado. Eu só preciso de mira horizontal para que eu possa usar apenas um servo. Esperar que o cervo fique parado me ajuda a eliminar muitos gatilhos falsos. Esta é minha tentativa de rev-0 e descobri algumas coisas que modificaria se construísse outro. Eu observei essas coisas na descrição detalhada que se segue.
Etapa 1: O Código
O jato de água usa o Raspberry Pi 3 para o processamento. Para capturar vídeo, uma câmera NoIR Raspberry Pi é usada junto com um iluminador IR para vídeo noturno. O pacote OpenCV / cv2 Python é usado para capturar e processar informações de imagem e calcular coordenadas de destino. A biblioteca pigpio é usada para controlar o gpio para uma operação servo estável. Usar o pacote RPi. GPIO regular resultou em um servo instável. NOTA: Ao usar a biblioteca pigpio, você precisa executar o daemon pigpio. Adicione isso ao arquivo de inicialização /etc/rc.local do seu Pi para a lib pigpio e a interface da câmera Raspberry Pi:
/etc/rc.local# Configure / dev / video0 para vincular ao Raspberry Pi integrado à câmera interfacemodprobe bcm2835-v4l2 # Inicie o daemon pigpio para a biblioteca de controle Raspberry Pi IOpigpiod
Consulte https://pypi.python.org/pypi/pigpi para obter mais detalhes.
O código-fonte é nomeado: water_blaster.py e está anexado abaixo.
Isenção de responsabilidade: eu sou novo na codificação Python, então não a trate como um grande modelo de estilo de codificação Python!
O algoritmo básico é o seguinte:
- Pegue um quadro de referência de vídeo inicial. Isso será usado para comparar e detectar movimento.
- Pegue outro quadro.
- Converta o quadro em escala de cinza, dimensione-o, desfoque-o.
- Calcule a diferença do quadro de referência
- Filtre as pequenas diferenças, obtenha as coordenadas da maior diferença.
- Defina um cronômetro. Se a coordenada do alvo não mudar por alguns segundos, tire uma foto do que estamos prestes a atirar e acione a válvula de água para um jato d'água. Varra o servo para frente e para trás alguns graus para uma explosão de “espingarda”.
- Se conseguirmos três gatilhos muito rapidamente, desative o disparo, pare um pouco e atualize o quadro de referência, pois podemos estar atirando em uma sombra ou luz de varanda que acabou de ser ligada …
- A cada poucos minutos, atualize o quadro de referência para levar em conta as mudanças de baixa frequência (o nascer / pôr do sol, o céu encoberto se aproximando, etc.)
Estou usando apenas um mecanismo de mira horizontal, mas muitas montagens de servo pan / tilt estão disponíveis no EBay e seria fácil adicionar outro servo para controlar a mira vertical se você quisesse um direcionamento mais preciso.
Eu configurei o Raspberry Pi para funcionar como um servidor VNC e, em seguida, conectei-o via VNC a partir do meu laptop para iniciar o programa e monitorar o vídeo e os logs. Faça cd no diretório onde você armazena water_blaster.py e execute-o digitando:
./python water_blaster.py
Isso abrirá uma janela de monitor de vídeo, iniciará um arquivo de log denominado "./log_[date]_[time] e criará um sub-dir denominado" trigger_pictures "onde os arquivos-j.webp
Aqui estão algumas notas sobre a configuração de VNC em seu Raspberry Pi:
A primeira vez que configurei o Raspberry Pi, usei um monitor / teclado / mouse externo para configurar as coisas. Lá eu habilitei o servidor VNC na configuração do RasPi (Logotipo do Raspberry / Preferências / Configuração do Raspberry Pi / Interfaces / opção Verificar VNC). Depois, ao inicializar, ele permite que você se conecte ao seu monitor: 0 via cliente VNC (com as mesmas credenciais do usuário padrão "pi").
No modo headless, o padrão é uma tela de resolução muito pequena (já que não detecta nenhuma tela), para forçá-la a uma resolução maior, você adiciona isso a /boot/config.txt e reinicie:
# Use se você tiver a tela # hdmi_ignore_edid = 0xa5000080hdmi_group = 2 # 1400x1050 c / 60Hz # hdmi_mode = 42 # 1356x768 c / 60Hzhdmi_mode = 39
Aqui estão mais algumas informações:
Etapa 2: os eletrônicos
Os requisitos eletrônicos do jato de água são mínimos usando o Raspberry Pi 3 gpio para acionar um servo, válvula de água e iluminador infravermelho por meio de buffers de transistor discretos (construídos em uma pequena placa proto). Uma câmera NoIR padrão se conecta diretamente ao Raspberry Pi.
O nome do esquema é: water_blaster_schematic.pdf e está anexado abaixo.
Usei uma fonte dedicada de 5 V / 2,5 A para o Raspberry Pi e uma fonte de 12 V / 1 A para acionar o iluminador IR e a válvula de água. A fonte de 12 V também aciona um regulador de 5 V para fornecer energia ao servo 5 V. Isso foi feito para manter a alimentação de controle do motor “ruidosa” isolada da alimentação do Raspberry Pi 5v. A fonte de 12v / 1A acabou por estar bem no seu limite (na verdade, um pouco acima depois que adicionei a ventoinha). O código desliga o iluminador IR antes de ligar o relé da válvula de água para manter o consumo de corrente dentro do intervalo … Seria melhor se você usasse uma fonte de 1,5A. Certifique-se de conectar os terminais de aterramento de todas as fontes de alimentação juntos.
O módulo da câmera é uma versão NoIR padrão que se conecta diretamente ao Raspberry Pi. É uma câmera Raspberry Pi com o filtro IR já removido, permitindo que seja usada com um iluminador IR para gravar vídeo noturno.
O servo usado é um servo linear de 5 V de tamanho padrão com 3-4 kg-cm de torque.
O iluminador IV era um anel de 48 led de baixo custo que encontrei no EBay por cerca de US $ 4. Não é muito forte e pode iluminar apenas cerca de 15 pés. Se você tiver um orçamento extra, conseguir um iluminador mais forte seria uma boa melhoria.
Eu adicionei um “switch de depuração” ao gpio23. O código verifica o estado do interruptor e, se pressionado, desativará o relé da válvula de água para teste de fogo seco. Pensei em fazer mais com essa opção, mas acabei não usando de fato. Eu o removeria e o código que o procura …
Etapa 3: Construção: Câmera e iluminador infravermelho
Usei uma caixa de munição de plástico do Harbor Freight como um invólucro. Eu precisava principalmente de algo resistente à água, pois muitos borrifos / escoamentos de água são inevitáveis. Existem muitos buracos / recortes, mas eles são cobertos por toldos, plástico transparente ou são perfurados sob beirais para despejar água. Olhando para trás, eu deveria ter usado uma caixa de metal com dissipadores de calor conectados internamente aos componentes de alta potência. Ao fazer isso, acho que poderia ter evitado adicionar o ventilador. A caixa de plástico era muito isolante e permitia que a temperatura interna subisse muito.
Uma pequena janela foi cortada no final para a câmera ver e o iluminador IR foi montado dentro de um velho estojo de lentes de plástico que eu tinha ao redor.
Etapa 4: Construção: Tubulação de água
A entrada de água é canalizada para uma válvula de água de 12 V que é conectada a um tubo de vinil de ¼”DI x 3/8” OD. Este, por sua vez, é conectado a um tubo farpado de ¼”para um conector de PVC de encaixe deslizante e colado a uma tampa de água de PVC de ¾” com um orifício de 1/16”para o fluxo de água. Eu queria manter o relé da válvula de água fora do clima para que ele fosse montado dentro da caixa. Há o perigo de vazamento, mas perfurei orifícios de drenagem na parte inferior da caixa e montei os componentes eletrônicos no alto para minimizar a chance de danos potenciais por água aos componentes eletrônicos, caso isso aconteça. Um plano menos agradável esteticamente, mas mais seguro, seria montar a válvula no exterior e passar os fios do relé de 12v no interior. O disco de plástico transparente sobre o servo era uma maneira conveniente de montar a extremidade da mangueira e evita que água pingue no servo. O ventilador foi uma reflexão tardia, pois a caixa estava esquentando demais. Construí um pequeno toldo para evitar que a água pingasse.
Etapa 5: Construção: visando servo
Um orifício é aberto na parte superior da caixa e o servo de mira é montado e selado com silicone para impedir a entrada de água.
Etapa 6: Construção: Montagem das fontes de alimentação, ventilador, Raspberry Pi e Proto-board
As duas fontes de alimentação (5v e 12v) são conectadas a um único cabo de alimentação que sai pela lateral da caixa. O Raspberry Pi e uma placa proto são montados na lateral da caixa perto do topo. Observe os orifícios de drenagem feitos na parte inferior e os orifícios de ventilação ao longo da borda superior. O ventilador é montado em frente ao Raspberry Pi. Não há um botão liga / desliga, pois não quero encorajar o desligamento do Raspberry Pi sem um comando formal "sudo shutdown now" (ou seja, não quero que a energia seja desligada com muita facilidade).
Etapa 7: Construção: o Proto Board
A protoplaca contém um regulador de 5 V, tampa do filtro, transistores de potência (que acionam o servo e a válvula de água) e uma chave de depuração.
Etapa 8: Construção: Câmera Raspberry Pi
A câmera Raspberry Pi se conecta diretamente ao Raspberry Pi por meio do cabo de fita e é montada na placa de plástico transparente que cobre o recorte de visualização na frente da caixa.
Etapa 9: Lista de peças
O projeto acabou custando cerca de US $ 120. A maior parte do custo do projeto é o Raspberry Pi, câmera, servo e fontes de alimentação. Encontrei a maioria das peças no eBay ou Amazon e as peças de encanamento na loja de ferragens local.
- Raspberry Pi 3 (Amazon) $ 38
- Câmera NoIR (EBay) $ 30
- Servo analógico 5v (torque de 4kg-cm) (EBay) $ 10
- Fonte de alimentação de parede 5v / 2,4A (EBay) $ 8
- Válvula de água 12v ½ "(EBay) $ 5
- Tubulação, acopladores de tubo (Osh) $ 5
- Caixa de munição de plástico (frete do porto) $ 5
- Fonte de alimentação de parede 12v / 1,5A (EBay) $ 5
- Iluminador infravermelho (EBay) $ 4
- Misc. Componentes (resistores, interruptores, diodo) $ 2
- Ventilador da CPU (EBay) $ 2
- Proto Board, Standoffs, Screws (EBay) $ 2
- (2) Transistores de potência (2n5296) (EBay) $ 1
- Regulador 5v (LM7805) (EBay) $ 1
- Plástico transparente de 3/32”(Caixote diverso de plásticos da torneira) $ 1
- Cabo de alimentação (Osh) $ 1
Lojas / sites onde comprei itens:
- Alice1101983 Site EBay:
- Site do 2bevoque EBay:
- Frete Portuário
- Orchard Supply Hardware
- Amazonas
- Tap Plastics
Recomendado:
Termostato Nest, rastreamento de ocupação: 12 etapas
Nest Thermostat, Occupancy Tracking: minha automação de resfriamento residencial usando meu Nest Thermostat tinha, até recentemente, sido executada pelo IFTTT usando Life360's " first to come at home " e " último a sair de casa " gatilhos. Isso foi ótimo porque eu pude adicionar membros da minha família ao meu Li
Sistema de rastreamento de movimento da cabeça para VR: 8 etapas
Head Motion Tracking System para VR: Meu nome é Sam KODO, neste tutorial, vou ensinar você passo a passo como usar os sensores Arduino IMU para construir um sistema de head tracking para VR. Neste projeto você vai precisar de: - Um LCD Display HDMI : https: //www.amazon.com/Elecrow-Capacitive-interfac…- Um
Sistema solar portátil de rastreamento automático: 9 etapas (com fotos)
Sistema de rastreamento automático solar portátil: Medomyself é participante do Programa de Associados da Amazon Services LLC, um programa de publicidade afiliado desenvolvido para fornecer um meio para os sites ganharem taxas de publicidade anunciando e vinculando a amazon.com por: Dave WeaverEsta construção é feita com
Rastreamento automático da fonte de luz: 5 etapas
Rastreamento automático de fonte de luz: nesta lição, usaremos um servo motor, um fotorresistor e um resistor pull-down para montar um sistema de fonte de luz de rastreamento automático
RASTREAMENTO AUTOMÁTICO DA FONTE DE LUZ COM ARDUINO UNO R3: 5 etapas
RASTREAMENTO AUTOMÁTICO DA FONTE DE LUZ COM ARDUINO UNO R3: Nesta lição, usaremos um servo motor, um fotorresistor e um resistor pull-down para montar um sistema de fonte de luz de rastreamento automático