Isi kandungan:

Cat-a-way - Penyiram Cat Penglihatan Komputer: 6 Langkah (dengan Gambar)
Cat-a-way - Penyiram Cat Penglihatan Komputer: 6 Langkah (dengan Gambar)

Video: Cat-a-way - Penyiram Cat Penglihatan Komputer: 6 Langkah (dengan Gambar)

Video: Cat-a-way - Penyiram Cat Penglihatan Komputer: 6 Langkah (dengan Gambar)
Video: Berjuang Untuk Rakyat? Ahhh Yang Bener? 2024, Jun
Anonim
Cat-a-way - Penyiram Kucing Visi Komputer
Cat-a-way - Penyiram Kucing Visi Komputer

Masalah - Kucing menggunakan kebun anda sebagai tandas

Penyelesaian - Luangkan terlalu banyak masa untuk merancang penyiram kucing dengan ciri muat naik youtube automatik

Ini bukan langkah demi langkah, tetapi gambaran keseluruhan pembinaan dan beberapa kod

#BeforeYouCallPETA - Kucing baik-baik saja, ia adalah penyiram tekanan rendah seperti hujan, sehingga mereka dapat berlari lebih awal sebelum ia berpusing ke arah mereka. Projek ini bukan untuk merendam kucing, tetapi untuk menjauhkannya sebelum mereka membuang kebun saya dengan versi kucing dari Barkers Eggs.

Langkah 1: Item Utama Diperlukan

Item Utama Diperlukan
Item Utama Diperlukan

Kad Raspberry Pi zero & SD

Kamera Raspberry Pi

Geganti

Pemasa 555…. (atau arduino dan geganti lain jika pemasa 555 anda tidak tiba)

Solenoid

Penyiram

Beberapa jenis perumahan untuk elektronik

Kesediaan untuk memukul kuku kiasan dengan tukul sledge 6 tan

Kamera dengan resolusi yang begitu sedikit anda hampir tidak dapat melihat airnya, tetapi kucing masih dapat berlindung

Langkah 2: Sistem

Image
Image

1, kamera Pi mengesan objek berukuran kucing bergerak untuk beberapa bingkai kamera (dinyatakan dalam langkah seterusnya)

2, Pi melancarkan pemercik

3, Kucing berlindung

4, Video dimuat naik secara automatik ke youtube untuk melihat keseronokan

Langkah 3: Masa Pengekodan

Menggabungkannya
Menggabungkannya

Dengan menggunakan openCV menggunakan penolakan bingkai, anda dapat mencari kawasan bingkai yang berubah dari masa ke masa, dengan menggunakan beberapa fungsi yang bagus, anda dapat mengetahui seberapa besar perubahan ini dan jika ia berlarutan dari masa ke masa, dan yang paling penting adalah mengetahui apakah ukuran kucing tersebut.

Terdapat beberapa tutorial mengenai pengurangan bingkai yang terperinci jika anda melakukan carian google dengan cepat.

Gambaran keseluruhan bagaimana kod tersebut berfungsi

1, Kamera terus mengambil bingkai dan membandingkannya dengan yang terakhir

2, Sekiranya bentuk berukuran kucing dikesan ia diperhatikan

3, Jika perubahan ukuran kucing berterusan lebih dari 4 bingkai, pi menggunakan GPIO untuk menghidupkan relay untuk memulakan arduino

4, Arduino menghantar isyarat untuk menghidupkan relay kedua selama 5 saat yang mengaktifkan solenoid

5, Solenoid ketika dihidupkan membolehkan air ke penyiram

6, Sementara pemercik aktif kamera berhenti mengesan dan merakam video

7, Video dimuat naik ke Youtube

8, Stills dimuat naik ke dropbox untuk sistem penalaan halus

Catatan - Mengapa saya akhirnya menggunakan 2 relay dan arduino untuk menghidupkan solenoid selama 5 saat…..

1, pi tidak dapat memulakan dan menghentikan solenoid semasa merakam video ketika skrip python berhenti sehingga video selesai, oleh itu perlunya arduino (atau pemasa 555) membenarkan solenoid untuk membuka dan menutup bebas pada skrip semasa video masih dirakam.

2, geganti pertama dan arduino dapat diganti dengan pemasa 555 tetapi itu tidak masuk dalam masa tepat untuk projek ini, 555 akan menjimatkan banyak masa dan wang.

3, Pi tidak boleh mencetuskan solenoid secara langsung kerana Pi GPIO berfungsi pada maksimum 3.3v dan 51mA, dan solenoid mahu pencetus 5V dan lebih daripada 51mA.

4, Setiap bingkai dapat dipotong untuk menghilangkan pengesanan gerakan di daerah yang tidak diinginkan, seperti taman tetangga. Kegagalan untuk melakukan ini akan menyebabkan jiran itu memberi pandangan keliru ke kebun anda kerana penyiram pergi setiap kali dia ingin masuk ke gudangnya.

5, saya mungkin terlepas sesuatu yang jelas dan membuang masa saya mengaturnya seperti ini.

Kod di bawah

import cv2import numpy sebagai np import argparse #cat import time import RPi. GPIO sebagai GPIO import os import dropbox dari picamera.array import PiRGBArray dari picamera import PiCamera # ------------------ ------------------------------ Muat naik ke 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) cetak ("Mengambil Video") cubalah: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Upload ke cetakan youtube ("Memuat naik ke YouTube") os. sistem ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-secret = client_secret.json vid {0}.h264'.format (vidname)) #Keluarkan fail video apabila selesai os.remove ('vid {0}.h264'.format (vidname)) cetak ("Video dimuat dan dikeluarkan dari Pi") kecuali: lulus # -------------------- ---------------------------- Stills to dropbox ------------------- -------------------- def St illsToDropbox (): print ("Uploading To To Dropbox Function") access_token = 'Ah ah ah, anda tidak mengatakan perkataan ajaib … Ah ah ah, anda tidak mengatakan perkataan ajaib' ctime = time.strftime (" % H:% M:% S ") cdate = time.strftime ("% d-% m-% Y ") cuba: nama fail =" / Gerakan/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (nama file) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (nama fail, gambar) image.close () os.remove ("ToDropbox-j.webp

#HowToTriggerRealProgrammersWithBadCode

Langkah 4: Menyatukannya

Menggabungkannya
Menggabungkannya
Menggabungkannya
Menggabungkannya
Menggabungkannya
Menggabungkannya

Masukkan elektrik ke perumahan kalis air, masukkan benda ke dinding dan gunakan banyak pita saluran dan gam panas

Langkah 5: Hasil

Image
Image
Keputusan
Keputusan

Apabila ia berfungsi, ia berfungsi

Langkah 6: Positif Palsu

Positif Palsu
Positif Palsu

Apabila tidak, ia menyemburkan bayangan kucing, isteri dan anak perempuan anda.

Pro-tip - Letakkan suis di pintu yang menghentikan program pengesanan gerakan….. kemudian lupa menggunakannya dan rendam ketika membuang tong keluar.

Mudah-mudahan saya membuat pakar dalam pengaturcaraan, elektronik dan DIY dengan semua kesilapan yang mungkin saya buat, dan terutamanya berharap anda menikmati semua kesalahan ejaan saya.

Disyorkan: