Innholdsfortegnelse:
- Trinn 1: Hovedelementer påkrevd
- Trinn 2: Systemet
- Trinn 3: Kodingstid
- Trinn 4: Sette det sammen
- Trinn 5: Resultater
- Trinn 6: Falske positive
Video: Cat-a-way-Computer Vision Cat Sprinkler: 6 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Problem - Katter som bruker hagen din som toalett
Løsning - Bruk for mye tid på å konstruere en kattesprinkler med automatisk opplastingsfunksjon for YouTube
Dette er ikke et trinn for trinn, men en oversikt over konstruksjon og litt kode
#BeforeYouCallPETA - Kattene har det bra, det er et lavtrykkssprinkler akkurat som regn, at de kan løpe ut før det svinger rundt dem. Prosjektet er ikke å suge en katt, men å vise dem bort før de forsøpler hagen min med katteversjonen av Barkers Eggs.
Trinn 1: Hovedelementer påkrevd
Raspberry Pi zero & SD -kort
Raspberry Pi kamera
Stafett
555 timer…. (eller en arduino og et annet relé hvis 555 timerne ikke kommer)
Solenoid
Sprinkler
En slags bolig for elektronikken
En vilje til å slå en metaforisk spiker med en 6 tonns slegge
Et kamera med så liten oppløsning at du knapt kan se vannet, men kan fortsatt se kattene løpe etter dekning
Trinn 2: Systemet
1, Pi -kamera oppdager et objekt i kattstørrelse som beveger seg for noen kamerarammer (forklart i neste trinn)
2, Pi setter i gang sprinkler
3, Cat løper etter dekning
4, video lastes automatisk opp til youtube for å se glede
Trinn 3: Kodingstid
Ved å bruke openCV ved hjelp av rammesubtraksjon kan du finne områder i rammen som endres over tid, ved å bruke noen fiffige funksjoner kan du finne ut hvor store disse endringene er og om de vedvarer over tid, og viktigst av alt finne ut om de er kattestørrede.
Det er ganske mange opplæringsprogrammer om rammesubtraksjon som går i detalj hvis du gjør et raskt google -søk.
Oversikt over hvordan koden fungerer
1, kameraet fortsetter å ta bilder og sammenligne dem med det siste
2, Hvis det oppdages en kattstørrelsesform, blir det notert
3, Hvis endringen i kattstørrelsen vedvarer over rundt 4 bilder, bruker pi -en sin GPIO til å drive reléet for å starte arduino
4, Arduino sender et signal for å drive det andre reléet i 5 sekunder som aktiverer solenoiden
5, solenoiden når den drives, tillater vann til sprinkleren
6, mens sprinkleren er aktiv, slutter kameraet å oppdage og ta opp video
7, blir videoen lastet opp til Youtube
8, Stills lastet opp til dropbox for finjusteringssystem
Merk - Hvorfor jeg endte med å bruke 2 reléer og en arduino for å slå på en solenoid i 5 sekunder…..
1, pi kan ikke starte og stoppe solenoiden mens du spiller inn videoen mens python -scrips pauser til videoen er ferdig, og derfor er det nødvendig med arduino (eller 555 timer) for å la solenoiden åpne og lukke uavhengig av skriptet mens videoen tar fortsatt opp.
2, Det første reléet og arduino kan erstattes med en 555 timer, men det kom ikke i posten i tide for dette prosjektet, ville 555 spare mye tid penger og trinn.
3, Pi kan ikke utløse solenoiden direkte ettersom Pi GPIO fungerer på 3,3v og 51mA maks, og solenoiden vil at 5V og mye mer enn 51mA skal utløses.
4, Hver ramme kan beskjæres for å fjerne bevegelsesdeteksjon i uønskede områder, for eksempel en nabohage. Unnlatelse av å gjøre dette vil resultere i at naboen gir forvirret blikk inn i hagen din fordi sprinkleren går av hver gang han vil gå inn i skuret hans.
5, jeg savnet sannsynligvis noe åpenbart og kastet bort tiden min på å sette det opp slik.
Kode nedenfor
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 #------------------ ------------------------------ Last opp til youtube ----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_%H-%M-%S") cdate = time.strftime ("_%d-%m-%Y") vidname = ctime + cdate #Trigger-relé GPIO.output (11, True) time.sleep (.5) GPIO.output (11, False) print ("Ta video") Prøv: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Last opp til youtube -utskrift ("Laster opp til YouTube") os. system ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Remove video file when done os.remove ('vid {0}.h264'.format (vidnavn)) print ("Video lastet opp og fjernet fra Pi") unntatt: pass #-------------------- ---------------------------- Stillbilder til dropbox ------------------- -------------------- def St. illsToDropbox (): print ("Last opp still til Dropbox -funksjon") access_token = 'Ah ah ah, du sa ikke det magiske ordet … Ah ah ah, du sa ikke det magiske ordet' ctime = time.strftime (" %H:%M:%S ") cdate = time.strftime ("%d-%m-%Y ") prøv: filnavn =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (filnavn) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (filnavn, image) image.close () os.remove ("ToDropbox-j.webp
#HowToTriggerRealProgrammersWithBadCode
Trinn 4: Sette det sammen
Kram det elektriske i et vanntett hus, skru ting i vegger og bruk masse tape og varmt lim
Trinn 5: Resultater
Når det fungerer fungerer det
Trinn 6: Falske positive
Når det ikke gjør det, spruter det katteskygger, kona og datteren din.
Tips - Sett en bryter ved døren som stopper programmet for bevegelsesdeteksjon …. så glem å bruke det og bli gjennomvåt når du setter søppelbøttene ut.
Håper jeg har laget noen eksperter innen programmering, elektronikk og DIY med alle feilene jeg sannsynligvis har gjort, og spesielt håper du likte alle mine stavefeil.
Anbefalt:
Persistence of Vision LED Staff: 11 trinn (med bilder)
Persistence of Vision LED Staff: Det er velkjent at selv etter at et lys er slukket, holder menneskelig øye " se " det for en brøkdel av sekund. Dette er kjent som Persistence of Vision, eller POV, og det lar en " male " bilder ved å flytte en stripe raskt
Night Vision -briller for Google Cardboard: 10 trinn (med bilder)
Night Vision Goggles for Google Cardboard: Ansvarsfraskrivelse: Bruken av denne enheten er kun ment for underholdning, utdanning og vitenskapelig bruk; ikke for spionasje og/eller overvåking. &Quot; spion -gadgeten " funksjoner ble lagt til i appen bare for moro skyld og ville ikke tjene noe praktisk formål for
Sad Cat Fixer, Catch -Me Cat Toy - Skoleprosjekt: 3 trinn
Sad Cat Fixer, Catch-Me Cat Toy-Skoleprosjekt: Her er produktet vårt, Det er en interaktiv lekemus: Catch-Me Cat Toy. Her er en liste over problemer mange katter i samfunnet vårt står overfor: Katter blir i disse dager inaktive og deprimerte uten å gjøre noe De fleste eiere er opptatt med jobb eller skole og barnet ditt
Bygg en eksternt aktivert sprinkler ved hjelp av PiFace og Ubidots: 13 trinn
Bygg en eksternt aktivert sprinkler ved hjelp av PiFace og Ubidots: Dette er et kult eksempel som lærer deg hvordan du bruker en Raspberry Pi, en PiFace og Ubidots til å vanne hagen din langt unna. Du kan fjernstyre en elektroventil for å vanne plantene dine hvor som helst, bare ved å bruke telefonen
The Making Of: Een Mini Sprinkler Meting (gruppe 12): 8 trinn
The Making Of: Een Mini Sprinkler Meting (groep 12): Groep 12Noortje Romeijn 4651464Milton Fox 4652622Deze Instructable er skrevet av Milton Fox (student Maritieme Techniek, TU Delft) og Noortje Romeijn (studenter Civiele Techniek, TU Delft). Allebei volgen we de civiele minor 'De delta denker, wa