Obsah:

Automatické sledování Water Blaster: 9 kroků
Automatické sledování Water Blaster: 9 kroků

Video: Automatické sledování Water Blaster: 9 kroků

Video: Automatické sledování Water Blaster: 9 kroků
Video: 🠠 HOTWAV POZNÁMKA 12 - PODROBNÁ RECENZE A TESTY 2024, Červenec
Anonim
Automatické sledování Water Blaster
Automatické sledování Water Blaster

Růžožraví jeleni mě motivovali k vybudování vodního blasteru sledujícího cíl, který by pomohl odradit nenasytné stvůry … Tento vodní blaster pomocí video detekce pohybu zaměřuje servo a spouští krátké výboje vody na cíl. Střílí pouze poté, co je získaný cíl na několik sekund nehybný (zpoždění lze upravit v kódu). Je mi jedno, jestli jeleni jen procházejí, ale pokud se zastaví na svačinu, sploosh!

Zde je video, jak testuji vodní blaster:

Water blaster je samostatný box, ke kterému lze vzdáleně připojit (přes wi-fi/VNC) z jakéhokoli počítače ve vaší síti a sledovat, co dělá. Po každém spuštění se vyfotí, abyste později mohli vidět, co bylo odstřeleno.

Použil jsem Raspberry Pi, kameru NoIR, IR iluminátor, standardní lineární servo a vodní ventil k vytvoření vodního blasteru pro sledování dne/noci. Kód je napsán v Pythonu a těžce si půjčuje ze vzorků kódu zpracování obrazu cv2 Adriana Rosebrocka. Jeho zápis můžete vidět na:

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

Protože jdu po relativně velkých pozemních cílech (jeleni), můj problém je poněkud zjednodušený. Vyžaduji pouze horizontální zaměřování, abych se mohl dostat pryč s použitím pouze jednoho serva. Čekání na zastavení jelenů mi pomáhá eliminovat spoustu falešných spouštěčů. Toto je můj pokus o rev-0 a našel jsem pár věcí, které bych upravil, kdybych postavil další. Tyto věci jsem zaznamenal v následujícím podrobném zápisu.

Krok 1: Kód

Water blaster používá ke zpracování Raspberry Pi 3. Pro pořizování videa se používá kamera NoIR Raspberry Pi spolu s IR iluminátorem pro noční video. Balíček OpenCV/cv2 Python se používá k zachycení a zpracování informací o obrázku a výpočtu cílových souřadnic. Knihovna pigpio se používá k ovládání gpio pro stabilní provoz serv. Použití běžného balíčku RPi. GPIO mělo za následek roztřesené servo. POZNÁMKA: Při používání knihovny pigpio potřebujete spustit démona pigpio. Přidejte toto do spouštěcího souboru /etc/rc.local vašeho Pi pro pigpio lib a rozhraní kamery Raspberry Pi:

/etc/rc.local# Nastavit/dev/video0 pro propojení s Raspberry Pi vestavěným kamerovým rozhraním bcm2835-v4l2# Spusťte démona pigpio pro ovládací knihovnu Raspberry Pi IO

Další podrobnosti najdete na stránce

Zdrojový kód se jmenuje: water_blaster.py a je připojen níže.

Disclaimer: Jsem nový v kódování Pythonu, takže to nepokládejte za žádný skvělý model stylu kódování Pythonu!

Základní algoritmus je následující:

  • Popadněte počáteční referenční snímek videa. To bude použito k porovnání s detekcí pohybu.
  • Popadněte další rámeček.
  • Převeďte snímek na stupnici šedi, upravte jeho velikost a rozostřete jej.
  • Vypočítejte rozdíl z referenčního rámce
  • Odfiltrujte malé rozdíly a získejte souřadnice největšího rozdílu.
  • Nastavte časovač. Pokud se cílová souřadnice na několik sekund nezmění, pak vyfoťte, co se chystáme vystřelit, a aktivujte vodní ventil pro výbuch vody. Posuňte servo několik stupňů dopředu a dozadu, aby došlo k výbuchu „brokovnice“.
  • Pokud získáme tři spouště příliš rychle, zakažte fotografování, trochu se pozastavte a poté aktualizujte referenční snímek, protože možná snímáme stínové nebo verandové světlo, které bylo právě zapnuto …
  • Každých několik minut aktualizujte referenční rámec tak, aby zohledňoval změny nízkých frekvencí (vycházející/zapadající slunce, zataženo atd.)

Používám pouze horizontální zaměřovací mechanismus, ale na EBay je k dispozici mnoho držáků pro otáčení/naklánění a pokud byste chtěli přesnější cílení, bylo by snadné přidat další servo pro ovládání vertikálního míření.

Nastavil jsem, aby Raspberry Pi běžel jako server VNC, pak se k němu připojím přes VNC z notebooku, abych spustil program a sledoval video a protokoly. cd do adresáře, kam ukládáte water_blaster.py a spusťte jej zadáním:

./python water_blaster.py

Otevře okno monitoru videa, spustí soubor protokolu s názvem „./log_[date]_[time] a vytvoří podadresář s názvem„ trigger_pictures “, kde jsou uloženy soubory-j.webp

Zde je několik poznámek k nastavení VNC na vašem Raspberry Pi:

Při prvním nastavení Raspberry Pi jsem k nastavení použil externí monitor/klávesnici/myš. Tam jsem povolil server VNC v konfiguraci RasPi (Logo Raspberry / Předvolby / Konfigurace Raspberry Pi / Rozhraní / Zkontrolovat možnost VNC). Poté, co se spustí, vám umožní připojit se k jeho zobrazení: 0 prostřednictvím klienta VNC (se stejnými přihlašovacími údaji jako výchozí uživatel „pi“).

V bezhlavém režimu je výchozí zobrazení s velmi malým rozlišením (protože nedetekuje žádný displej). Chcete -li jej přinutit k většímu rozlišení, přidejte toto do /boot/config.txt a restartujte:

# Použijte, pokud máte displej# hdmi_ignore_edid = 0xa5000080hdmi_group = 2# 1400x1050 w/ 60Hz# hdmi_mode = 42# 1356x768 w/ 60Hzhdmi_mode = 39

Zde je několik dalších informací:

Krok 2: Elektronika

Požadavky na elektroniku vodního blasteru jsou minimální, protože Raspberry Pi 3 gpio pohání servo, vodní ventil a IR iluminátor přes diskrétní tranzistorové pufry (postavené na malé proto desce). Standardní kamera NoIR se připojuje přímo k Raspberry Pi.

Název schématu je: water_blaster_schematic.pdf a je připojen níže.

Použil jsem vyhrazený zdroj 5v/2,5A pro Raspberry Pi a zdroj 12v/1A pro pohon IR iluminátoru a vodního ventilu. Napájení 12 V také pohání 5 V regulátor pro napájení 5 V serva. To bylo provedeno, aby byl „hlučný“řídicí výkon motoru izolován od napájení Raspberry Pi 5v. Ukázalo se, že napájení 12v/1A je na své hranici (ve skutečnosti mírně přesahující, jakmile jsem přidal ventilátor). Kód vypne IR osvětlení před napájením relé vodního ventilu, aby udržel odběr proudu v dosahu … Bylo by lepší, kdybyste použili napájení 1,5 A. Nezapomeňte spojit zemnicí svorky všech napájecích zdrojů dohromady.

Modul kamery je standardní verzí NoIR, která se připojuje přímo k Raspberry Pi. Jedná se o kameru Raspberry Pi s již odstraněným IR filtrem, což umožňuje použití s IR iluminátorem pro pořizování nočního videa.

Použité servo je standardní 5v lineární servo s točivým momentem 3-4 kg-cm.

IR iluminátor byl levný 48 LED kroužek, který jsem našel na EBay za asi 4 dolary. Není to příliš silné a může osvětlit pouze asi 15 stop. Pokud máte dodatečný rozpočet, bylo by dobré pořídit silnější iluminátor.

Do gpio23 jsem přidal „ladicí přepínač“. Kód kontroluje stav spínače a pokud je stisknut, deaktivuje relé vodního ventilu pro testování suchého ohně. Myslel jsem, že s tím přepínačem udělám víc, ale nakonec jsem ho vlastně vůbec nepoužíval. Odstranil bych to a kód, který to hledá …

Krok 3: Konstrukce: Kamera a IR iluminátor

Konstrukce: Kamera a IR iluminátor
Konstrukce: Kamera a IR iluminátor

Jako skříň jsem použil plastový box na náboje Harbour Freight. Hlavně jsem potřeboval něco voděodolného, protože spousta postřiku/odtoku vody je nevyhnutelná. Existuje spousta otvorů/výřezů, ale jsou zakryty markýzami, čirým plastem nebo jsou vyvrtány pod převisy, aby se zbavily vody. Při pohledu zezadu jsem měl použít kovovou skříňku s chladiči, které jsou vnitřně připevněny k vysoce výkonným součástem. Tím si myslím, že jsem se mohl vyhnout přidání ventilátoru. Plastový box byl příliš izolační a dovolil příliš zvýšit vnitřní teplotu.

Na konci bylo vyříznuto malé okénko, aby kameru viděla ven, a IR iluminátor byl namontován do starého plastového pouzdra na objektivy, kolem kterého jsem ležel.

Krok 4: Konstrukce: Vodovodní potrubí

Konstrukce: Vodní potrubí
Konstrukce: Vodní potrubí
Konstrukce: Vodní potrubí
Konstrukce: Vodní potrubí

Přívod vody je veden do 12 V vodního ventilu, který je připojen k vinylové trubce ¼”ID x 3/8“OD. To je zase připojeno k ¼”ostnatým hadičkám k ¾ protiskluzovému PVC konektoru a přilepeno k ¾” PVC uzávěru vody s otvorem 1/16”vyvrtaným pro vodní proud. Chtěl jsem udržet relé vodního ventilu mimo počasí, aby bylo namontováno uvnitř krabice. Existuje nebezpečí, že bych mohl uniknout, ale ve spodní části krabice jsem vyvrtal odtokové otvory a namontoval elektroniku vysoko, aby se minimalizovala šance na potenciální poškození elektroniky vodou, pokud k tomu dojde. Méně esteticky, ale bezpečnějším plánem by bylo namontovat ventil na vnější stranu a spustit 12v reléové kabely uvnitř. Čirý plastový kotouč přes servo byl pohodlný způsob, jak namontovat konec hadice, a zabraňoval kapání vody dolů na servo. Ventilátor byl nápad, protože krabice se příliš zahřívala. Postavil jsem přes něj malou markýzu, aby dovnitř neodkapávala voda.

Krok 5: Konstrukce: Zaměřovací servo

Konstrukce: Zaměřovací servo
Konstrukce: Zaměřovací servo

Do horní části krabice se vyřízne otvor a zamíří se servo a utěsní se silikonem, aby se zabránilo úniku vody.

Krok 6: Konstrukce: Montáž napájecích zdrojů, ventilátoru, Raspberry Pi a proto-boardu

Konstrukce: Montáž napájecích zdrojů, ventilátoru, Raspberry Pi a proto desky
Konstrukce: Montáž napájecích zdrojů, ventilátoru, Raspberry Pi a proto desky

Dva napájecí zdroje (5 V a 12 V) jsou zapojeny do jednoho napájecího kabelu, který vychází ze strany krabice. Raspberry Pi a proto deska jsou namontovány na boční straně krabice v horní části. Všimněte si odtokových otvorů vyvrtaných ve spodní části a větracích otvorů vyvrtaných podél horního okraje. Ventilátor je namontován naproti Raspberry Pi. Neexistuje žádný přepínač zapnutí/vypnutí, protože nechci podporovat vypnutí Raspberry Pi bez formálního příkazu „sudo shutdown now“(tj. Nechci vypnout napájení příliš snadno).

Krok 7: Stavba: rada Proto

Konstrukce: rada Proto
Konstrukce: rada Proto

Deska proto obsahuje 5v regulátor, krytku filtru, výkonové tranzistory (pohánějící servo a vodní ventil) a ladicí spínač.

Krok 8: Konstrukce: Kamera Raspberry Pi

Konstrukce: Raspberry Pi Camera
Konstrukce: Raspberry Pi Camera

Kamera Raspberry Pi se připojuje přímo k Raspberry Pi pomocí plochého kabelu a je upevněna na průhledné plastové desce pokrývající výřez pro sledování v přední části krabice.

Krok 9: Seznam dílů

Projekt nakonec stál zhruba 120 dolarů. Převážnou část nákladů na projekt tvoří Raspberry Pi, kamera, servo a napájecí zdroje. Většinu dílů jsem našel na EBay nebo Amazonu a instalatérské díly v místním železářství.

  • Raspberry Pi 3 (Amazon) 38 dolarů
  • Kamera NoIR (EBay) 30 $
  • 5v analogové servo (točivý moment 4 kg-cm) (EBay) $ 10
  • Napájení na stěnu 5v/2,4A (EBay) $ 8
  • 12 ½”vodní ventil (EBay) 5 $
  • Hadice, spojky (Osh) 5 $
  • Plastový box na munici (Harbour Freight) 5 $
  • Nástěnný napájecí zdroj 12 V/1,5 A (EBay) 5 $
  • IR iluminátor (EBay) $ 4
  • Různé Komponenty (odpory, spínače, dioda) $ 2
  • CPU Fan (EBay) $ 2
  • Proto Board, Standoffs, Screws (EBay) $ 2
  • (2) Výkonové tranzistory (2n5296) (EBay) $ 1
  • 5v regulátor (LM7805) (EBay) $ 1
  • Čirý plast 3/32”(Tap Plastics Misc. Bin) $ 1
  • Napájecí kabel (Osh) $ 1

Obchody/weby, kde jsem koupil položky:

  • Alice1101983 Web EBay:
  • Web 2bevoque EBay:
  • Přístavní nákladní doprava
  • Hardware pro dodávky sadů
  • Amazonka
  • Klepněte na Plasty

Doporučuje: