Taula de continguts:

Cat-a-way: aspersió per a gats de visió per ordinador: 6 passos (amb imatges)
Cat-a-way: aspersió per a gats de visió per ordinador: 6 passos (amb imatges)

Vídeo: Cat-a-way: aspersió per a gats de visió per ordinador: 6 passos (amb imatges)

Vídeo: Cat-a-way: aspersió per a gats de visió per ordinador: 6 passos (amb imatges)
Vídeo: 3 РЕЦЕПТА из КУРИНОЙ ПЕЧЕНИ/ ПАШТЕТ!! ГОСТИ БУДУТ В ШОКЕ!! 2024, Juny
Anonim
Cat-a-way: aspersió per a gats de visió per computador
Cat-a-way: aspersió per a gats de visió per computador

Problema: els gats fan servir el jardí com a vàter

Solució: dediqueu massa temps a l’enginyeria d’un aspersor per a gats amb funció de càrrega automàtica de YouTube

Això no és pas a pas, sinó una visió general de la construcció i algun codi

#BeforeYouCallPETA: els gats estan bé, és un aspersor de baixa pressió igual que la pluja, que poden superar abans que els giri. El projecte no consisteix a sucar un gat, sinó a mostrar-lo abans d’embrutar el meu jardí amb la versió per a gats de Barkers Eggs.

Pas 1: es requereixen els elements principals

Es requereixen els elements principals
Es requereixen els elements principals

Raspberry Pi zero i targeta SD

Càmera Raspberry Pi

Relleu

Temporitzador 555…. (o un arduino i un altre relé si no arriben els 555 temporitzadors)

Solenoide

Aspersor

Algun tipus de carcassa per a l’electrònica

La voluntat de colpejar un clau metafòric amb un trineu de 6 tones

Una càmera amb tan poca resolució que amb prou feines es pot veure l’aigua, però encara pot veure els gats corrent per cobrir-se

Pas 2: el sistema

Image
Image

1, la càmera Pi detecta que un objecte de mida gat es mou en uns quants fotogrames de la càmera (exaplicat al següent pas)

2, Pi posa en marxa l’aspersor

3, Cat corre per cobrir-se

4, el vídeo es penja automàticament a youtube per gaudir-ne

Pas 3: temps de codificació

Posant-ho en comú
Posant-ho en comú

Utilitzant openCV mitjançant la resta de fotogrames es poden trobar àrees del fotograma que canvien amb el pas del temps, amb algunes funcions intel·ligents es pot esbrinar la grandària d’aquests canvis i si persisteixen amb el pas del temps i, sobretot, saber si tenen la mida d’un gat.

Hi ha força tutorials sobre la resta de fotogrames que es detallen molt bé si feu una cerca ràpida a Google.

Descripció general de com funciona el codi

1, la càmera continua prenent fotogrames i comparant-los amb els darrers

2, Si es detecta una forma de mida de gat, es nota

3, Si el canvi de mida del gat persisteix al voltant de 4 fotogrames, el pi utilitza el seu GPIO per alimentar el relé per iniciar l’arduino

4, l'arduino envia un senyal per alimentar el segon relé durant 5 segons que activa el solenoide

5, el solenoide quan s’alimenta permet l’aigua a l’aspersor

6, Mentre l'aspersor està actiu, la càmera deixa de detectar i grava el vídeo

7, El vídeo es penja a Youtube

8, Stills carregats a Dropbox per obtenir un sistema de posada a punt

Nota: per què he acabat fent servir 2 relés i un arduino per encendre un solenoide durant 5 segons …

1, el pi no pot arrencar i aturar el solenoide mentre s’enregistra el vídeo mentre el python es posa en pausa fins que el vídeo s’acaba, d’aquí la necessitat que l’arduino (o temporitzador 555) permeti que el solenoide s’obri i es tanqui independentment de l’escript mentre el vídeo encara s'està gravant.

2, el primer relé i arduino es poden substituir per un temporitzador 555, però això no va arribar a la publicació a temps per a aquest projecte, 555 estalviaria molts diners i passos.

3, el pi no pot activar el solenoide directament, ja que el GPIO Pi funciona amb 3.3v i 51mA màx., I el solenoide vol que s’activi 5V i molt més de 51mA.

4, es pot retallar cada marc per eliminar la detecció de moviment en zones no desitjades, com ara un jardí de veïns. Si no ho feu, el veí donarà un aspecte confús al jardí perquè l’aspersor s’apaga cada vegada que vol entrar al seu cobert.

5, probablement he trobat a faltar alguna cosa evident i he perdut el temps configurant-ho així.

Codi següent

importar cv2import numpy com np importar argparse #cat importar temps importar RPi. GPIO com GPIO importar dropbox d'importació des de picamera.array importar PiRGBArray des d'importar picamera PiCamera # ------------------ ------------------------------ Penja a 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 ("Fer vídeo")) proveu: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Carregueu a youtube print ("Carregant a YouTube"). system ('sudo youtube-upload --title = "El gat s'ha mullat {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Retireu el fitxer de vídeo quan s'hagi fet os.remove ('vid {0}.h264'.format (vidname)) imprimir ("Vídeo penjat i eliminat de Pi") excepte: passa # -------------------- ---------------------------- Llibres per deixar caure ------------------- -------------------- def St. illsToDropbox (): print ("Carregant la funció Dropbox") access_token = 'Ah ah ah, no heu dit la paraula màgica … Ah ah ah, no heu dit la paraula màgica' ctime = time.strftime (" % H:% M:% S ") cdate = time.strftime ("% d-% m-% Y ") try: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (nom del fitxer) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (nom del fitxer, imatge) image.close () os.remove ("ToDropbox-j.webp

#HowToTriggerRealProgrammersWithBadCode

Pas 4: ajuntar-lo

Posant-ho en comú
Posant-ho en comú
Posant-ho en comú
Posant-ho en comú
Posant-ho en comú
Posant-ho en comú

Poseu l’electricitat en una carcassa impermeable, torneu les coses a les parets i utilitzeu molta cinta adhesiva i cola calenta

Pas 5: Resultats

Image
Image
Resultats
Resultats

Quan funciona, funciona

Pas 6: falsos positius

Falsos positius
Falsos positius

Quan no ho fa, ruixa ombres de gats, la teva dona i la teva filla.

Pro-tip: poseu un interruptor al costat de la porta que posa en pausa el programa de detecció de moviment ….. i després oblideu-lo d’utilitzar-lo i poseu-vos en remull quan treieu els contenidors.

Espero haver experimentat experts en programació, electrònica i bricolatge amb tots els errors que probablement he comès i, sobretot, espero que gaudiu de tots els meus errors ortogràfics.

Recomanat: