Съдържание:
- Стъпка 1: Изискват се основните елементи
- Стъпка 2: Системата
- Стъпка 3: Време за кодиране
- Стъпка 4: Сглобявайки го заедно
- Стъпка 5: Резултати
- Стъпка 6: Фалшиви позитиви
Видео: Cat-a-way-Cat Vision Cat Sprinkler: 6 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Проблем - Котките използват вашата градина като тоалетна
Решение - Прекарайте твърде много време в разработването на пръскачка за котки с функция за автоматично качване в YouTube
Това не е стъпка по стъпка, а преглед на конструкцията и някакъв код
#BeforeYouCallPETA - Котките са добре, пръскачката с ниско налягане, точно като дъжд, която може да изпревари, преди дори да се завърти около тях. Проектът не е да накисваме котка, а да ги изхвърлим, преди да затрупат градината ми с котешката версия на яйцата на Barkers.
Стъпка 1: Изискват се основните елементи
Raspberry Pi нула и SD карта
Камера Raspberry Pi
Реле
555 таймер …. (или ардуино и друго реле, ако вашите 555 таймера не пристигнат)
Соленоид
Разпръсквач
Някакъв корпус за електрониката
Желание да се удари метафоричен пирон с 6 -тонен чук
Камера с толкова малка разделителна способност, че едва виждате водата, но все пак виждате котките, тичащи за прикритие
Стъпка 2: Системата
1, Pi камерата открива обект с размер на котка, който се движи за няколко рамки на камерата (подробно в следващата стъпка)
2, Pi пуска пръскачката
3, Котката бяга за прикритие
4, Видео автоматично се качва в youtube за удоволствие от гледането
Стъпка 3: Време за кодиране
Използвайки openCV с помощта на изваждане на рамка, можете да намерите области от рамката, които се променят с течение на времето, като използвате някои изящни функции, можете да разберете колко големи са тези промени и дали продължават с течение на времето и най -важното да разберете дали те са с размер на котка.
Има доста уроци за изваждане на рамки, които навлизат много подробно, ако направите бързо търсене в Google.
Преглед на това как работи кодът
1, Камерата продължава да прави кадри и да ги сравнява с последните
2, Ако се открие форма на котка, се отбелязва
3, ако промяната в размера на котката продължава около 4 кадъра, pi използва своя GPIO за захранване на релето за стартиране на arduino
4, Arduino изпраща сигнал за захранване на второто реле за 5 секунди, което активира соленоида
5, соленоидът при захранване пропуска вода към пръскачката
6, Докато пръскачката е активна, камерата спира да открива и записва видео
7, Видеото се качва в Youtube
8, Кадри, качени в dropbox за система за фина настройка
Забележка - Защо в крайна сметка използвах 2 релета и arduino, за да включа соленоид за 5 секунди …
1, Pi не може да стартира и спира соленоида, докато записва видеото, докато скриптовете на python спират, докато видеото не приключи, следователно е необходимо arduino (или таймер 555) да позволи на соленоида да се отваря и затваря независимо от скрипта, докато видеото все още се записва.
2, Първото реле и arduino могат да бъдат заменени с таймер 555, но това не дойде навреме за този проект, 555 ще спести много време и пари.
3, pi не може да задейства соленоида директно, тъй като Pi GPIO работи на 3.3v и 51mA max, а соленоидът иска 5V и много повече от 51mA да се задействат.
4, Всеки кадър може да бъде изрязан, за да се премахне откриването на движение в нежелани зони, като например градина в съседство. Неспазването на това ще доведе до това съседът да хвърли объркан поглед във вашата градина, защото пръскачката излиза всеки път, когато иска да влезе в навеса си.
5, вероятно съм пропуснал нещо очевидно и си загубих времето, настройвайки го така.
Код по -долу
импортирайте cv2import numpy като np импортирайте argparse #cat време за импортиране импортирайте RPi. GPIO като GPIO импортирайте os импортирайте dropbox от picamera.array импортирайте PiRGBArray от пикамера импортирайте PiCamera #------------------ ------------------------------ Качете в 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 ("Taking Video") опитайте: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Качете в youtube print ("Качване в YouTube") os. system ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Премахнете видео файла, когато сте готови os.remove ('vid {0}.h264'.format (vidname)) print ("Видео качено и премахнато от Pi") с изключение на: pass #-------------------- ---------------------------- Продължава към dropbox ------------------- -------------------- def St 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 (filename) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (filename, image) image.close () os.remove ("ToDropbox-j.webp
#HowToTriggerRealProgrammersWithBadCode
Стъпка 4: Сглобявайки го заедно
Натъпчете електричеството във водоустойчив корпус, завийте нещата в стените и използвайте много тиксо и горещо лепило
Стъпка 5: Резултати
Когато работи, работи
Стъпка 6: Фалшиви позитиви
Когато това не стане, той пръска котешки сенки, жена ви и дъщеря ви.
Pro -tip - Поставете превключвател до вратата, който спира програмата за откриване на движение ….. след това забравете да го използвате и се накиснете, когато изваждате кофите.
Надявам се, че съм накарал някой експерт по програмиране, електроника и DIY да се свие с всички грешки, които вероятно съм направил, и особено се надявам да се насладите на всичките ми правописни грешки.
Препоръчано:
LED светлина (и) със захранване от батерията със слънчево зареждане: 11 стъпки (със снимки)
LED светлини (и), захранвани от батерии, със слънчево зареждане: Жена ми учи хората как да правят сапун, повечето от часовете й бяха вечер и тук през зимата се стъмва около 16:30 ч. Някои от нейните ученици имаха проблеми с намирането на нашите къща. Имахме табела отпред, но дори и с улично осветление
Лек хак за стая със зрителни увреждания със слухови увреждания: 7 стъпки (със снимки)
Лек хак на стаята със слухови увреждания на вратата: Проблем: баща ми е регистриран като глух, а майка ми е с увреден слух и поради това често им е трудно да чуят звънеца на вратата. Това би могло да бъде проблем, претърпян и от много други.Купиха мигащ светлинен звънец на вратата, за да им помогнат с
Висящи бижута със слънчево захранване на сърцето със светкавици: 11 стъпки (със снимки)
Висящи бижута със слънчево захранване за сърце: Тази инструкция е за сърце със слънчева енергия с пулсиращ червен светодиод. Той измерва около 2 " до 1,25 ", включително USB раздела. Той има една дупка през горната част на дъската, което улеснява окачването. Носете го като огърлица, обеци, връзки на щифт
Сандък със съкровище Zelda (със светлини и звук): 12 стъпки (със снимки)
Zelda Treasure Chest (With Lights & Sound): Здравейте на всички! Бях голям фен на игрите Legend of Zelda, когато бях по -малък, но мисля, че почти всеки знае емблематичната мелодия, която свири, когато отворите сандък в играта, просто звучи толкова вълшебно! В тази инструкция ще ви покажа как
Персонализиран часовник със стрелки за снимки: 5 стъпки (със снимки)
Персонализиран часовник със стрелки за снимки: Някои хора наблюдават часовника. Сега всеки може да бъде часовник. Други проекти персонализират лицето на часовника. Този персонализира стрелките на часовника. Изглежда скъп, но е по -малко от 5 долара и около 30 минути на часовник. Перфектен за Chr