Taula de continguts:
- Pas 1: es requereixen els elements principals
- Pas 2: el sistema
- Pas 3: temps de codificació
- Pas 4: ajuntar-lo
- Pas 5: Resultats
- Pas 6: falsos positius
Vídeo: Cat-a-way: aspersió per a gats de visió per ordinador: 6 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
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
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
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ó
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
Poseu l’electricitat en una carcassa impermeable, torneu les coses a les parets i utilitzeu molta cinta adhesiva i cola calenta
Pas 5: Resultats
Quan funciona, funciona
Pas 6: 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:
Hacking de l'Hexbug Spider XL per afegir visió per ordinador mitjançant un telèfon intel·ligent Android: 9 passos (amb imatges)
Hacking de l'Hexbug Spider XL per afegir visió per ordinador mitjançant un telèfon intel·ligent Android: sóc un gran fan de l'original Hexbug ™ Aranya. N’he posseït més d’una dotzena i els he piratejat a tots. Sempre que un dels meus fills va a un ’ festa d’aniversari, l’amic rep un Hexbug ™ aranya com a regal. He piratejat el o
Reconeixement d’estrelles mitjançant visió per ordinador (OpenCV): 11 passos (amb imatges)
Reconeixement d’estrelles mitjançant la visió per ordinador (OpenCV): aquesta instrucció us descriurà com crear un programa de visió per ordinador per identificar automàticament els patrons d’estrelles d’una imatge. El mètode utilitza la biblioteca OpenCV (Open-Source Computer Vision) per crear un conjunt de cascades HAAR entrenades que poden ser
Vareta de treball real de Harry Potter amb visió per ordinador: 8 passos (amb imatges)
Vareta de treball real de Harry Potter amb visió per ordinador: "Qualsevol tecnologia prou avançada no es distingeix de la màgia" - Arthur C. Clarke Fa uns mesos, el meu germà va visitar Japó i tenia una experiència màgica real al món dels mags de Harry Potter als estudis universals que va fer possible
Alimentador de gats IoT amb fotó de partícules integrat amb Alexa, SmartThings, IFTTT, Fulls de càlcul de Google: 7 passos (amb imatges)
Alimentador de gats IoT que utilitza fotó de partícules integrat amb Alexa, SmartThings, IFTTT, Fulls de càlcul de Google: la necessitat d’un alimentador automàtic de gats s’explica per si mateixa. Els gats (el nostre gat es diu Bella) poden ser desagradables quan tenen gana i, si el vostre gat és com el meu, menjarà el bol sec cada vegada. Necessitava una manera de distribuir automàticament una quantitat controlada d'aliments
Cadira de rodes controlada per visió per ordinador amb maniquí: 6 passos (amb imatges)
Cadira de rodes controlada per visió per ordinador amb maniquí: projecte d’AJ Sapala, Fanyun Peng, Kuldeep Gohel, Ray LC. un raspberry pi que executa openCV mitjançant Processament