Indholdsfortegnelse:
- Trin 1: Hovedelementer påkrævet
- Trin 2: Systemet
- Trin 3: Kodningstid
- Trin 4: Sæt det sammen
- Trin 5: Resultater
- Trin 6: Falske positive
Video: Cat-a-way-Computer Vision Cat Sprinkler: 6 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Problem - Katte, der bruger din have som toilet
Løsning - Brug for meget tid på at konstruere en kattesprinkler med automatisk youtube upload -funktion
Dette er ikke et trin for trin, men en oversigt over konstruktion og noget kode
#BeforeYouCallPETA - Kattene har det fint, det er et lavtrykssprinkler ligesom regn, at de kan løbe ud, før det overhovedet svinger rundt til dem. Projektet er ikke at lægge en kat i blød, men at vise dem væk, før de kaster min have med katteversionen af Barkers Eggs.
Trin 1: Hovedelementer påkrævet
Raspberry Pi zero & SD -kort
Hindbær Pi kamera
Relæ
555 timer…. (eller en arduino og et andet relæ, hvis dine 555 timere ikke ankommer)
Solenoid
Sprinkler
En slags hus til elektronikken
En vilje til at slå et metaforisk søm med en 6 tons slædehammer
Et kamera med så lidt opløsning, at du næsten ikke kan se vandet, men stadig kan se kattene løbe efter dækning
Trin 2: Systemet
1, Pi -kamera registrerer en katstørrelse, der bevæger sig i et par kamerarammer (forklaret i næste trin)
2, Pi sætter sprinkleren i gang
3, Cat løber efter dækning
4, video automatisk uploadet til youtube for at se nydelse
Trin 3: Kodningstid
Ved hjælp af openCV ved hjælp af rammesubtraktion kan du finde områder af rammen, der ændrer sig over tid, ved hjælp af nogle fiks funktioner kan du finde ud af, hvor store disse ændringer er, og hvis de vedvarer over tid, og vigtigst af alt finde ud af, om de er kattestørrede.
Der er en del tutorials om rammesubtraktion, der går i detaljer, hvis du laver en hurtig google -søgning.
Oversigt over hvordan koden fungerer
1, kameraet bliver ved med at tage billeder og sammenligne dem med det sidste
2, Hvis der registreres en kattestørrelsesform, noteres det
3, Hvis ændringen af kattestørrelsen vedvarer over omkring 4 billeder, bruger pi'en sin GPIO til at drive relæ til at starte arduino
4, Arduino sender et signal om at drive det andet relæ i 5 sekunder, som aktiverer solenoiden
5, solenoiden, når den drives, tillader vand til sprinkleren
6, mens sprinkleren er aktiv, stopper kameraet med at registrere og optage video
7, video uploades til Youtube
8, stillbilleder uploadet til dropbox til finjusteringssystem
Bemærk - Hvorfor jeg endte med at bruge 2 relæer og en arduino til at tænde en solenoid i 5 sekunder…..
1, pi'en kan ikke starte og stoppe solenoiden, mens videoen optages, mens python -scrips holder pause, indtil videoen er færdig, og derfor er det nødvendigt med arduino (eller 555 -timer) for at lade solenoiden åbne og lukke uafhængigt af scriptet, mens video optager stadig.
2, Det første relæ og arduino kan udskiftes med en 555 timer, men det kom ikke i posten i tide til dette projekt, 555 ville spare en masse tid penge og trin.
3, pi kan ikke udløse solenoiden direkte, da Pi GPIO fungerer på 3,3v og 51mA max, og solenoiden vil have 5V og meget mere end 51mA til at udløse.
4, Hver ramme kan beskæres for at fjerne bevægelsesdetektering i uønskede områder, såsom en naboskabshave. Undladelse af at gøre dette vil resultere i, at naboen giver forvirret blik ind i din have, fordi sprinkleren slukker hver gang, han vil gå ind i hans skur.
5, savnede jeg nok noget indlysende og spildte min tid på at konfigurere det sådan her.
Kode herunder
import cv2import numpy som np import argparse #cat importtid import RPi. GPIO som GPIO import os import dropbox fra picamera.array import PiRGBArray fra picamera import PiCamera #------------------ ------------------------------ Upload til 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 ("Optagelse af video") Prøv: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Upload til youtube print ("Upload til YouTube") os. system ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Fjern videofil, når den er udført os.remove ('vid {0}.h264'.format (vidnavn)) print ("Video uploadet og fjernet fra Pi") undtagen: pass #-------------------- ---------------------------- Stillbilleder til dropbox ------------------- -------------------- def St. illsToDropbox (): print ("Uploader stadig til Dropbox -funktion") access_token = 'Ah ah ah, du sagde ikke det magiske ord … Ah ah ah, du sagde ikke det magiske ord' 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
Trin 4: Sæt det sammen
Pres elektroderne ind i et vandtæt hus, skru ting i vægge og brug masser af gaffatape og varm lim
Trin 5: Resultater
Når det virker virker det
Trin 6: Falske positive
Når det ikke gør det, sprøjter det katteskygger, din kone og din datter.
Pro -tip - Sæt en afbryder ved døren, der sætter bevægelsesdetekteringsprogrammet på pause….. glem derefter at bruge det og blive gennemblødt, når du lægger skraldespandene ud.
Håber jeg lavede nogen eksperter inden for programmering, elektronik og DIY krymper med alle de fejl, jeg sikkert har begået, og håber især at du nød alle mine stavefejl.
Anbefalede:
Persistens af Vision LED -personale: 11 trin (med billeder)
Vedholdenhed hos Vision LED -personale: Det er velkendt, at selv efter at et lys er slukket, holder det menneskelige øje " se " det i en brøkdel af et sekund. Dette er kendt som Persistence of Vision, eller POV, og det giver en mulighed for at " male " billeder ved hurtigt at flytte en strimmel
Night Vision -beskyttelsesbriller til Google Cardboard: 10 trin (med billeder)
Night Vision -beskyttelsesbriller til Google Cardboard: Ansvarsfraskrivelse: Brugen af denne enhed er kun beregnet til underholdning, uddannelse og videnskabelig brug; ikke til spionage og/eller overvågning. &Quot; Spy gadget " funktioner blev tilføjet til appen bare for sjov og ville ikke tjene noget praktisk formål til
Night Vision Camera: 16 trin (med billeder)
Night Vision Camera: Ligesom Light of Eärendil guider Frodo på mørke steder, så vil dit hjemmelavede natkamera også være dit ledestjerne. Uanset om det er ude i skoven, camping med venner, fanger det undvigende glimt af en skandinavisk trold, eller mens du er på
IoT Cat Feeder Brug Particle Photon Integreret Med Alexa, SmartThings, IFTTT, Google Sheets: 7 trin (med billeder)
IoT Cat Feeder ved hjælp af Particle Photon Integreret med Alexa, SmartThings, IFTTT, Google Sheets: Behovet for en automatisk kattefoder er selvforklarende. Katte (vores kats navn er Bella) kan være modbydelige, når de er sultne, og hvis din kat er som min, vil den spise skålen tør hver gang. Jeg havde brug for en måde til automatisk at dosere en kontrolleret mængde mad
En overkommelig vision -løsning med robotarm baseret på Arduino: 19 trin (med billeder)
En overkommelig vision -løsning med robotarm baseret på Arduino: Når vi taler om maskinsyn, føles det altid så utilgængeligt for os. Mens vi lavede en open-source vision demo, som ville være super let at lave for alle. I denne video, med OpenMV -kameraet, er robotten ligegyldig, hvor den røde terning er