Daftar Isi:
- Langkah 1: Item Utama Diperlukan
- Langkah 2: Sistem
- Langkah 3: Waktu Pengkodean
- Langkah 4: Menyatukannya
- Langkah 5: Hasil
- Langkah 6: Positif Palsu
Video: Cat-a-way - Computer Vision Cat Sprinkler: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Masalah - Kucing menggunakan kebun Anda sebagai toilet
Solusi - Luangkan terlalu banyak waktu untuk merancang alat penyiram kucing dengan fitur unggah youtube otomatis
Ini bukan langkah demi langkah, tetapi ikhtisar konstruksi dan beberapa kode
#BeforeYouCallPETA - Kucing-kucing itu baik-baik saja, ini adalah alat penyiram bertekanan rendah seperti hujan, yang dapat mereka lari lebih cepat bahkan sebelum berputar ke arah mereka. Proyek ini bukan untuk merendam kucing, tetapi untuk membuangnya sebelum mereka mengotori kebun saya dengan Telur Barkers versi kucing.
Langkah 1: Item Utama Diperlukan
Raspberry Pi nol & kartu SD
Kamera Raspberry Pi
Menyampaikan
555 pengatur waktu…. (atau arduino dan relai lain jika penghitung waktu 555 Anda tidak tiba)
solenoida
Alat penyiram
Beberapa jenis perumahan untuk elektronik
Kesediaan untuk memukul paku metafora dengan palu godam 6 ton
Kamera dengan resolusi yang sangat kecil sehingga Anda hampir tidak dapat melihat air, tetapi masih dapat melihat kucing-kucing berlarian untuk berlindung
Langkah 2: Sistem
1, kamera Pi mendeteksi objek berukuran kucing yang bergerak untuk beberapa bingkai kamera (dijelaskan pada langkah berikutnya)
2, Pi menyalakan alat penyiram
3, Kucing berlari untuk berlindung
4, Video secara otomatis diunggah ke youtube untuk kesenangan menonton
Langkah 3: Waktu Pengkodean
Menggunakan openCV menggunakan pengurangan bingkai Anda dapat menemukan area bingkai yang berubah dari waktu ke waktu, menggunakan beberapa fungsi bagus Anda dapat mengetahui seberapa besar perubahan ini dan apakah mereka bertahan dari waktu ke waktu, dan yang paling penting mengetahui apakah mereka berukuran kucing.
Ada beberapa tutorial tentang pengurangan bingkai yang sangat detail jika Anda melakukan pencarian google cepat.
Ikhtisar tentang cara kerja kode
1, Kamera terus mengambil bingkai dan membandingkannya dengan yang terakhir
2, Jika bentuk seukuran kucing terdeteksi, dicatat
3, Jika perubahan ukuran kucing berlanjut selama sekitar 4 frame, pi menggunakan GPIO-nya untuk menyalakan relai untuk memulai arduino
4, Arduino mengirimkan sinyal untuk menyalakan relai kedua selama 5 detik yang mengaktifkan solenoida
5, Solenoid saat dinyalakan memungkinkan air ke sprinkler
6, Saat sprinkler aktif, kamera berhenti mendeteksi dan merekam video
7, Video diunggah ke Youtube
8, Stills diunggah ke dropbox untuk sistem fine tuning
Catatan - Mengapa saya akhirnya menggunakan 2 relay dan arduino untuk menyalakan solenoid selama 5 detik…..
1, pi tidak dapat memulai dan menghentikan solenoida saat merekam video karena skrip python berhenti hingga video selesai, oleh karena itu perlunya arduino (atau timer 555) untuk memungkinkan solenoida membuka dan menutup secara independen ke skrip sementara video masih merekam.
2, Relay pertama dan arduino dapat diganti dengan timer 555 tapi itu tidak datang tepat waktu untuk proyek ini, 555 akan menghemat banyak waktu, uang dan langkah.
3, Pi tidak dapat memicu solenoid secara langsung karena Pi GPIO bekerja pada 3.3v dan 51mA max, dan solenoid menginginkan 5V dan lebih dari 51mA untuk dipicu.
4, Setiap bingkai dapat dipotong untuk menghilangkan deteksi gerakan di area yang tidak diinginkan, seperti taman tetangga. Kegagalan untuk melakukan ini akan mengakibatkan tetangga tersebut memberikan pandangan bingung ke kebun Anda karena sprinkler berbunyi setiap kali dia ingin masuk ke gudangnya.
5, saya mungkin melewatkan sesuatu yang jelas dan membuang waktu saya untuk mengaturnya seperti ini.
Kode di bawah ini
impor cv2import numpy sebagai np impor argparse #cat impor waktu impor RPi. GPIO sebagai GPIO impor os impor dropbox dari picamera.array impor PiRGArray dari picamera impor PiCamera #------------------ ------------------------------Unggah ke youtube----------------- ---------------------- def HDtoYoutube(): ctime = time.strftime("_%H-%M-%S") cdate = time.strftime ("_%d-%m-%Y") vidname = ctime + cdate #Pemicu relai GPIO.output(11, True) time.sleep(.5) GPIO.output(11, False) print("Mengambil Video") coba: #Ambil Video os.system('raspivid -w 1640 -h 922 -o vid{0}.h264 -t 15000'.format(vidname)) #Unggah ke youtube print("Mengunggah ke YouTube") os. system('sudo youtube-upload --title="Cat Got Wet {0}" --client-secrets=client_secret.json vid{0}.h264'.format(vidname)) #Hapus file video saat selesai os.remove ('vid{0}.h264'.format(vidname)) print("Video diunggah dan dihapus dari Pi") kecuali: pass #-------------------- ----------------------------Masih ke dropbox------------------- -------------------- def St illsToDropbox(): print("Mengunggah Masih Ke Fungsi Dropbox") access_token = 'Ah ah ah, Anda tidak mengucapkan kata ajaib…Ah ah ah, Anda tidak mengucapkan kata ajaib' ctime = time.strftime(" %H:%M:%S") cdate = time.strftime("%d-%m-%Y") coba: nama file = "/Motion/{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 file, gambar) image.close() os.remove("ToDropbox.jpg") kecuali: lulus #------------------------------------------ ------Deteksi gerakan------------------------------------------ def DetectMotion(): #Define vars min_area = 400 tolarance = 25 #perubahan pixel bluramount = 21 timetoforget = 0.5 kernel = np.ones((5, 5), np.uint8) #digunakan untuk memutar MotionCounter = 0 MinTargetArea = 600 # ukuran terkecil untuk dideteksi MaxTargetArea = 5000 #Ukuran terbesar untuk dideteksi sekarang = time.time() lalu = time.time() #inisialisasi kamera kamera = PiCamera() camera.resolusi = (640, 480) camera.framerate = 10 mentah Capture = PiRGBArray(camera, size=(640, 480)) #warmup camera time.sleep(1) #Ambil frame pertama & persiapkan untuk masuk ke cv2.acumulate weight camera.capture(rawCapture, format="bgr") rata-rata = rawCapture.array #Memotong wilayah yang tidak diinginkan PolyCrop = np.array(
#HowToTriggerRealProgrammersWithBadCode
Langkah 4: Menyatukannya
Jepitkan listrik ke dalam rumah tahan air, kencangkan benda-benda ke dinding dan gunakan banyak selotip dan lem panas
Langkah 5: Hasil
Ketika bekerja itu berhasil
Langkah 6: Positif Palsu
Ketika tidak menyemprotkan bayangan kucing, istri Anda dan putri Anda.
Pro-tip - Letakkan sakelar di dekat pintu yang menghentikan program pendeteksi gerakan….. lalu lupa menggunakannya dan basah kuyup saat membuang tempat sampah.
Semoga saya membuat ahli pemrograman, elektronik, dan DIY merasa ngeri dengan semua kesalahan yang mungkin saya buat, dan terutama harap Anda menikmati semua kesalahan ejaan saya.
Direkomendasikan:
Night Vision Goggles untuk Google Cardboard: 10 Langkah (dengan Gambar)
Kacamata Penglihatan Malam untuk Google Karton: Penafian: Penggunaan perangkat ini dimaksudkan untuk hiburan, pendidikan, dan penggunaan ilmiah saja; bukan untuk mata-mata dan/atau pengawasan. "Gadget mata-mata" fitur ditambahkan ke aplikasi hanya untuk bersenang-senang dan tidak memiliki tujuan praktis untuk
Kamera Night Vision: 16 Langkah (dengan Gambar)
Kamera Penglihatan Malam: Sama seperti Cahaya Eärendil yang memandu Frodo di tempat-tempat gelap, kamera penglihatan malam buatan Anda juga akan menjadi suar pemandu Anda. Baik saat berkemah di hutan bersama teman-teman, menangkap sekilas troll Skandinavia yang sulit dipahami, atau saat
Kegigihan Vision Fidget Spinner: 8 Langkah (dengan Gambar)
Persistence of Vision Fidget Spinner: Ini adalah pemintal gelisah yang menggunakan efek Persistence of Vision yang merupakan ilusi optik di mana beberapa gambar terpisah menyatu menjadi satu gambar dalam pikiran manusia. Teks atau grafik dapat diubah melalui tautan Bluetooth Low Energy dengan menggunakan sebuah P
Cara Membuat Perangkat Night Vision Sendiri!: 5 Langkah (dengan Gambar)
Cara Membuat Perangkat Night Vision Sendiri!: Dalam proyek ini saya akan menunjukkan cara membuat perangkat night vision. Ini terutama terdiri dari kamera keamanan, layar kecil dan PCB khusus yang menampilkan LED IR dan driver LED. Setelah menyalakan perangkat dengan powerbank USB Type-C PD, Anda dapat
Micro:bit MU Vision Sensor dan Zip Tile Gabungan: 9 Langkah (dengan Gambar)
Micro:bit MU Vision Sensor dan Zip Tile Gabungan: Jadi dalam proyek ini kita akan menggabungkan sensor vision MU dengan Kitronik Zip Tile. Kami akan menggunakan sensor penglihatan MU untuk mengenali warna dan membuat Zip Tile menunjukkannya kepada kami. Kami akan menggunakan beberapa teknik yang telah kami gunakan sebelumnya