فهرست مطالب:

Cat-a-way-Computer Vision Cat Sprinkler: 6 مرحله (همراه با تصاویر)
Cat-a-way-Computer Vision Cat Sprinkler: 6 مرحله (همراه با تصاویر)

تصویری: Cat-a-way-Computer Vision Cat Sprinkler: 6 مرحله (همراه با تصاویر)

تصویری: Cat-a-way-Computer Vision Cat Sprinkler: 6 مرحله (همراه با تصاویر)
تصویری: On the traces of an Ancient Civilization? 🗿 What if we have been mistaken on our past? 2024, ژوئن
Anonim
Cat-a-way-Computer Vision Cat Sprinkler
Cat-a-way-Computer Vision Cat Sprinkler

مشکل - گربه ها از باغ شما به عنوان توالت استفاده می کنند

راه حل - زمان زیادی را صرف مهندسی آبپاش گربه ای با ویژگی بارگذاری خودکار یوتیوب کنید

این مرحله به مرحله نیست ، بلکه یک نمای کلی از ساختار و برخی از کد ها است

#BeforeYouCallPETA - گربه ها خوب هستند ، یک آبپاش کم فشار درست مانند باران است ، که می توانند قبل از اینکه حتی به دور آنها بچرخد ، از آن پیشی بگیرند. هدف این نیست که گربه ای را خیس کنید ، بلکه باید آنها را قبل از اینکه با نسخه گربه ای تخم مرغ در باغ من زباله کنند ، دور کنید.

مرحله 1: موارد اصلی مورد نیاز است

موارد اصلی مورد نیاز است
موارد اصلی مورد نیاز است

رزبری پای صفر و کارت SD

دوربین رزبری پای

رله

تایمر 555…. (یا 552 تایمر شما نرسد ، یک آردوینو و یک رله دیگر)

شیر برقی

آب پاش

نوعی مسکن برای وسایل الکترونیکی

تمایل به ضربه زدن به میخ استعاری با چکش سورتمه 6 تنی

دوربینی با وضوح بسیار کمی که به سختی می توانید آب را ببینید ، اما هنوز هم گربه هایی را می بینید که برای پوشش تلاش می کنند

مرحله 2: سیستم

Image
Image

1 ، دوربین Pi یک شیء به اندازه گربه را که برای چند فریم دوربین در حال حرکت است تشخیص می دهد (در مرحله بعد بیان شده است)

2 ، Pi آبپاش را راه می اندازد

3 ، گربه برای پوشش می دوید

4 ، ویدیو برای مشاهده لذت به صورت خودکار در یوتیوب بارگذاری می شود

مرحله 3: زمان برنامه نویسی

کنار هم قرار دادن
کنار هم قرار دادن

با استفاده از openCV با استفاده از تفریق قاب می توانید مناطقی از فریم را پیدا کنید که با گذشت زمان تغییر می کنند ، با استفاده از برخی از عملکردهای خوب می توانید بفهمید که این تغییرات چقدر بزرگ هستند و اگر در طول زمان ادامه پیدا کنند یا از همه مهمتر اینکه آیا اندازه گربه هستند یا خیر.

آموزشهای زیادی در مورد تفریق فریم وجود دارد که در صورت جستجوی سریع در گوگل به جزئیات زیادی می پردازید.

مروری بر نحوه کار کد

1 ، دوربین مدام عکس می گیرد و آنها را با آخرین عکس ها مقایسه می کند

2 ، اگر شکل یک گربه تشخیص داده شود ، ذکر شده است

3 ، اگر تغییر اندازه گربه بیش از 4 فریم ادامه داشته باشد ، پی از GPIO خود برای رله قدرت برای شروع آردوینو استفاده می کند.

4 ، آردوینو یک سیگنال برای تغذیه رله دوم به مدت 5 ثانیه ارسال می کند که شیر برقی را فعال می کند

5 ، شیر برقی هنگام تغذیه اجازه می دهد تا آب به آبپاش برسد

6 ، در حالی که اسپرینکلر فعال است ، تشخیص و ضبط ویدئو متوقف می شود

7 ، ویدئو در یوتیوب بارگذاری می شود

8 ، Stills برای سیستم تنظیم خوب در dropbox بارگذاری شده است

توجه - چرا من از 2 رله و یک آردوینو برای روشن کردن یک شیر برقی به مدت 5 ثانیه استفاده کردم …..

1 ، Pi نمی تواند هنگام ضبط ویدئو ، شیر برقی را شروع و متوقف کند ، زیرا پایتون تا زمانی که فیلم به پایان نرسد ، متوقف می شود ، بنابراین نیاز به آردوینو (یا تایمر 555) است که اجازه می دهد تا شیر برقی مستقل از اسکریپت باز و بسته شود ویدئو هنوز ضبط می شود

2 ، اولین رله و آردوینو را می توان با تایمر 555 جایگزین کرد ، اما زمانی که این پروژه به موقع ارسال نشد ، 555 در زمان و مراحل زیادی صرفه جویی می کند.

3 ، Pi نمی تواند مستقیماً شیر برقی را فعال کند زیرا Pi GPIO روی حداکثر 3.3 ولت و 51 میلی آمپر کار می کند ، و شیر برقی 5 ولت و خیلی بیشتر از 51 میلی آمپر می خواهد.

4 ، هر قاب را می توان برای حذف تشخیص حرکت در مناطق ناخواسته ، مانند باغ همسایگان ، برش داد. عدم انجام این کار باعث می شود همسایه مزاحم به باغ شما نگاه کند ، زیرا آبپاش هر بار که می خواهد به سوله خود برود خاموش می شود.

5 ، من احتمالاً چیزی واضح را از دست دادم و وقت خود را برای تنظیم آن به این شکل تلف کردم.

کد زیر

import cv2import numpy as np import argparse #cat import time import RPi. GPIO بعنوان GPIO وارد کردن dropbox از picamera.array واردات PiRGBArray از واردات picamera PiCamera #------------------ ------------------------------ بارگذاری در یوتیوب ----------------- ---------------------- 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 ("Taking Video") try: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #بارگذاری در چاپ یوتیوب ("بارگذاری در YouTube") os. system ('sudo youtube-upload --title = "گربه مرطوب شد {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #حذف فایل ویدئویی پس از اتمام os.remove ('vid {0}.h264'.format (vidname)) چاپ ("ویدیو بارگذاری و حذف شده از Pi") به جز: گذر #-------------------- ---------------------------- همچنان به dropbox ------------------- -------------------- def خیابان illsToDropbox (): print ("بارگذاری هنوز در عملکرد Dropbox") access_token = 'آه ، آه ، شما کلمه جادویی را نگفته اید … آه آه ، شما کلمه جادویی را نگفته اید' ctime = time.strftime (" ٪ H:٪ M:٪ S ") cdate = time.strftime ("٪ d-٪ m-٪ Y ") try: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate ، ctime) print (نام فایل) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg"، 'rb') client.put_file (نام فایل ، تصویر) image.close () os.remove ("ToDropbox-j.webp

#HowToTriggerRealProgrammersWithBadCode

مرحله 4: ترکیب آن

کنار هم قرار دادن
کنار هم قرار دادن
کنار هم قرار دادن
کنار هم قرار دادن
کنار هم قرار دادن
کنار هم قرار دادن

وسایل برقی را در محفظه ای ضد آب قرار دهید ، وسایل را به دیوار پیچ کنید و از نوار چسب و چسب داغ زیادی استفاده کنید

مرحله 5: نتایج

Image
Image
نتایج
نتایج

وقتی کار می کند کار می کند

مرحله ششم: مثبت کاذب

مثبت کاذب
مثبت کاذب

وقتی سایه گربه ، زن و دخترتان را نمی پاشد.

راهنمایی - یک سوئیچ کنار درب قرار دهید که برنامه تشخیص حرکت را متوقف کند ….. سپس استفاده از آن را فراموش کرده و هنگام بیرون آوردن سطل ها خیس بخورید.

امیدوارم با تمام اشتباهاتی که احتمالاً مرتکب شده ام ، متخصص برنامه نویسی ، الکترونیک و DIY شده باشم و به خصوص امیدوارم از همه اشتباهات املایی من لذت برده باشید.

توصیه شده: