Sadržaj:

Automatski praćenje Water Blaster: 9 koraka
Automatski praćenje Water Blaster: 9 koraka

Video: Automatski praćenje Water Blaster: 9 koraka

Video: Automatski praćenje Water Blaster: 9 koraka
Video: BLACKVIEW X1 Smart Watch: Things To Know // Real Life Review 2024, Srpanj
Anonim
Water Blaster sa automatskim praćenjem
Water Blaster sa automatskim praćenjem

Jeleni koji jedu ruže motivirali su me da napravim vodeni blaster za praćenje ciljeva koji će spriječiti proždrljive životinje … Ovaj blaster za vodu koristi detekciju pokreta temeljenu na videu kako bi usmjerio servo i pokrenuo kratke rafale vode u metu. Puca tek nakon što stečena meta miruje nekoliko sekundi (kašnjenje se može podesiti u kodu). Nije me briga prolaze li srne, ali ako svrate na međuobrok, sploosh!

Evo video snimka na kojem testiram vodeni blaster:

Water blaster je samostalna kutija koja se može daljinski povezati (putem wi-fi/VNC) sa bilo kojeg računala na vašoj mreži kako bi nadzirala što radi. Svaki put kad se aktivira, slika se, pa kasnije možete vidjeti što je sve uništeno.

Koristio sam Raspberry Pi, NoIR kameru, IR osvjetljivač, standardni linearni servo i vodeni ventil za stvaranje ovog danonoćnog ciljanog pražnjenja vode. Kôd je napisan na Pythonu i uvelike posuđuje uzorke koda za obradu slika Adrian Rosebrocka cv2. Njegovo pisanje možete vidjeti na:

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

Budući da lovim relativno velike kopnene mete (jelene), moj je problem donekle pojednostavljen. Zahtijevam samo vodoravno ciljanje kako bih se mogao izvući koristeći samo jedan servo. Čekanje da jelen stane mi pomaže u uklanjanju mnogih lažnih okidača. Ovo je moj pokušaj rev-0 i pronašao sam nekoliko stvari koje bih izmijenio da sam napravio još jednu. Ove sam stvari primijetio u detaljnom tekstu koji slijedi.

Korak 1: Kôd

Blaster za vodu koristi Raspberry Pi 3 za obradu. Za snimanje videa koristi se NoIR Raspberry Pi kamera zajedno s IR iluminatorom za noćni video. Paket OpenCV/cv2 Python koristi se za hvatanje i obradu informacija o slici i izračunavanje koordinata cilja. Knjižnica pigpio koristi se za upravljanje gpio -om za stabilan rad servo -a. Korištenje običnog RPi. GPIO paketa rezultiralo je drhtavim servom. NAPOMENA: Prilikom korištenja biblioteke pigpio morate pokrenuti demon pigpio. Dodajte ovo u početnu datoteku vašeg Pi /etc/rc.local za pigpio lib i sučelje kamere Raspberry Pi:

/etc/rc.local# Postavite/dev/video0 za povezivanje s Raspberry Pi ugrađenim sučeljem kameremodprobe bcm2835-v4l2# Pokrenite demon pigpio za Raspberry Pi IO kontrolnu knjižnicupigpiod

Za više detalja pogledajte

Izvorni kod nosi naziv: water_blaster.py i dolje je priložen.

Odricanje od odgovornosti: Novi sam u Python kodiranju pa ga nemojte tretirati kao bilo koji sjajan model Python stila kodiranja!

Osnovni algoritam je sljedeći:

  • Uhvatite početni video referentni okvir. To će se koristiti za usporedbu u odnosu na otkrivanje pokreta.
  • Uhvati drugi okvir.
  • Pretvorite okvir u sivu ljestvicu, povećajte ga, zamaglite.
  • Izračunajte razliku od referentnog okvira
  • Filtrirajte male razlike, dobijte koordinate najveće razlike.
  • Postavite mjerač vremena. Ako se koordinata mete ne promijeni nekoliko sekundi, tada fotografirajte ono što ćemo snimiti i aktivirajte ventil za vodu za eksploziju vode. Pomerite servo naprijed -natrag nekoliko stupnjeva radi eksplozije "sačmarice".
  • Ako prebrzo dobijemo tri okidača, onemogućimo snimanje, malo zastanemo, a zatim ažuriramo referentni okvir jer možda snimamo u sjeni ili svjetlu verande koja je upravo bila uključena …
  • Svakih nekoliko minuta ažurirajte referentni okvir kako biste uzeli u obzir promjene niske frekvencije (izlazak/zalazak sunca, naoblačenje, useljenje itd.)

Koristim samo vodoravni mehanizam za ciljanje, ali mnogi servo nosači za pomicanje/naginjanje dostupni su na EBayu i bilo bi lako dodati još jedan servo za kontrolu okomitog ciljanja ako želite preciznije ciljanje.

Postavio sam Raspberry Pi da radi kao VNC poslužitelj, a zatim se s prijenosnog računala povežem na njega putem VNC -a kako bih pokrenuo program i nadzirao video i zapisnike. cd u direktorij u koji pohranjujete water_blaster.py i pokrenite ga upisivanjem:

./python water_blaster.py

Otvorit će prozor video monitora, pokrenuti datoteku dnevnika pod nazivom "./log_[date]_[time] i stvoriti poddir pod nazivom" trigger_pictures "gdje su pohranjene-j.webp

Evo nekoliko napomena o postavljanju VNC -a na vašem Raspberry Pi:

Prvi put kad sam postavljao Raspberry Pi, koristio sam vanjski monitor/tipkovnicu/miš za postavljanje stvari. Tamo sam omogućio VNC poslužitelj u konfiguraciji RasPi (Raspberry Logo / Preferences / Raspberry Pi Configuration / Interfaces / Check VNC option). Nakon toga, kad se pokrene, omogućuje vam povezivanje s njegovim: 0 zaslonom putem VNC klijenta (s istim vjerodajnicama kao zadani korisnik "pi").

U načinu rada bez glave prema zadanim postavkama prikazuje se zaslon vrlo male rezolucije (jer ne detektira nikakav prikaz), da biste ga prisilili na neku veću razlučivost, ovo dodajete u /boot/config.txt i ponovno pokrećete:

# Koristite ako imate zaslon# hdmi_ignore_edid = 0xa5000080hdmi_group = 2# 1400x1050 w/ 60Hz# hdmi_mode = 42# 1356x768 w/ 60Hzhdmi_mode = 39

Evo još informacija:

Korak 2: Elektronika

Zahtjevi za elektroniku vodenog blastera su minimalni ako se pomoću Raspberry Pi 3 gpio pokreće servo, ventil za vodu i IC iluminator putem diskretnih međuspremnika tranzistora (izgrađen na maloj proto ploči). Standardna NoIR kamera uključuje se izravno u Raspberry Pi.

Naziv sheme je: water_blaster_schematic.pdf i dolje je priložen.

Koristio sam namjensko napajanje od 5v/2.5A za Raspberry Pi i napajanje od 12v/1A za pogon IR iluminatora i ventila za vodu. Napajanje od 12 volti također pokreće regulator od 5 volti za napajanje servo servera od 5 volti. To je učinjeno kako bi "bučna" snaga upravljanja motorom bila izolirana od napajanja Raspberry Pi 5v. Pokazalo se da je napajanje od 12v/1A točno na granici (zapravo malo više kad sam dodao ventilator). Kod isključuje IC osvjetljivač prije nego što napaja relej ventila za vodu kako bi struja ostala unutar raspona … Bilo bi bolje da koristite napajanje od 1,5A. Spojite uzemljene terminale svih izvora napajanja zajedno.

Modul kamere standardna je NoIR verzija koja se izravno priključuje na Raspberry Pi. To je Raspberry Pi kamera s već uklonjenim IC filterom što joj omogućuje upotrebu s IC iluminatorom za snimanje noćnog videa.

Koristi se servo standardne veličine 5v linearni servo sa 3-4 kg-cm okretnog momenta.

IC iluminator je bio jeftin 48 LED prsten koji sam našao na EBayu za oko 4 USD. Nije super jak i može osvijetliti samo do 15 stopa. Ako imate dodatni proračun, dobivanje jačeg iluminatora bilo bi dobro poboljšanje.

Dodao sam "debug-switch" u gpio23. Kôd provjerava stanje prekidača i ako se pritisne, onemogućit će relej ventila za vodu radi ispitivanja na suho. Mislio sam da ću s tim prekidačem učiniti više, ali nisam ga na kraju uopće koristio. Uklonio bih ga i kôd koji ga traži …

Korak 3: Konstrukcija: Kamera i IC osvjetljivač

Konstrukcija: Kamera i IR osvjetljivač
Konstrukcija: Kamera i IR osvjetljivač

Koristio sam plastičnu kutiju municije Harbour Freight kao kućište. Uglavnom mi je trebalo nešto vodootporno jer je puno prskanja/otjecanja vode neizbježno. Postoji mnogo rupa/izreza, ali oni su prekriveni tendama, prozirnom plastikom ili su izbušeni ispod prevjesa za ispuštanje vode. S druge strane, trebao sam upotrijebiti metalnu kutiju s unutarnjim hladnjacima pričvršćenim na komponente velike snage. Time mislim da sam mogao izbjeći dodavanje ventilatora. Plastična kutija bila je previše izolirana i dopuštala je da se unutarnja temperatura previše podigne.

Na kraju je izrezan mali prozor kako bi ga kamera mogla vidjeti, a IR iluminator je postavljen unutar starog plastičnog kućišta za leće koje sam ležao okolo.

Korak 4: Izgradnja: Vodovod

Konstrukcija: Vodovod
Konstrukcija: Vodovod
Konstrukcija: Vodovod
Konstrukcija: Vodovod

Ulaz za vodu je cjevovodom spojen na ventil za vodu od 12V koji je spojen na vin”ID x 3/8” OD vinil cijev. To je pak spojeno na ¼”bodljikavu cijev za PVC connector konektor sa ¾ klizanjem i zalijepljeno na ¾” PVC kapicu za vodu sa rupom od 1/16”izbušenom za mlaz vode. Htio sam držati ventil za vodu izvan vremenskih uvjeta tako da je postavljen unutar kutije. Postoji opasnost da mogu procuriti, ali izbušio sam odvodne rupe na dnu kutije i montirao elektroniku visoko gore kako bi se smanjila mogućnost potencijalnog oštećenja elektronike vodom ako se to dogodi. Manje estetski ugodan, ali sigurniji plan bio bi montirati ventil na vanjsku stranu i unutra provesti žice releja od 12 V. Prozirni plastični disk preko serva bio je prikladan način za postavljanje kraja crijeva i sprječava kapanje vode na servo. Ventilator je bio naknadna zamisao jer se kutija previše zagrijavala. Preko toga sam sagradio malu tendu da voda ne kaplje.

Korak 5: Konstrukcija: Servo usmjerenje

Konstrukcija: Servo ciljanje
Konstrukcija: Servo ciljanje

Na vrhu kutije je izrezana rupa, a servo pogon je montiran i zapečaćen silikonom kako bi zadržao vodu.

Korak 6: Konstrukcija: Montiranje izvora napajanja, ventilatora, Raspberry Pi i proto ploče

Konstrukcija: Montiranje izvora napajanja, ventilatora, Raspberry Pi i proto ploče
Konstrukcija: Montiranje izvora napajanja, ventilatora, Raspberry Pi i proto ploče

Dva izvora napajanja (5v i 12v) spojena su na jedan kabel za napajanje koji izlazi sa strane kutije. Raspberry Pi i proto ploča postavljeni su sa strane kutije pri vrhu. Primijetite odvodne rupe izbušene na dnu i otvore za ventilaciju izbušene uz gornji rub. Ventilator je postavljen nasuprot Raspberry Pi. Nema prekidača za uključivanje/isključivanje jer ne želim poticati isključivanje Raspberry Pi bez formalne naredbe "sudo shutdown now" (tj. Ne želim da se napajanje isključuje prelako).

Korak 7: Konstrukcija: Proto Board

Konstrukcija: Proto Board
Konstrukcija: Proto Board

Proto ploča sadrži regulator od 5 V, poklopac filtera, tranzistore za napajanje (koji pokreću servo i ventil za vodu) i prekidač za otklanjanje pogrešaka.

Korak 8: Konstrukcija: Raspberry Pi kamera

Konstrukcija: Raspberry Pi kamera
Konstrukcija: Raspberry Pi kamera

Raspberry Pi kamera spaja se izravno s Raspberry Pi putem vrpčnog kabela i montira se na prozirnu plastičnu ploču koja prekriva izrez za gledanje na prednjoj strani kutije.

Korak 9: Popis dijelova

Na kraju je projekt koštao oko 120 dolara. Najveći dio troškova projekta čine Raspberry Pi, kamera, servo i napajanje. Većinu dijelova pronašao sam na EBayu ili Amazonu, a vodovodne dijelove u lokalnoj trgovini hardvera.

  • Raspberry Pi 3 (Amazon) 38 USD
  • NoIR kamera (EBay) 30 USD
  • 5v analogni servo (okretni moment 4 kg-cm) (EBay) 10 USD
  • Zidno napajanje 5v/2.4A (EBay) 8 USD
  • 12v ½”ventil za vodu (EBay) 5 USD
  • Cijevi, spojnice za cijevi (Osh) 5 USD
  • Plastična kutija za streljivo (lučki teret) 5 USD
  • Zidno napajanje 12v/1.5A (EBay) 5 USD
  • IR iluminator (EBay) 4 USD
  • Razno. Komponente (otpornici, prekidači, diode) 2 USD
  • CPU ventilator (EBay) 2 USD
  • Proto ploča, držači, vijci (EBay) 2 USD
  • (2) Snažni tranzistori (2n5296) (EBay) 1 USD
  • 5v regulator (LM7805) (EBay) 1 USD
  • Prozirna plastika 3/32”(Dodirnite Plastika, razna posuda) 1 USD
  • Kabel za napajanje (Osh) 1 USD

Trgovine/web stranice u kojima sam kupio artikle:

  • Alice1101983 EBay web mjesto:
  • 2bevoque EBay stranica:
  • Harbour Freight
  • Opskrbni hardver za voćnjake
  • Amazon
  • Dodirnite Plastika

Preporučeni: