Съдържание:

Автоматично проследяване на Water Blaster: 9 стъпки
Автоматично проследяване на Water Blaster: 9 стъпки

Видео: Автоматично проследяване на Water Blaster: 9 стъпки

Видео: Автоматично проследяване на Water Blaster: 9 стъпки
Видео: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Юли
Anonim
Автоматично проследяване на Water Blaster
Автоматично проследяване на Water Blaster

Еленът, който яде рози, ме мотивира да създам воден бластер за проследяване на целта, който да помогне за възпиране на ненаситните същества … Този воден бластер използва видео базирано откриване на движение, за да насочи серво и да задейства кратки изблици на вода към целта. Той стреля само след като придобита цел е неподвижна за няколко секунди (забавянето може да се регулира в кода). Не ме интересува дали елените просто се разхождат, но ако спрат да похапнат, пич!

Ето едно видео, на което тествам водния бластер:

Водният бластер е самостоятелна кутия, която може да бъде дистанционно свързана (чрез wi-fi/VNC) от всеки компютър във вашата мрежа, за да следи какво прави. Той прави снимка всеки път, когато се задейства, така че по -късно можете да видите какво се взривява.

Използвах Raspberry Pi, NoIR камера, IR осветител, стандартно линейно серво и воден клапан, за да създам този ден/нощ, проследяване на целта воден бластер. Кодът е написан на Python и заема основно от примерни кодове за обработка на изображения на Adrian Rosebrock cv2. Можете да видите как той пише на:

www.pyimagesearch.com/2015/06/01/home-surv…

Тъй като преследвам относително големи наземни цели (елени), проблемът ми е донякъде опростен. Искам само хоризонтално насочване, за да мога да се измъкна само с едно серво. Чакането на елените да стои неподвижно ми помага да премахна много фалшиви задействания. Това е моят опит за rev-0 и открих няколко неща, които бих променил, ако построя още едно. Забелязах тези неща в подробното описание, което следва.

Стъпка 1: Кодът

Водният бластер използва Raspberry Pi 3 за обработка. За заснемане на видео се използва камера NoIR Raspberry Pi заедно с IR осветител за нощно видео. Пакетът OpenCV/cv2 Python се използва за улавяне и обработка на информация за изображението и изчисляване на координатите на целта. Библиотеката pigpio се използва за управление на gpio за стабилна серво работа. Използването на обикновения пакет RPi. GPIO доведе до нестабилно серво. ЗАБЕЛЕЖКА: Когато използвате библиотеката pigpio, трябва да стартирате демона pigpio. Добавете това към стартиращия файл на вашия Pi /etc/rc.local за pigpio lib и интерфейса на камерата Raspberry Pi:

/etc/rc.local# Настройте/dev/video0 за връзка към вграден интерфейс на Raspberry Pi в камератаmodprobe bcm2835-v4l2# Стартирайте демона pigpio за библиотеката за управление на IO на Raspberry Pipigpiod

Вижте https://pypi.python.org/pypi/pigpi за повече подробности.

Изходният код е с име: water_blaster.py и е приложен по -долу.

Отказ от отговорност: Аз съм нов в кодирането на Python, така че не го третирайте като някакъв страхотен модел на кодиращ стил на Python!

Основният алгоритъм е следният:

  • Вземете първоначален референтен кадър за видео. Това ще се използва за сравнение срещу откриване на движение.
  • Вземете друга рамка.
  • Преобразувайте рамката в сива скала, оразмерете я, размажете я.
  • Изчислете разликата от референтната рамка
  • Филтрирайте малки разлики, вземете координати на най -голямата разлика.
  • Задайте таймер. Ако координатата на целта не се промени за няколко секунди, тогава направете снимка на това, което предстои да стреляме и задействаме водния клапан за взрив на вода. Преместете сервото напред и назад с няколко градуса за „пушка“.
  • Ако получим три задействания твърде бързо, деактивирайте снимането, направете малко пауза, след това актуализирайте референтната рамка, тъй като може да снимаме на сянка или светлина на верандата, която току -що беше включена …
  • На всеки няколко минути актуализирайте референтната рамка, за да отчетете нискочестотните промени (изгрев/залез на слънцето, нанасяне на облаци и т.н.)

Използвам само хоризонтален механизъм за насочване, но на EBay се предлагат много серво монтиране с накланяне и накланяне и би било лесно да се добави друго серво за управление на вертикалното насочване, ако искате по -прецизно насочване.

Настройвах Raspberry Pi да работи като VNC сървър, след което се свързвам с него чрез VNC от моя лаптоп, за да стартирам програмата и да наблюдавам видеото и регистрационните файлове. cd в директорията, където съхранявате water_blaster.py и я стартирайте, като въведете:

./python water_blaster.py

Той ще отвори прозорец на видео монитор, ще стартира регистрационен файл с име "./log_[date]_[time] и ще създаде под-директория с име" trigger_pictures ", където се съхраняват-j.webp

Ето някои бележки относно настройването на VNC на вашия Raspberry Pi:

Първият път, когато настройвах Raspberry Pi, използвах външен монитор/клавиатура/мишка, за да настроя нещата. Там активирах VNC сървъра в конфигурацията на RasPi (Лого на Raspberry / Предпочитания / Конфигурация на Raspberry Pi / Интерфейси / Опция за проверка на VNC). След това, когато се стартира, той ви позволява да се свържете с неговия: 0 дисплей чрез VNC клиент (със същите идентификационни данни като потребителя по подразбиране "pi").

В режим без глава той по подразбиране показва много малка разделителна способност (тъй като не открива никакъв дисплей), за да го принудите към някаква по -голяма разделителна способност, добавяте това към /boot/config.txt и рестартирате:

# Използвайте, ако имате дисплей# hdmi_ignore_edid = 0xa5000080hdmi_group = 2# 1400x1050 w/ 60Hz# hdmi_mode = 42# 1356x768 w/ 60Hzhdmi_mode = 39

Ето още малко информация:

Стъпка 2: Електрониката

Изискванията към електрониката за воден бластер са минимални, като се използва Raspberry Pi 3 gpio за задвижване на серво, воден клапан и инфрачервен осветител чрез дискретни транзисторни буфери (изградени върху малка прото платка). Стандартна камера NoIR се включва директно в Raspberry Pi.

Името на схемата е: water_blaster_schematic.pdf и е приложено по -долу.

Използвах 5v/2.5A специално захранване за Raspberry Pi и 12v/1A захранване за задвижване на IR осветителя и водния вентил. Захранването 12v също така задвижва 5v регулатор за захранване на 5v серво. Това беше направено, за да се запази "шумната" мощност на управлението на двигателя изолирана от захранването Raspberry Pi 5v. Захранването 12v/1A се оказа точно на границата си (всъщност малко повече, след като добавих вентилатора). Кодът изключва инфрачервения осветител, преди да захранва релето на водния вентил, за да поддържа текущото потребление в обхвата … Би било по -добре, ако използвате захранване 1.5A. Не забравяйте да свържете заземяващите клеми на всички захранвания заедно.

Модулът на камерата е стандартна версия на NoIR, която се включва директно в Raspberry Pi. Това е камера на Raspberry Pi с вече премахнат IR филтър, който позволява да се използва с IR осветител за заснемане на нощно видео.

Използваното серво е стандартно 5V линейно серво серво с 3-4 kg-cm въртящ момент.

Инфрачервеният осветител беше евтин 48 светодиоден пръстен, който намерих в EBay за около 4 долара. Не е супер силен и може да осветява само на около 15 фута. Ако имате допълнителен бюджет, получаването на по -силен осветител би било добро подобрение.

Добавих „превключвател за отстраняване на грешки“към gpio23. Кодът проверява състоянието на превключвателя и ако бъде натиснат, ще деактивира релето на водния вентил за изпитване на сух огън. Мислех, че ще направя повече с този превключвател, но изобщо не го използвах. Бих го премахнал и кода, който го търси …

Стъпка 3: Конструкция: Камера и IR осветител

Конструкция: Камера и IR осветител
Конструкция: Камера и IR осветител

Използвах пластмасова кутия за амуниции Harbour Freight като заграждение. Основно имах нужда от нещо водоустойчиво, тъй като много водни пръски/оттичане са неизбежни. Има много дупки/изрези, но те са покрити с тенти, прозрачна пластмаса или са пробити под надвеси за проливане на вода. Отзад трябваше да използвам метална кутия с радиатори, вътрешно прикрепени към компонентите с висока мощност. С това мисля, че бих могъл да избегна добавянето на вентилатора. Пластмасовата кутия беше твърде изолираща и позволи на вътрешната температура да се повиши твърде много.

Накрая беше изрязан малък прозорец, за да може камерата да види, а инфрачервеният осветител беше монтиран в стар пластмасов калъф за лещи, който лежах наоколо.

Стъпка 4: Строителство: Водопровод

Строителство: Водопровод
Строителство: Водопровод
Строителство: Водопровод
Строителство: Водопровод

Входът за вода е тръбопровод във 12v воден вентил, който е свързан с vin”ID x 3/8” OD винилова тръба. Това от своя страна е свързано с ¼”бодлива тръба за PVC connector съединител с плъзгане и залепена към ¾” PVC капачка за вода с отвор 1/16”, пробит за водния поток. Исках да запазя релето на водния вентил извън атмосферните условия, така че да е монтирано вътре в кутията. Има опасност да получа теч, но съм пробил дренажни отвори в дъното на кутията и съм монтирал електрониката високо нагоре, за да сведе до минимум вероятността от потенциални повреди на електрониката от вода, ако това се случи. По -малко естетически приятен, но по -безопасен план би бил монтирането на вентила отвън и прокарването на 12v релейните проводници вътре. Прозрачният пластмасов диск над сервото беше удобен начин за монтиране на края на маркуча и предпазва водата от капене надолу върху сервото. Вентилаторът беше допълнителна мисъл, тъй като кутията се загряваше твърде много. Изградих малка тента над него, за да не капе вода.

Стъпка 5: Конструкция: Насочване на серво

Конструкция: Насочване на серво
Конструкция: Насочване на серво

В горната част на кутията се врязва дупка и прицелният серво се монтира и запечатва със силиций, за да се запази водата.

Стъпка 6: Конструкция: Монтиране на захранващи устройства, вентилатор, Raspberry Pi и прото-платка

Конструкция: Монтиране на захранващи устройства, вентилатор, Raspberry Pi и прото-платка
Конструкция: Монтиране на захранващи устройства, вентилатор, Raspberry Pi и прото-платка

Двата захранвания (5v и 12v) са свързани към един захранващ кабел, излизащ отстрани на кутията. Raspberry Pi и прото платка са монтирани отстрани на кутията близо до горната част. Забележете дренажните отвори, пробити в долната част, и отворите за вентилация, пробити по горния ръб. Вентилаторът е монтиран срещу Raspberry Pi. Няма превключвател за включване/изключване, тъй като не искам да насърчавам изключването на Raspberry Pi без официална команда „sudo shutdown now“(т.е. не искам захранването да се изключва твърде лесно).

Стъпка 7: Конструкция: Proto Board

Конструкция: Proto Board
Конструкция: Proto Board

Прото платката съдържа 5v регулатор, капачка на филтъра, захранващи транзистори (които задвижват серво и воден клапан) и превключвател за отстраняване на грешки.

Стъпка 8: Конструкция: Raspberry Pi камера

Конструкция: Raspberry Pi камера
Конструкция: Raspberry Pi камера

Камерата Raspberry Pi се свързва директно с Raspberry Pi чрез лентов кабел и се монтира върху прозрачната пластмасова плоча, покриваща изреза за гледане в предната част на кутията.

Стъпка 9: Списък на частите

Проектът в крайна сметка струваше около 120 долара. По-голямата част от разходите по проекта са Raspberry Pi, камера, серво и захранвания. Намерих повечето части в EBay или Amazon и водопроводните части в местния магазин за хардуер.

  • Raspberry Pi 3 (Amazon) $ 38
  • NoIR камера (EBay) $ 30
  • 5v аналогово серво (въртящ момент 4 кг-см) (EBay) $ 10
  • 5v/2.4A захранване за стена (EBay) $ 8
  • 12v ½”воден клапан (EBay) $ 5
  • Тръби, съединители за тръби (Ош) $ 5
  • Пластмасова кутия за амуниции (Harbor Freight) $ 5
  • 12v/1.5A захранване за стена (EBay) $ 5
  • IR осветител (EBay) $ 4
  • Разни Компоненти (резистори, превключватели, диоди) $ 2
  • CPU Fan (EBay) $ 2
  • Proto Board, Стойки, Винтове (EBay) $ 2
  • (2) Захранващи транзистори (2n5296) (EBay) $ 1
  • 5v регулатор (LM7805) (EBay) $ 1
  • Изчистете пластмаса 3/32”(докоснете пластмаса Разно. Кошче) $ 1
  • Захранващ кабел (Ош) $ 1

Магазини/сайтове, където съм купувал артикули:

  • Alice1101983 Сайт на EBay:
  • 2bevoque EBay сайт:
  • Harbour Freight
  • Хардуер за снабдяване с овощни градини
  • Amazon
  • Докоснете Пластмаси

Препоръчано: