תוכן עניינים:

Cat-a-way-ממטור חתול Vision Computer: 6 שלבים (עם תמונות)
Cat-a-way-ממטור חתול Vision Computer: 6 שלבים (עם תמונות)

וִידֵאוֹ: Cat-a-way-ממטור חתול Vision Computer: 6 שלבים (עם תמונות)

וִידֵאוֹ: Cat-a-way-ממטור חתול Vision Computer: 6 שלבים (עם תמונות)
וִידֵאוֹ: Чужой звонок_Рассказ_Слушать 2024, נוֹבֶמבֶּר
Anonim
Cat-a-way-ממטרי חתולים של Computer Vision
Cat-a-way-ממטרי חתולים של Computer Vision

בעיה - חתולים שמשתמשים בגינה שלכם כאסלה

פתרון - הקדש יותר מדי זמן להנדסת ממטרה לחתולים עם תכונת העלאה אוטומטית ליוטיוב

זה לא שלב אחר שלב, אלא סקירה כללית של בנייה וקוד כלשהו

#BeforeYouCallPETA - החתולים בסדר, הם ממטרים בלחץ נמוך ממש כמו גשם, שהם יכולים לעקוף עוד לפני שהוא מסתובב אליהם. הפרויקט הוא לא להשרות חתול, אלא להראות אותם לפני שהם מפזרים את גינתי בגרסת החתולים של ביצי בארקרס.

שלב 1: פריטים עיקריים הנדרשים

פריטים עיקריים נדרשים
פריטים עיקריים נדרשים

Raspberry Pi אפס וכרטיס SD

מצלמת פטל פי

ממסר

555 טיימר…. (או ארדואינו וממסר אחר אם 555 טיימרים שלכם לא מגיעים)

סולנואיד

מתז

סוג של דיור לאלקטרוניקה

נכונות להכות מסמר מטפורי בפטיש מזחלת 6 טון

מצלמה עם כל כך מעט רזולוציה שבקושי רואים את המים, אך עדיין יכולים לראות את החתולים רצים אחר כיסוי

שלב 2: המערכת

Image
Image

1, מצלמת פי מזהה אובייקט בגודל חתול הנע לכמה מסגרות מצלמה (מסומן בשלב הבא)

2, פי מפעיל ממטרה

3, חתול רץ לכריכה

4, וידאו מועלה אוטומטית ליוטיוב להנאת הצפייה

שלב 3: זמן קידוד

לשים את זה ביחד
לשים את זה ביחד

באמצעות openCV באמצעות חיסור מסגרות אתה יכול למצוא אזורים במסגרת שמשתנים עם הזמן, בעזרת כמה פונקציות נוחות תוכל להבין עד כמה השינויים האלה גדולים ואם הם נמשכים לאורך זמן, והכי חשוב לברר אם הם בגודל של חתול.

ישנן לא מעט הדרכות בנושא חיסור מסגרות אשר נכנסות לפרטי פרטים אם מבצעים חיפוש מהיר בגוגל.

סקירה כללית של אופן הפעולה של הקוד

1, המצלמה ממשיכה לצלם מסגרות ולהשוות אותן לאחרונה

2, אם מזוהה צורה בגודל חתול מצוין

3, אם השינוי בגודל החתול נמשך על פני כ -4 מסגרות, הפאי משתמש ב- GPIO שלו כדי להעביר ממסר להפעלה של ארדואינו

4, הארדואינו שולח אות להפעלת הממסר השני למשך 5 שניות אשר מפעיל את הסולנואיד

5, הסולנואיד כשהוא מופעל מאפשר מים לממטר

6, בזמן שהמטרה פעילה המצלמה מפסיקה לזהות ולהקליט וידאו

7, הסרטון מועלה ליוטיוב

8, סטילס שהועלו לדרופבוקס למערכת כוונון עדין

הערה - מדוע השתמשתי בשני ממסרים וארדואינו להפעלת סולנואיד למשך 5 שניות …

1, ה- pi לא יכול להתחיל ולעצור את הסולנואיד בזמן הקלטת הווידיאו כשהפייתון של פייתון מושהה עד שהסרטון מסתיים, ומכאן הצורך בארדואינו (או 555 טיימר) לאפשר לסולנואיד להיפתח ולסגור עצמאי לתסריט בזמן שה- הסרטון עדיין מוקלט.

2, ניתן להחליף את הממסר הראשון ואת הארדואינו עם טיימר 555 אך זה לא הגיע בפוסט בזמן לפרויקט זה, 555 יחסוך הרבה זמן וצעדים.

3, ה- pi לא יכול להפעיל את הסולנואיד ישירות מכיוון שהפי GPIO פועל על 3.3v ו- 51mA מקסימום, והסולנואיד רוצה 5V והרבה יותר מ -51mA כדי להפעיל.

4, ניתן לחתוך כל מסגרת להסרת זיהוי תנועה באזורים לא רצויים, כגון גן שכנים. אי ביצוע זה יגרום לכך שהשכן האמור יתן מבט מבולבל אל הגינה שלך מכיוון שהמטרה נכבה בכל פעם שהוא רוצה להיכנס לסככה שלו.

5, כנראה פספסתי משהו ברור ובזבזתי את זמני בהגדרת אותו כך.

קוד להלן

יבוא cv2import numpy כמו np יבוא argparse #cat זמן ייבוא 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 #ממסר טריגר GPIO.output (11, True) time.sleep (.5) הדפסת GPIO.output (11, False) ("צילום וידאו") נסה: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #העלה להדפסת YouTube ("מעלה ל- YouTube") מערכת הפעלה. system ('sudo youtube-upload --title = "חתול נרטב {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #הסר קובץ וידיאו בסיום os.remove ('vid {0}.h264'.format (vidname)) הדפסה ("הסרטון הועלה והוסר מפי") למעט: העבר #-------------------- ---------------------------- סטילס לדרופבוקס ------------------- -------------------- def St. illsToDropbox (): print ("מעלה עדיין ל- Dropbox פונקציה") access_token = 'אה אה אה, לא אמרת את מילת הקסם … אה אה אה, לא אמרת את מילת הקסם' ctime = time.strftime (" %H:%M:%S ") cdate = time.strftime ("%d-%m-%Y ") נסה: 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
תוצאות
תוצאות

כשזה עובד זה עובד

שלב 6: חיובי שווא

חיובי שווא
חיובי שווא

כשזה לא מרסס צללים של חתולים, אשתך ובתך.

טיפ טיפ - הניחו מתג ליד הדלת המשהה את תוכנית זיהוי התנועה….. ואז שכחו להשתמש בה ולהספוג כשמוציאים את הפחים.

מקווה שעשיתי כל מומחה לתכנות, אלקטרוניקה ועושה DIY עם כל הטעויות שכנראה עשיתי, ובעיקר מקווה שנהנית מכל שגיאות הכתיב שלי.

מוּמלָץ: