Turinys:

Automatiškai sekantis vandens purškiklis: 9 žingsniai
Automatiškai sekantis vandens purškiklis: 9 žingsniai

Video: Automatiškai sekantis vandens purškiklis: 9 žingsniai

Video: Automatiškai sekantis vandens purškiklis: 9 žingsniai
Video: Дженнифер Пэн, дочь из ада, документальный фильм о наст... 2024, Lapkritis
Anonim
Automatiškai sekantis vandens purškiklis
Automatiškai sekantis vandens purškiklis

Rožę valgantys elniai paskatino mane sukurti tikslinį vandens pūtiklį, kuris padėtų atgrasyti nuobodžius gyvūnus … Šis vandens pūstuvas naudoja vaizdo judesio aptikimą, kad nukreiptų servo ir sukeltų trumpus vandens pliūpsnius į taikinį. Jis šaudo tik po to, kai gautas taikinys kelias sekundes stovi vietoje (delsą galima koreguoti kodu). Man nerūpi, ar elniai tiesiog eina pro šalį, bet jei jie sustoja užkandžiauti, paplaukite!

Čia yra vaizdo įrašas, kuriame aš išbandau vandens pūtiklį:

Vandens pūstuvas yra atskira dėžutė, kurią galima nuotoliniu būdu prijungti (naudojant „Wi-Fi“/VNC) iš bet kurio tinklo kompiuterio, kad būtų galima stebėti, ką jis daro. Kiekvieną kartą, kai jis suaktyvinamas, fotografuojama, kad vėliau galėtumėte pamatyti, kas buvo susprogdinta.

Aš naudojau „Raspberry Pi“, „NoIR“kumštelį, IR apšvietimą, standartinę linijinę servo sistemą ir vandens vožtuvą, kad sukurtų šį dieną/naktį tikslinį vandens pūtiklį. Kodas parašytas „Python“ir labai skolinamas iš Adriano Rosebrocko cv2 vaizdo apdorojimo kodo pavyzdžių. Jo parašytą tekstą galite pamatyti:

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

Kadangi aš siekiu palyginti didelių, ant žemės esančių taikinių (elnių), mano problema yra šiek tiek supaprastinta. Man reikia tik horizontalaus taikymo, kad galėčiau išsisukti naudodamas tik vieną servo. Laukimas, kol elniai sustos, man padeda pašalinti daugybę klaidingų veiksnių. Tai mano „rev-0“bandymas ir radau keletą dalykų, kuriuos norėčiau pakeisti, jei sukurčiau kitą. Aš pastebėjau šiuos dalykus išsamiame rašte, kuris pateikiamas toliau.

1 žingsnis: Kodas

Vandens pūstuvas apdorojimui naudoja „Raspberry Pi 3“. Norėdami įrašyti vaizdo įrašą, „NoIR Raspberry Pi“kamera naudojama kartu su IR apšvietimu naktiniam vaizdo įrašui. „OpenCV/cv2 Python“paketas naudojamas fiksuoti ir apdoroti vaizdo informaciją bei apskaičiuoti tikslines koordinates. „Pigpio“biblioteka naudojama gpio valdymui stabiliam servo veikimui. Naudojant įprastą „RPi. GPIO“paketą, servo sistema drebėjo. PASTABA: Kai naudojate „pigpio“biblioteką, turite paleisti „pigpio“demoną. Pridėkite tai prie „Pi“/etc/rc.local „pigpio lib“ir „Raspberry Pi“fotoaparato sąsajos paleisties failo:

/etc/rc.local# Nustatykite/dev/video0, kad susietumėte su „Raspberry Pi“integruota fotoaparato sąsaja bcm2835-v4l2# Paleiskite „pigpio“demoną Raspberry Pi IO valdymo bibliotekai

Daugiau informacijos rasite

Šaltinio kodas pavadintas: water_blaster.py ir pridedamas žemiau.

Atsakomybės apribojimas: Aš esu naujokas „Python“kodavimo srityje, todėl nelaikykite jo puikiu „Python“kodavimo stiliaus modeliu!

Pagrindinis algoritmas yra toks:

  • Paimkite pradinį vaizdo įrašo nuorodos kadrą. Tai bus naudojama lyginant su judesio aptikimu.
  • Paimkite kitą rėmelį.
  • Konvertuokite rėmelį į pilką skalę, padidinkite dydį, neryškinkite.
  • Apskaičiuokite skirtumą nuo atskaitos rėmo
  • Filtruokite mažus skirtumus, gaukite didžiausio skirtumo koordinates.
  • Nustatykite laikmatį. Jei tikslinė koordinatė nesikeičia kelias sekundes, nufotografuokite tai, ką ketiname fotografuoti, ir paleiskite vandens vožtuvą vandens pūtimui. Perbraukite servo variklį keletą laipsnių pirmyn ir atgal, kad sprogtų „šautuvas“.
  • Jei per greitai gauname tris paleidiklius, išjungiame fotografavimą, šiek tiek pristabdome, tada atnaujiname atskaitos rėmelį, nes galime fotografuoti prie ką tik įjungto šešėlio ar prieangio šviesos …
  • Kas kelias minutes atnaujinkite atskaitos rėmelį, kad būtų atsižvelgta į žemo dažnio pokyčius (saulė kyla/leidžiasi, debesys persikelia ir pan.)

Aš naudoju tik horizontalųjį taikymo mechanizmą, tačiau „EBay“yra daug pasukimo/pakreipimo servo laikiklių, o jei norite tikslesnio taikymo, būtų lengva pridėti kitą servo, skirtą vertikaliam taikymui valdyti.

Nustatiau „Raspberry Pi“, kad jis veiktų kaip VNC serveris, tada prisijungsiu prie jo per VNC iš savo nešiojamojo kompiuterio, kad paleisčiau programą ir stebėčiau vaizdo įrašus bei žurnalus. cd į katalogą, kuriame saugote water_blaster.py, ir paleiskite jį įvesdami:

./python water_blaster.py

Bus atidarytas vaizdo stebėjimo langas, paleistas žurnalo failas pavadinimu „./log_[date]_[time] ir sukurtas antrinis režimas„ trigger_pictures “, kuriame saugomi-j.webp

Štai keletas pastabų apie VNC nustatymą „Raspberry Pi“:

Pirmą kartą nustatydamas „Raspberry Pi“, naudoju išorinį monitorių/klaviatūrą/pelę, kad nustatyčiau viską. Ten įgalinau VNC serverį RasPi konfigūracijoje (Raspberry Logo / Preferences / Raspberry Pi Configuration / Interfaces / Check VNC). Vėliau, kai jis paleidžiamas, jis leidžia prisijungti prie jo: 0 ekrano per VNC klientą (su tais pačiais kredencialais, kaip numatytasis vartotojas „pi“).

Naudojant režimą be galvos, pagal numatytuosius nustatymus rodomas labai mažos skiriamosios gebos ekranas (nes jis neaptinka jokio ekrano), kad priverstumėte jį pasiekti didesnę skiriamąją gebą, pridėkite tai prie /boot/config.txt ir paleiskite iš naujo:

# Naudokite, jei turite ekraną# hdmi_ignore_edid = 0xa5000080hdmi_group = 2# 1400x1050 w/ 60Hz# hdmi_mode = 42# 1356x768 w/ 60Hzhdmi_mode = 39

Čia yra daugiau informacijos:

2 žingsnis: Elektronika

Vandens pūtimo elektronikos reikalavimai yra minimalūs naudojant „Raspberry Pi 3 gpio“, kad būtų galima valdyti servo, vandens vožtuvą ir IR apšvietimą per atskirus tranzistorių buferius (pastatytus ant mažos proto plokštės). Standartinė „NoIR“kamera prijungiama tiesiai prie „Raspberry Pi“.

Schemos pavadinimas yra: water_blaster_schematic.pdf ir pridedamas žemiau.

Aš naudoju 5v/2.5A specialų maitinimą „Raspberry Pi“ir 12v/1A maitinimą, kad galėčiau valdyti IR apšvietimą ir vandens vožtuvą. 12 V maitinimas taip pat varo 5 V reguliatorių, kuris tiekia 5 V servo maitinimą. Tai buvo padaryta siekiant „triukšmingos“variklio valdymo galios izoliuoti nuo „Raspberry Pi 5v“maitinimo šaltinio. 12v/1A maitinimas pasirodė esąs ties savo riba (iš tikrųjų šiek tiek daugiau, kai pridėjau ventiliatorių). Kodas išjungia infraraudonųjų spindulių apšvietimą prieš įjungdamas vandens vožtuvo relę, kad srovė būtų neviršijama ribų … Būtų geriau, jei naudojatės 1,5A maitinimo šaltiniu. Būtinai sujunkite visų maitinimo šaltinių įžeminimo gnybtus.

Fotoaparato modulis yra standartinė „NoIR“versija, tiesiogiai prijungiama prie „Raspberry Pi“. Tai „Raspberry Pi“kamera, kurioje jau pašalintas IR filtras, leidžiantis jį naudoti su IR apšvietimu naktiniam vaizdo įrašymui.

Naudojama servo sistema yra standartinio dydžio 5 V linijinė servo sistema, kurios sukimo momentas yra 3-4 kg cm.

IR apšvietimas buvo nebrangus 48 LED žiedas, kurį radau „EBay“už maždaug 4 USD. Jis nėra labai stiprus ir gali apšviesti tik apie 15 pėdų. Jei turite papildomą biudžetą, stipresnis apšvietimas būtų geras pagerėjimas.

Prie gpio23 pridėjau „derinimo jungiklį“. Kodas tikrina jungiklio būseną ir, paspaudus, išjungs vandens vožtuvo relę sauso gaisro bandymams. Maniau, kad su tuo jungikliu padarysiu daugiau, bet galų gale iš tikrųjų jo nenaudojau. Aš pašalinčiau jį ir jo ieškantį kodą …

3 žingsnis: Konstrukcija: fotoaparatas ir IR apšvietimas

Konstrukcija: fotoaparatas ir IR apšvietimas
Konstrukcija: fotoaparatas ir IR apšvietimas

Kaip aptvarą naudojau „Harbor Freight“plastikinę šovinių dėžę. Dažniausiai man reikėjo kažko atsparaus vandeniui, nes neišvengiama daug vandens purškimo/nutekėjimo. Yra daug skylių/išpjovų, tačiau jos yra uždengtos tentais, skaidriu plastiku arba išgręžiamos po iškyšomis, kad būtų išleistas vanduo. Žvelgiant iš galo, aš turėjau naudoti metalinę dėžę su radiatoriais, pritvirtintais prie didelės galios komponentų. Tai darydamas manau, kad galėjau išvengti ventiliatoriaus pridėjimo. Plastikinė dėžė buvo per daug izoliuojanti ir leido per daug pakilti vidaus temperatūrai.

Pabaigoje buvo išpjautas mažas langas, kad fotoaparatas galėtų jį pamatyti, o IR apšvietimas buvo sumontuotas seno plastikinio objektyvo dėklo viduje, kurį aš gulėjau.

4 žingsnis: Statyba: vandens vamzdžiai

Konstrukcija: Vandentiekis
Konstrukcija: Vandentiekis
Konstrukcija: Vandentiekis
Konstrukcija: Vandentiekis

Vandens įleidimo anga tiekiama į 12 voltų vandens vožtuvą, prijungtą prie ¼”ID x 3/8” OD vinilo vamzdžio. Tai savo ruožtu yra prijungta prie ed colių spygliuotų vamzdžių prie ¾ slydimo tvirtinančios PVC jungties ir priklijuota prie ¾ colio PVC vandens dangtelio su 1/16 colio skylute, išgręžta vandens srovei. Norėjau, kad vandens vožtuvo relė nepatektų į orą, kad ji būtų sumontuota dėžutės viduje. Yra pavojus, kad galiu gauti nuotėkį, tačiau dėžutės apačioje išgręžiau išleidimo angas ir sumontavau elektroniką aukštai, kad sumažėtų galimo elektronikos pažeidimo dėl vandens tikimybė. Mažiau estetiškas, bet saugesnis planas būtų sumontuoti vožtuvą išorėje ir paleisti 12 voltų relės laidus viduje. Skaidrus plastikinis diskas virš servo buvo patogus būdas pritvirtinti žarnos galą ir neleidžia vandeniui nutekėti ant servo. Ventiliatorius buvo antra mintis, nes dėžė per daug įšilo. Virš jo pastatiau nedidelį tentą, kad nepatektų vandens.

5 žingsnis: Statyba: „Servo“taikymas

Konstrukcija: „Servo“
Konstrukcija: „Servo“

Dėžutės viršuje išpjauta skylė, o tiksimo servo sistema sumontuota ir užsandarinama siliciu, kad būtų išvengta vandens.

6 žingsnis: Konstrukcija: maitinimo šaltinių, ventiliatoriaus, „Raspberry Pi“ir „Proto-board“montavimas

Konstrukcija: maitinimo šaltinių, ventiliatoriaus, „Raspberry Pi“ir „Proto-board“montavimas
Konstrukcija: maitinimo šaltinių, ventiliatoriaus, „Raspberry Pi“ir „Proto-board“montavimas

Du maitinimo šaltiniai (5v ir 12v) yra prijungti prie vieno maitinimo laido, išeinančio iš dėžutės šono. „Raspberry Pi“ir proto lenta yra sumontuoti dėžutės šone šalia viršaus. Atkreipkite dėmesį į dugne išgręžtas išleidimo angas ir išilgai viršutinio krašto išgręžtas oro išleidimo angas. Ventiliatorius sumontuotas priešais „Raspberry Pi“. Nėra įjungimo/išjungimo jungiklio, nes nenoriu paskatinti „Raspberry Pi“išjungti be oficialios komandos „sudo shutdown now“(t. Y. Nenoriu, kad maitinimas būtų išjungtas per lengvai).

7 žingsnis: Statyba: „Proto Board“

Konstrukcija: „Proto Board“
Konstrukcija: „Proto Board“

Proto plokštėje yra 5 V reguliatorius, filtro dangtelis, galios tranzistoriai (kurie varo servo ir vandens vožtuvą) ir derinimo jungiklis.

8 žingsnis: Konstrukcija: „Raspberry Pi“kamera

Konstrukcija: „Raspberry Pi“kamera
Konstrukcija: „Raspberry Pi“kamera

„Raspberry Pi“kumštelis jungiasi tiesiai prie „Raspberry Pi“per juostinį kabelį ir yra sumontuotas ant skaidrios plastikinės plokštės, uždengiančios peržiūros iškirtimą dėžutės priekyje.

9 žingsnis: dalių sąrašas

Galiausiai projektas kainavo apie 120 USD. Didžioji projekto išlaidų dalis yra „Raspberry Pi“, fotoaparatas, servo ir maitinimo šaltiniai. Daugumą dalių radau „EBay“ar „Amazon“, o santechnikos dalis - vietinėje techninės įrangos parduotuvėje.

  • „Raspberry Pi 3“(„Amazon“) - 38 USD
  • „NoIR“kamera („eBay“) 30 USD
  • 5v analoginis servo (4 kg-cm sukimo momentas) („EBay“) 10 USD
  • 5v/2.4A sieninis maitinimo šaltinis („EBay“) 8 USD
  • 12v ½ “vandens vožtuvas („ EBay “) 5 USD
  • Vamzdžiai, vamzdžių jungtys (Osh) 5 USD
  • Plastikinė šovinių dėžė (uosto krovinys) 5 USD
  • 12v/1,5A sieninis maitinimo šaltinis („EBay“) 5 USD
  • IR apšvietėjas („EBay“) 4 USD
  • Įvairūs Komponentai (rezistoriai, jungikliai, diodai) 2 USD
  • CPU ventiliatorius („eBay“) 2 USD
  • Proto lenta, sustabdymai, varžtai („eBay“) 2 USD
  • (2) Galios tranzistoriai (2n5296) („EBay“) 1 USD
  • 5v reguliatorius (LM7805) („eBay“) 1 USD
  • Skaidrus plastikas 3/32 “(bakstelėkite plastiko įvairios dėžės) $ 1
  • Maitinimo laidas (Osh) 1 USD

Parduotuvės/svetainės, kuriose pirkau prekes:

  • „Alice1101983“„EBay“svetainė:
  • „2bevoque EBay“svetainė:
  • Uosto kroviniai
  • Sodo tiekimo aparatinė įranga
  • „Amazon“
  • Bakstelėkite Plastikai

Rekomenduojamas: