Tartalomjegyzék:

Cat-a-way-Computer Vision Cat Sprinkler: 6 lépés (képekkel)
Cat-a-way-Computer Vision Cat Sprinkler: 6 lépés (képekkel)

Videó: Cat-a-way-Computer Vision Cat Sprinkler: 6 lépés (képekkel)

Videó: Cat-a-way-Computer Vision Cat Sprinkler: 6 lépés (képekkel)
Videó: How we teach computers to understand pictures | Fei Fei Li 2024, Június
Anonim
Cat-a-way-Computer Vision Cat Sprinkler
Cat-a-way-Computer Vision Cat Sprinkler

Probléma - A macskák a kertet WC -ként használják

Megoldás - Töltsön túl sok időt egy macska -öntözőgép tervezésénél az automatikus YouTube -feltöltési funkcióval

Ez nem lépésről lépésre, hanem az építés áttekintése és néhány kód

#BeforeYouCallPETA - A macskák jól vannak, alacsony nyomású öntözőberendezése, akár az eső, hogy megelőzhetik, mielőtt még megfordulna körülöttük. A projekt célja nem egy macska áztatása, hanem az, hogy elpusztítsam őket, mielőtt a Barkers Eggs macskaváltozatával szemetelnek a kertemben.

1. lépés: Főbb elemek szükségesek

Főbb elemek szükségesek
Főbb elemek szükségesek

Raspberry Pi nulla és SD kártya

Raspberry Pi kamera

Relé

555 időzítő … (vagy egy arduino és egy másik relé, ha az 555 időzítő nem érkezik meg)

Szolenoid

Sprinkler

Valamilyen ház az elektronikához

Hajlandóság egy metaforikus szöget ütni egy 6 tonnás szánkalapáccsal

A kamera olyan kis felbontású, hogy alig látja a vizet, de még mindig látja a macskákat, akik fedezékért futnak

2. lépés: A rendszer

Image
Image

1, A Pi kamera észleli, hogy egy macska méretű tárgy néhány kamera képkockáján mozog (példaként a következő lépésben)

2, Pi elindítja az esőztetőt

3, Cat fut fedezékért

4, A videó automatikusan feltöltődik a youtube -ra a megtekintés örömére

3. lépés: Kódolási idő

Összerakása
Összerakása

Az openCV használatával a keret kivonásával megtalálhatja a keret azon területeit, amelyek idővel változnak, néhány remek funkció használatával kitalálhatja, hogy ezek a változások mekkora méretűek, és tartósan fennállnak -e, és ami a legfontosabb, megtudhatja, hogy macska méretűek -e.

Elég sok oktatóanyag található a keret kivonásáról, amelyek nagyon részletesek, ha gyors Google -keresést végez.

A kód működésének áttekintése

1, A fényképezőgép folyamatosan készít képkockákat és összehasonlítja őket az utolsóig

2, Ha macska méretű alakot észlel, akkor azt megjegyzi

3, Ha a macska méretváltozása 4 képkocka körül is fennáll, a pi a GPIO -ját használja a relé bekapcsolásához az arduino elindításához

4, Az arduino jelet küld a második relé 5 másodpercre történő táplálásához, amely aktiválja a mágnesszelepet

5, A mágnesszelep bekapcsolt állapotban vizet enged a sprinklerhez

6, Amíg a sprinkler aktív, a kamera leállítja az észlelést és rögzíti a videót

7, A videót feltöltik a Youtube -ra

8, Állóképek feltöltve a dropboxba a finomhangoló rendszerhez

Megjegyzés - Miért használtam végül 2 relét és egy arduinot, hogy 5 másodpercre bekapcsoljam a mágnesszelepet…..

1, A pi nem tudja elindítani és leállítani a mágnesszelepet a videó rögzítése közben, miközben a python scrip szüneteket tart, amíg a videó befejeződik, ezért szükség van az arduino -ra (vagy az 555 -ös időzítőre), hogy lehetővé tegye a mágnesszelep nyitását és bezárását a szkripttől függetlenül, miközben a a videó még rögzítés alatt áll.

2, Az első relé és arduino helyettesíthető egy 555 -ös időzítővel, de ez nem érkezett meg időben a projekthez, az 555 sok időt és pénzt takarít meg.

3, A pi nem tudja közvetlenül bekapcsolni a mágnesszelepet, mivel a Pi GPIO 3,3 és 51 mA áramerősséggel működik, a mágnesszelep pedig 5 V -os és 51 mA -nél nagyobb indítást szeretne.

4, Minden keret levágható, hogy eltávolítsa a mozgásérzékelést a nem kívánt területeken, például a szomszédos kertben. Ennek elmulasztása azt eredményezi, hogy az említett szomszéd zavart pillantást vet a kertjébe, mert az esőztető minden alkalommal kikapcsol, amikor be akar menni a fészerébe.

5, Valószínűleg kihagytam valami nyilvánvaló dolgot, és elvesztegettem az időmet az ilyen beállítással.

Kód alább

import cv2import numpy as np import argparse #cat import time import RPi. GPIO as GPIO import import os drop import from picamera.array import PiRGBArray from picamera import PiCamera #------------------ ------------------------------ Feltöltés a youtube-ra ----------------- ---------------------- 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 ("Videó készítése") try: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Feltöltés a youtube printre ("Feltöltés a YouTube -ra") os. rendszer ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Videó eltávolítása, ha kész os.remove ('vid {0}.h264'.format (vidname)) print ("A videó feltöltve és eltávolítva a Pi-ből"), kivéve: pass #-------------------- ---------------------------- Állóképek a dropboxba ------------------- -------------------- def St. illsToDropbox (): print ("Stillloading to Dropbox Function") access_token = 'Ah ah ah, nem mondtad a varázsszót … Ah ah ah, nem mondtad a' ctime = time.strftime (" %H:%M:%S ") cdate = time.strftime ("%d-%m-%Y ") try: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (fájlnév) kliens = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (fájlnév, kép) image.close () os.remove ("ToDropbox-j.webp

#HowToTriggerRealProgrammersWithBadCode

4. lépés: Összeállítás

Összerakása
Összerakása
Összerakása
Összerakása
Összerakása
Összerakása

Szúrja be az elektromos készülékeket vízálló házba, csavarja be a dolgokat a falakba, és használjon sok ragasztószalagot és forró ragasztót

5. lépés: Eredmények

Image
Image
Eredmények
Eredmények

Amikor működik, akkor működik

6. lépés: Hamis pozitív

Hamis pozitív
Hamis pozitív

Ha nem, akkor a macska árnyékát permetezi, a felesége és a lánya.

Hasznos tipp - Tegyen egy kapcsolót az ajtó mellé, amely szünetelteti a mozgásérzékelő programot….. majd felejtse el használni, és ázik be a tárolók kihelyezésekor.

Remélem, hogy a programozás, az elektronika és a barkácsolás szakértőit összezavarodtam az összes valószínűleg elkövetett hibámmal, és különösen remélem, hogy tetszett minden helyesírási hibám.

Ajánlott: