
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 14:36

Проблем - Котките използват вашата градина като тоалетна
Решение - Прекарайте твърде много време в разработването на пръскачка за котки с функция за автоматично качване в 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 да се свие с всички грешки, които вероятно съм направил, и особено се надявам да се насладите на всичките ми правописни грешки.
Препоръчано:
Устойчивост на Vision LED персонала: 11 стъпки (със снимки)

Устойчивост на Vision LED Staff: Известно е, че дори след като светлината е изключена, човешкото око продължава да "вижда" това за част от секундата. Това е известно като Persistence of Vision или POV и позволява на човек да „рисува“снимки чрез бързо преместване на лента
Малинов процесор PI Vision (SpartaCam): 8 стъпки (със снимки)

Raspberry PI Vision Processor (SpartaCam): Малинова PI система за обработка на зрението за вашия ПЪРВИ робот за състезания по роботика. За FIRST От Уикипедия, безплатната енциклопедия https://en.wikipedia.org/wiki/FIRST_Robotics_Compe … ПЪРВОТО състезание по роботика (FRC) е международно високо
Устойчивост на Vision Fidget Spinner: 8 стъпки (със снимки)

Постоянство на Vision Fidget Spinner: Това е fidget spinner, който използва ефекта Persistence of Vision, който е оптична илюзия, при която множество дискретни изображения се смесват в едно изображение в човешкия ум. Текстът или графиката могат да бъдат променени чрез Bluetooth Low Energy връзка чрез а П
Разпознаване на звезди с помощта на Computer Vision (OpenCV): 11 стъпки (със снимки)

Разпознаване на звезди с помощта на Computer Vision (OpenCV): Тази инструкция ще ви опише как да създадете програма за компютърно виждане за автоматично идентифициране на звездните модели в изображение. Методът използва библиотеката OpenCV (Open-Source Computer Vision) за създаване на набор от обучени каскади HAAR, които могат да бъдат
Микро: битов MU Vision сензор и цип плочка комбинирани: 9 стъпки (със снимки)

Micro: bit MU Vision Sensor и Zip Tile Комбинирани: Така че в този проект ще комбинираме MU зрителния сензор с Kitronik Zip Tile. Ще използваме сензора за зрение MU, за да разпознаваме цветовете и да получим Zip Tile, за да ни го покаже. Ще използваме някои от техниките, които сме използвали преди