Оглавление:
- Шаг 1. Необходимые основные элементы
- Шаг 2: Система
- Шаг 3: время кодирования
- Шаг 4: Собираем все вместе
- Шаг 5: результаты
- Шаг 6: ложные срабатывания
Видео: Cat-a-way - Спринклер для кошек с компьютерным зрением: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Проблема - Кошки используют ваш сад как туалет
Решение - потратьте слишком много времени на разработку спринклера для кошек с функцией автоматической загрузки на YouTube.
Это не пошаговая инструкция, а обзор конструкции и некоторый код.
#BeforeYouCallPETA - С кошками все в порядке, это разбрызгиватель низкого давления, как дождь, и они могут убежать, прежде чем он даже повернется к ним. Проект состоит не в том, чтобы замочить кошку, а в том, чтобы показать ее, прежде чем они засорят мой сад кошачьей версией Barkers Eggs.
Шаг 1. Необходимые основные элементы
Raspberry Pi zero и SD-карта
Камера Raspberry Pi
Реле
555 таймер…. (или Arduino и другое реле, если ваши таймеры 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,3 В и 51 мА, а для срабатывания соленоида требуется 5 В и намного больше 51 мА.
4. Каждый кадр можно обрезать, чтобы убрать обнаружение движения в нежелательных областях, например в саду соседей. В противном случае сосед будет недоуменно смотреть на ваш сад, потому что ороситель срабатывает каждый раз, когда он хочет войти в свой сарай.
5, я, наверное, пропустил что-то очевидное и зря потратил время на его настройку.
Код ниже
import cv2import numpy as np import argparse #cat import time import RPi. GPIO as GPIO import os import dropbox from picamera.array import PiRGBArray from picamera import 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 ("Принимая видео") попробуйте: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Upload to 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: ложные срабатывания
Когда этого не происходит, он распыляет кошачьи тени, вашу жену и вашу дочь.
Совет - поставьте возле двери выключатель, который приостанавливает программу обнаружения движения….. затем забудьте его использовать и промокните при выставлении мусорных баков.
Надеюсь, что я заставил любого эксперта по программированию, электронике и самоделкам съежиться от всех ошибок, которые я, вероятно, сделал, и особенно надеюсь, что вам понравились все мои орфографические ошибки.
Рекомендуемые:
Ремонтник для грустных кошек, Игрушка для кошек "Поймай меня" - школьный проект: 3 шага
Sad Cat Fixer, Catch-Me Cat Toy - школьный проект: Вот наш продукт, это интерактивная игрушечная мышь: Catch-Me Cat Toy. Вот список проблем, с которыми сталкиваются многие кошки в нашем обществе: Кошки в наши дни становятся малоподвижными и подавленными, им нечего делать. Большинство владельцев заняты работой или учебой, а ваше
Руководство по ходьбе для улучшения мобильности людей с ослабленным зрением: 6 шагов
Руководство по ходьбе для улучшения мобильности людей с ослабленным зрением: цель руководства - разработать руководство по ходьбе, которое могло бы использоваться людьми с ограниченными возможностями, особенно с ослабленным зрением. Инструктируемый намеревается исследовать, как можно эффективно использовать прогулочное руководство, чтобы требования к дизайну
Расширенные возможности автобуса для людей с ослабленным зрением с помощью Arduino и 3D-печати: 7 шагов
Повышение удобства работы на автобусе для людей с ослабленным зрением с помощью Arduino и 3D-печати: как можно упростить поездки на общественном транспорте для людей с ослабленным зрением? Данные в режиме реального времени на картографических сервисах часто ненадежны при использовании общественного транспорта. слабовидящие люди. Т
PiTextReader - простой в использовании читатель документов для людей с ослабленным зрением: 8 шагов (с изображениями)
PiTextReader - простой в использовании читатель документов для людей с ослабленным зрением: обзорОбновление: короткое демонстрационное видео: https://youtu.be/n8-qULZp0GoPiTextReader позволяет людям с ослабленным зрением «читать» текст с конвертов, писем и других предметов. Он делает снимки изображения объекта, преобразует его в обычный текст с помощью OCR (Optical Char
Инвалидная коляска с компьютерным зрением и манекеном: 6 шагов (с изображениями)
Инвалидная коляска с компьютерным зрением и манекеном: проект AJ Sapala, Fanyun Peng, Kuldeep Gohel, Ray LC, инструктируемый AJ Sapala, Fanyun Peng, Ray LC. Мы создали инвалидную коляску с колесами, управляемыми с помощью платы Arduino, которая, в свою очередь, управляется Raspberry Pi, работающий с openCV через Processing