INHOUDSOPGAWE:

Cat-a-way-Computer Vision Cat Sprinkler: 6 stappe (met foto's)
Cat-a-way-Computer Vision Cat Sprinkler: 6 stappe (met foto's)

Video: Cat-a-way-Computer Vision Cat Sprinkler: 6 stappe (met foto's)

Video: Cat-a-way-Computer Vision Cat Sprinkler: 6 stappe (met foto's)
Video: age doesn't matter 2024, Junie
Anonim
Cat-a-way-Computer Vision Cat Sprinkler
Cat-a-way-Computer Vision Cat Sprinkler

Probleem - Katte wat u tuin as toilet gebruik

Oplossing - Bestee te veel tyd aan die ontwerp van 'n katbesproeier met die outomatiese oplaai -funksie op YouTube

Dit is nie 'n stap vir stap nie, maar 'n oorsig van die konstruksie en 'n paar kode

#BeforeYouCallPETA - Die katte is goed, dit is 'n lae druk sprinkel net soos reën, wat hulle kan uitloop voordat dit selfs na hulle kan draai. Die projek is nie om 'n kat te week nie, maar om hulle weg te wys voordat hulle my tuin besaai met die katweergawe van Barkers Eggs.

Stap 1: Vernaamste items benodig

Belangrikste items
Belangrikste items

Framboos Pi zero en SD kaart

Framboos Pi kamera

Relay

555 timer … (of 'n arduino en 'n ander aflos as u 555 timers nie opdaag nie)

Solenoïde

Sprinkel

Een of ander behuising vir die elektronika

'N Gewilligheid om 'n metaforiese spyker met 'n hamer van 6 ton te slaan

'N Kamera met so min resolusie dat jy skaars die water kan sien, maar jy kan steeds sien hoe die katte om die deksel hardloop

Stap 2: Die stelsel

Image
Image

1, Pi -kamera bespeur 'n katvoorwerp wat vir 'n paar kamerarame beweeg (in die volgende stap beskryf)

2, Pi sit die sproeier aan die gang

3, Cat hardloop vir dekking

4, video word outomaties na YouTube gelaai vir kykgenot

Stap 3: Koderingstyd

Saamvoeg
Saamvoeg

Deur gebruik te maak van openCV deur raamaftrekking te gebruik, kan u dele van die raam vind wat mettertyd verander, met behulp van 'n paar handige funksies kan u uitvind hoe groot hierdie veranderinge is en of dit mettertyd voortduur, en die belangrikste is om uit te vind of dit katgrootte is.

Daar is 'n hele paar tutoriale oor die aftrekking van die raam wat in detail ingaan as u vinnig op Google soek.

Oorsig van hoe die kode werk

1, die kamera neem steeds rame en vergelyk dit met die vorige

2, As 'n katgrootte vorm bespeur word, word dit opgemerk

3, as die verandering van die katgrootte oor ongeveer 4 rame voortduur, gebruik die pi sy GPIO om die relais aan te skakel om arduino te begin

4, die arduino stuur 'n sein om die tweede aflos vir 5 sekondes aan te skakel, wat die solenoïde aktiveer

5, Die solenoïde laat die sproeier water toe as dit aangeskakel word

6, terwyl die sproeier aktief is, stop die kamera met die opspoor en opneem van video

7, word die video na YouTube gelaai

8, foto's word na dropbox opgelaai vir 'n fyn afstellingstelsel

Opmerking - waarom ek 2 relais en 'n arduino gebruik het om 'n solenoïde vir 5 sekondes aan te skakel …

1, die pi kan nie die solenoïde begin en stop tydens die opname van die video nie, terwyl die luislang onderbreek word totdat die video klaar is, daarom moet die arduino (of 555 timer) toelaat dat die solenoïde onafhanklik van die skrif oopmaak en sluit terwyl die video video word steeds opgeneem.

2, Die eerste relais en arduino kan vervang word met 'n 555 -timer, maar as dit nie betyds vir hierdie projek gekom het nie, sou 555 baie tyd en stappe bespaar.

3, Die pi kan die solenoïde nie direk aktiveer nie, aangesien die Pi GPIO op 3.3v en 51mA maks werk, en die solenoïde wil hê dat 5V en veel meer as 51mA moet aktiveer.

4, elke raam kan geknip word om bewegingsopsporing in ongewenste gebiede, soos 'n naburige tuin, te verwyder. As u dit nie doen nie, sal die buurman deurmekaar kyk in u tuin, want die sproeier gaan elke keer as hy in sy skuur wil ingaan.

5, het ek waarskynlik iets voor die hand liggend gemis en my tyd gemors om dit so op te stel.

Kode hieronder

invoer 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 #------------------ ------------------------------ Laai op YouTube ----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_%H-%M-%S") cdate = time.strftime ("_%d-%m-%Y") vidname = ctime + cdate #Trigger-aflos GPIO.output (11, True) time.sleep (.5) GPIO.output (11, Onwaar) druk ("Video neem") probeer: #Neem video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Laai op na YouTube -afdruk ("Laai na YouTube") op. system ('sudo youtube-upload --title = "Cat Got Nat {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Verwyder videolêer as dit klaar is os.remove ('vid {0}.h264'.format (vidnaam)) druk ("Video opgelaai en verwyder uit Pi") behalwe: slaag #-------------------- ---------------------------- Stills na dropbox ------------------- -------------------- def St. illsToDropbox (): print ("Laai steeds op na Dropbox -funksie") access_token = 'Ah ah ah, jy het nie die towerwoord gesê nie … Ah ah ah, jy het nie die towerwoord' ctime = time.strftime 'gesê nie (" %H:%M:%S ") cdate = time.strftime ("%d-%m-%Y ") probeer: lêernaam =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (lêernaam) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (lêernaam, beeld) image.close () os.remove ("ToDropbox-j.webp

#HowToTriggerRealProgrammersWithBadCode

Stap 4: Saamvoeg

Saamvoeg
Saamvoeg
Saamvoeg
Saamvoeg
Saamvoeg
Saamvoeg

Druk die elektrisiteit in 'n waterdigte omhulsel, skroef dinge in die mure vas en gebruik baie kleeflint en warm gom

Stap 5: Resultate

Image
Image
Resultate
Resultate

As dit werk, werk dit

Stap 6: Valse positiewe

Valse positiewe
Valse positiewe

As dit nie die geval is nie, spuit dit katskaduwees, u vrou en u dogter.

Pro -tip - Sit 'n skakelaar by die deur wat die bewegingsopsporingsprogram onderbreek …. vergeet dan om dit te gebruik en word geweek wanneer u die asblikke uittrek.

Hoop ek het 'n paar kundiges in programmering, elektronika en DIY gemaak, met al die foute wat ek waarskynlik gemaak het, en veral dat u al my spelfoute geniet het.

Aanbeveel: