Obsah:

Automatické sledovanie Water Blaster: 9 krokov
Automatické sledovanie Water Blaster: 9 krokov

Video: Automatické sledovanie Water Blaster: 9 krokov

Video: Automatické sledovanie Water Blaster: 9 krokov
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #3 2024, November
Anonim
Automatické sledovanie Water Blaster
Automatické sledovanie Water Blaster

Ružožravé jelene ma motivovali postaviť vodný blaster na sledovanie cieľa, ktorý by mal odradiť nenásytných tvorov … Tento vodný blaster používa na rozpoznanie serva detekciu pohybu na základe videa a spustenie krátkych dávok vody na cieľ. Strieľa sa len vtedy, keď je získaný cieľ niekoľko sekúnd nehybný (oneskorenie je možné nastaviť v kóde). Je mi jedno, či jelene len tak prechádzajú, ale ak sa zastavia na občerstvenie, sploosh!

Tu je video, ako testujem vodný blaster:

Water blaster je samostatný box, ku ktorému je možné vzdialene pripojiť (prostredníctvom wi-fi/VNC) z akéhokoľvek počítača vo vašej sieti a monitorovať, čo robí. Pri každom spustení sa urobí obrázok, aby ste neskôr mohli vidieť, čo bolo odstreľované.

Na vytvorenie tohto vodného blastera na sledovanie dňa/noci som použil Raspberry Pi, kameru NoIR, IR iluminátor, štandardné lineárne servo a vodný ventil. Kód je napísaný v jazyku Python a ťaží si predovšetkým zo vzoriek kódu na spracovanie obrazu cv2 od Adriana Rosebrocka. Jeho zápis nájdete na:

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

Keďže idem za relatívne veľkými pozemnými cieľmi (jeleň), môj problém je trochu zjednodušený. Vyžadujem iba horizontálne zameriavanie, aby som sa mohol dostať von s použitím iba jedného serva. Čakanie, kým jeleň zostane stáť, mi pomáha eliminovať množstvo falošných spúšťačov. Toto je môj pokus o rev-0 a našiel som niekoľko vecí, ktoré by som zmenil, keby som postavil ďalšie. Tieto veci som zaznamenal v nasledujúcom podrobnom zápise.

Krok 1: Kód

Vodný blaster používa na spracovanie Raspberry Pi 3. Na snímanie videa sa používa kamera NoIR Raspberry Pi spolu s IR iluminátorom na nočné video. Balík OpenCV/cv2 Python sa používa na zachytenie a spracovanie informácií o obrázku a výpočet cieľových súradníc. Knižnica pigpio sa používa na ovládanie gpio na stabilnú prevádzku servo. Použitie bežného balíka RPi. GPIO viedlo k roztrasenému servu. POZNÁMKA: Pri použití knižnice pigpio musíte spustiť démona pigpio. Pridajte to do štartovacieho súboru /etc/rc.local vášho Pi pre rozhranie pigpio lib a rozhranie fotoaparátu Raspberry Pi:

/etc/rc.local# Nastaviť/dev/video0 na prepojenie s rozhraním Raspberry Pi vstavaným rozhraním kamery bcm2835-v4l2# Spustiť démona pigpio pre riadiacu knižnicu Raspberry Pi IO

Bližšie informácie nájdete na

Zdrojový kód má názov: water_blaster.py a je priložený nižšie.

Disclaimer: Som nový v kódovaní Pythonu, takže ho nepokladajte za žiadny skvelý model štýlu kódovania Python!

Základný algoritmus je nasledujúci:

  • Získajte úvodný referenčný rámec videa. Toto bude použité na porovnanie s detekciou pohybu.
  • Uchopte ďalší rám.
  • Premeňte rám na sivú škálu, upravte jeho veľkosť a rozmazajte ho.
  • Vypočítajte rozdiel z referenčného rámca
  • Odfiltrujte malé rozdiely a získajte súradnice najväčšieho rozdielu.
  • Nastavte časovač. Ak sa cieľová súradnica niekoľko sekúnd nezmení, odfoťte, čo sa chystáme vystreliť, a spustite vodný ventil na výbuch vody. Posuňte servo dopredu a dozadu o niekoľko stupňov, aby došlo k výbuchu „brokovnice“.
  • Ak získame tri spúšťače príliš rýchlo, vypnite snímanie, trochu sa pozastavte a potom aktualizujte referenčný rámec, pretože pravdepodobne snímame tieňové alebo verandové svetlo, ktoré bolo práve zapnuté …
  • Každých pár minút aktualizujte referenčný rámec tak, aby zohľadňoval zmeny nízkych frekvencií (východ/západ slnka, prechod zatiahnutého počasia atď.)

Používam iba horizontálny zameriavací mechanizmus, ale na EBay je k dispozícii mnoho montážnych držiakov naklonenia a naklonenia a ak by ste chceli presnejšie zameranie, bolo by ľahké pridať ďalšie servo na ovládanie vertikálneho zameriavania.

Nastavil som, aby Raspberry Pi bežal ako server VNC, potom sa k nemu pripojím prostredníctvom VNC z prenosného počítača, aby som spustil program a monitoroval video a protokoly. cd do adresára, kde ukladáte water_blaster.py a spustite ho zadaním:

./python water_blaster.py

Otvorí sa okno monitora videa, spustí sa súbor denníka s názvom „./log_[date]_[time] a vytvorí podadresár s názvom„ trigger_pictures “, kde sú uložené súbory-j.webp

Tu je niekoľko poznámok k nastaveniu VNC na vašom Raspberry Pi:

Pri prvom nastavení Raspberry Pi som na nastavenie použil externý monitor/klávesnicu/myš. Tam som povolil server VNC na konfigurácii RasPi (Logo Raspberry / Predvoľby / Konfigurácia Raspberry Pi / Rozhrania / Kontrola možnosti VNC). Potom, keď sa spustí, vám umožní pripojiť sa k jeho: 0 displeju prostredníctvom klienta VNC (s rovnakými povereniami ako predvolený používateľ „pi“).

V bezhlavom režime je predvolene zobrazený displej s veľmi malým rozlíšením (pretože nedetekuje žiadny displej). Aby ste ho prinútili dosiahnuť vyššie rozlíšenie, pridajte ho do súboru /boot/config.txt a reštartujte:

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

Tu je niekoľko ďalších informácií:

Krok 2: Elektronika

Požiadavky na elektroniku vodného blastera sú pri použití Raspberry Pi 3 gpio na pohon serva, vodného ventilu a infračerveného iluminátora pomocou diskrétnych tranzistorových vyrovnávacích pamätí (postavené na malej proto doske) minimálne. Štandardná kamera NoIR sa pripája priamo k Raspberry Pi.

Názov schémy je: water_blaster_schematic.pdf a je pripojený nižšie.

Použil som vyhradený zdroj 5v/2,5A pre Raspberry Pi a napájanie 12v/1A na pohon IR iluminátora a vodného ventilu. Napájanie 12 V poháňa aj 5 V regulátor na napájanie 5 V serva. To sa vykonalo tak, aby bol „hlučný“riadiaci výkon motora izolovaný od zdroja Raspberry Pi 5v. Ukázalo sa, že napájanie 12v/1A je presne na svojej hranici (v skutočnosti mierne viac, ako som pridal ventilátor). Kód vypne IR žiarič pred napájaním relé vodného ventilu, aby udržal prúdový odber v dosahu … Bolo by lepšie, keby ste použili napájanie 1,5 A. Nezabudnite prepojiť uzemňovacie svorky všetkých zdrojov napájania.

Modul kamery je štandardná verzia NoIR, ktorá sa pripája priamo k Raspberry Pi. Je to kamera Raspberry Pi s už odstráneným infračerveným filtrom, ktorá umožňuje použitie s IR iluminátorom na snímanie nočného videa.

Použité servo je štandardne dodávané 5v lineárne servo s krútiacim momentom 3-4 kg-cm.

IR iluminátor bol nízkonákladový 48 LED krúžok, ktorý som našiel na EBay za približne 4 doláre. Nie je to veľmi silné a môže sa osvetliť iba asi na 15 stôp. Ak máte dodatočný rozpočet, bolo by dobré získať silnejší iluminátor.

Do gpio23 som pridal „ladiaci prepínač“. Kód kontroluje stav spínača a po stlačení vypne relé vodného ventilu na testovanie požiaru na sucho. Myslel som si, že s týmto prepínačom urobím viac, ale nakoniec som ho vôbec nepoužil. Odstránil by som to a kód, ktorý to hľadá …

Krok 3: Konštrukcia: Fotoaparát a IR iluminátor

Konštrukcia: Kamera a IR iluminátor
Konštrukcia: Kamera a IR iluminátor

Ako ohradu som použil plastový box na náboje Harbour Freight. Hlavne som potreboval niečo odolné voči vode, pretože veľa vodného postreku/odtoku je nevyhnutné. Existuje veľa dier/výrezov, ale sú zakryté markízami, čírym plastom alebo sú vyvŕtané pod prevismi, aby vyliali vodu. V zadnom pohľade som mal použiť kovovú skrinku s chladičmi vnútorne pripevnenými k vysoko výkonným komponentom. Myslím si, že by som sa tomu mohol vyhnúť pridaním ventilátora. Plastový box bol príliš izolačný a dovolil príliš zvýšiť vnútornú teplotu.

Na konci bolo vyrezané malé okno, na ktoré sa kamera pozerala von, a infračervený žiarič bol namontovaný do starého plastového puzdra na šošovky, okolo ktorého som ležal.

Krok 4: Konštrukcia: Vodovodné potrubie

Konštrukcia: vodné potrubie
Konštrukcia: vodné potrubie
Konštrukcia: vodné potrubie
Konštrukcia: vodné potrubie

Prívod vody je vedený do 12 V vodného ventilu, ktorý je pripojený k vinylovej trubici s vnútorným priemerom ID”ID x 3/8” OD. To je zase pripojené k ¼”ostnatej hadici k ¾ sklopnému konektoru PVC a prilepené k ¾” vodnému uzáveru z PVC s otvorom 1/16”vyvŕtaným pre prúd vody. Chcel som udržať relé vodného ventilu mimo počasia, aby bolo namontované vo vnútri skrinky. Existuje nebezpečenstvo, že by som mohol uniknúť, ale v spodnej časti krabice som vyvŕtal odtokové otvory a namontoval som elektroniku vysoko, aby som minimalizoval pravdepodobnosť potenciálneho poškodenia elektroniky vodou, ak k tomu dôjde. Menej esteticky, ale bezpečnejší plán by bolo namontovať ventil na vonkajšiu stranu a spustiť 12 V reléové vodiče vo vnútri. Priehľadný plastový disk cez servo bol pohodlný spôsob, ako namontovať koniec hadice a zabraňuje kvapkaniu vody na servo. Ventilátor bol dodatočný nápad, pretože box sa príliš zahrieval. Postavil som nad ňu malú markízu, aby do nej kvapkala voda.

Krok 5: Konštrukcia: mieriace servo

Konštrukcia: mieriace servo
Konštrukcia: mieriace servo

Do hornej časti škatule je vyrezaný otvor a nasmerované servo je namontované a utesnené silikónom, aby sa zabránilo úniku vody.

Krok 6: Konštrukcia: Montáž napájacích zdrojov, ventilátora, Raspberry Pi a proto-board

Konštrukcia: Montáž napájacích zdrojov, ventilátora, Raspberry Pi a proto-board
Konštrukcia: Montáž napájacích zdrojov, ventilátora, Raspberry Pi a proto-board

Dva napájacie zdroje (5 V a 12 V) sú zapojené do jedného napájacieho kábla, ktorý vychádza z bočnej časti škatule. Raspberry Pi a proto doska sú namontované na boku skrinky v hornej časti. Všimnite si odtokové otvory vyvŕtané v spodnej časti a vetracie otvory vyvŕtané pozdĺž horného okraja. Ventilátor je namontovaný oproti Raspberry Pi. Neexistuje žiadny vypínač, pretože nechcem podporovať vypnutie Raspberry Pi bez formálneho príkazu „sudo shutdown now“(t.j. nechcem vypnúť napájanie príliš ľahko).

Krok 7: Výstavba: rada proto

Konštrukcia: rada proto
Konštrukcia: rada proto

Doska proto obsahuje 5 V regulátor, kryt filtra, výkonové tranzistory (ktoré poháňajú servo a vodný ventil) a ladiaci spínač.

Krok 8: Konštrukcia: kamera Raspberry Pi

Konštrukcia: Kamera Raspberry Pi
Konštrukcia: Kamera Raspberry Pi

Kamera Raspberry Pi sa pripája priamo na Raspberry Pi pomocou plochého kábla a je upevnená na priehľadnej plastovej doske zakrývajúcej výrez na sledovanie v prednej časti škatule.

Krok 9: Zoznam dielov

Projekt stál nakoniec zhruba 120 dolárov. Väčšinu nákladov na projekt tvorí Raspberry Pi, kamera, servo a napájacie zdroje. Väčšinu dielov som našiel na EBay alebo Amazon a inštalatérske diely v miestnom železiarstve.

  • Raspberry Pi 3 (Amazon) 38 dolárov
  • Kamera NoIR (EBay) 30 dolárov
  • 5v analógové servo (krútiaci moment 4 kg-cm) (EBay) 10 dolárov
  • Napájanie na stenu 5v/2,4A (EBay) 8 dolárov
  • 12 ½”vodný ventil (EBay) 5 dolárov
  • Hadice, potrubné spojky (Osh) 5 dolárov
  • Plastový box na muníciu (prístavná doprava) 5 dolárov
  • Napájanie na stenu 12 V/1,5 A (EBay) 5 dolárov
  • IR iluminátor (EBay) 4 doláre
  • Rôzne Komponenty (odpory, prepínače, diódy) 2 doláre
  • CPU ventilátor (EBay) 2 doláre
  • Proto Board, vzpery, skrutky (EBay) 2 doláre
  • (2) Výkonové tranzistory (2n5296) (EBay) 1 dolár
  • 5v regulátor (LM7805) (EBay) 1 dolár
  • Priehľadný plast 3/32”(rôzny kôš na plasty) 1 dolár
  • Napájací kábel (Osh) 1 dolár

Obchody/weby, kde som kúpil položky:

  • Stránka Aliceay10101983 EBay:
  • Stránka 2bevoque EBay:
  • Prístavná nákladná doprava
  • Hardvér na dodávky sadov
  • Amazon
  • Klepnite na položku Plasty

Odporúča: