Sisällysluettelo:
- Vaihe 1: Koodi
- Vaihe 2: Elektroniikka
- Vaihe 3: Rakentaminen: kamera ja IR -valaisin
- Vaihe 4: Rakentaminen: Vesiputket
- Vaihe 5: Rakentaminen: Servon tavoittelu
- Vaihe 6: Rakentaminen: Virtalähteiden, tuulettimen, Raspberry Pi: n ja Proto-levyn asennus
- Vaihe 7: Rakentaminen: Proto Board
- Vaihe 8: Rakentaminen: Raspberry Pi -kamera
- Vaihe 9: Osaluettelo
Video: Automaattinen vesisuihku: 9 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Ruusua syövä hirvi motivoi minua rakentamaan kohteenseurannan vesisuihkuttimen, joka auttaisi estämään ahneita eläimiä… Tämä vesipuhallin käyttää videopohjaista liiketunnistusta servon kohdistamiseen ja lyhyiden vesipurskeiden laukaamiseen kohteeseen. Se ampuu vasta sen jälkeen, kun hankittu kohde on paikallaan muutaman sekunnin ajan (viive voidaan säätää koodissa). En välitä, jos peurot vain kävelevät ohi, mutta jos he pysähtyvät välipalaksi, heiluttele!
Tässä on video minusta, joka testaan vesipuhallinta:
Vesipuhallin on erillinen laatikko, joka voidaan yhdistää etäyhteydellä (wi-fi/VNC: n kautta) mistä tahansa verkon tietokoneesta seuratakseen mitä se tekee. Se ottaa kuvan joka kerta, kun se laukaistaan, joten voit myöhemmin nähdä, mitä räjäytettiin.
Käytin Raspberry Pi: tä, NoIR -nokkaa, IR -valaisinta, tavallista lineaarista servoa ja vesiventtiiliä luodakseni tämän päivän/yön, kohdeseurantavesisuihkun. Koodi on kirjoitettu Pythonilla ja lainataan voimakkaasti Adrian Rosebrockin cv2 -kuvankäsittelykoodinäytteistä. Näet hänen kirjoituksensa osoitteessa:
www.pyimagesearch.com/2015/06/01/home-surv…
Koska pyrin suhteellisen suuriin, maalla oleviin kohteisiin (peuroja), ongelmani on hieman yksinkertaistettu. Tarvitsen vain vaakasuoran tähtäyksen, jotta voin päästä eroon vain yhdestä servosta. Hirven seisomisen odottaminen auttaa minua poistamaan paljon vääriä laukaisijoita. Tämä on rev-0 -yritykseni ja olen löytänyt muutamia asioita, joita muuttaisin, jos rakentaisin toisen. Olen huomannut nämä asiat seuraavassa yksityiskohtaisessa kirjoituksessa.
Vaihe 1: Koodi
Vesipuhallin käyttää Raspberry Pi 3: ta käsittelyyn. Videon sieppaamiseen käytetään NoIR Raspberry Pi -kameraa ja IR -valaisinta yövideota varten. OpenCV/cv2 Python -pakettia käytetään kuvatietojen sieppaamiseen ja käsittelyyn sekä kohdekoordinaattien laskemiseen. Pigpio -kirjastoa käytetään ohjaamaan gpio vakaata servotoimintaa varten. Tavallisen RPi. GPIO -paketin käyttäminen johti vapisevaan servoon. HUOMAUTUS: Kun käytät pigpio -kirjastoa, sinun on suoritettava pigpio -demoni. Lisää tämä Pi: n /etc/rc.local pigpio lib- ja Raspberry Pi -kameran käyttöliittymän käynnistystiedostoon:
/etc/rc.local# Määritä/dev/video0 linkittämään Raspberry Pi: n sisäänrakennettuun kameran käyttöliittymään bcm2835-v4l2# Käynnistä Raspberry Pi IO -ohjauskirjaston pigpio-demoni
Katso lisätietoja osoitteesta
Lähdekoodin nimi on: water_blaster.py ja se on liitteenä alla.
Vastuuvapauslauseke: Olen uusi Python -koodauksessa, joten älä kohdella sitä suurena mallina Python -koodaustyylistä!
Perusalgoritmi on seuraava:
- Tartu videon ensimmäiseen viitekehykseen. Tätä käytetään vertaamaan liikkeen havaitsemiseen.
- Ota toinen kehys.
- Muunna kehys harmaasävyiseksi, kokoa ja hämärtä.
- Laske ero vertailukehyksestä
- Suodata pienet erot, hanki suurimman eron koordinaatit.
- Aseta ajastin. Jos tavoitekoordinaatti ei muutu muutamaan sekuntiin, ota kuva siitä, mitä aiomme ampua, ja käynnistä vesiventtiili vedenpuhallusta varten. Pyyhkäise servoa muutaman asteen edestakaisin "haulikon" räjähdykseen.
- Jos saamme kolme laukaisinta liian nopeasti, poista kuvaaminen käytöstä, pysähdy hetkeksi ja päivitä viitekehys, koska kuvaamme mahdollisesti varjossa tai kuistilla, joka oli juuri päällä …
- Päivitä viitekehykset muutaman minuutin välein ottamaan huomioon matalan taajuuden muutokset (auringon nousu/lasku, pilvinen muutto jne.)
Käytän vain vaakasuuntaista kohdistusmekanismia, mutta monia pan/tilt -servo -kiinnikkeitä on saatavana EBayssä, ja jos haluat tarkemman kohdistuksen, olisi helppo lisätä toinen servo pystysuoran kohdistuksen ohjaamiseksi.
Määritin Raspberry Pi: n toimimaan VNC -palvelimena ja muodostan sitten yhteyden siihen kannettavan tietokoneen VNC: n kautta ohjelman käynnistämiseksi ja videon ja lokien seuraamiseksi. cd hakemistoon, johon tallennat water_blaster.py ja suorita se kirjoittamalla:
./python water_blaster.py
Se avaa videomonitori-ikkunan, käynnistää lokitiedoston nimeltä "./log_[date]_[time] ja luo alihakemiston nimeltä" trigger_pictures ", johon tallennetaan jpg-tiedostot (trigger_ [date] _ [time]) jokaisesta otetusta laukauksesta.
Tässä on joitain huomautuksia VNC: n määrittämisestä Raspberry Pi -laitteeseesi:
Kun asetin Raspberry Pi: n ensimmäistä kertaa, käytin ulkoista näyttöä/näppäimistöä/hiirtä asetusten määrittämiseen. Siellä otin VNC -palvelimen käyttöön RasPi -määrityksessä (Raspberry Logo / Preferences / Raspberry Pi Configuration / Interfaces / Check VNC option). Jälkeenpäin, kun se käynnistyy, sen avulla voit muodostaa yhteyden sen: 0 -näyttöön VNC -asiakkaan kautta (samoilla tunnistetiedoilla kuin oletuskäyttäjä "pi").
Päättömässä tilassa se on oletuksena hyvin pienen resoluution näyttö (koska se ei tunnista mitään näyttöä), pakottaaksesi sen suurempaan resoluutioon lisäämällä tämä tiedostoon /boot/config.txt ja käynnistämällä uudelleen:
# Käytä, jos sinulla on näyttö# hdmi_ignore_edid = 0xa5000080hdmi_group = 2# 1400x1050 w/ 60Hz# hdmi_mode = 42# 1356x768 w/ 60Hzhdmi_mode = 39
Tässä on lisätietoja:
Vaihe 2: Elektroniikka
Vedenpuhalluselektroniikan vaatimukset ovat vähäiset, kun Raspberry Pi 3 gpio -laitetta käytetään servon, vesiventtiilin ja IR -valaisimen käyttämiseen erillisten transistoripuskurien kautta (rakennettu pieneen proto -korttiin). Tavallinen NoIR -kamera liitetään suoraan Raspberry Pi -laitteeseen.
Kaavion nimi on: water_blaster_schematic.pdf ja se on liitteenä alla.
Käytin 5v/2,5A omaa syöttöä Raspberry Pi: lle ja 12v/1A syöttöä IR -valaisimen ja vesiventtiilin ohjaamiseen. 12 voltin syöttö käyttää myös 5 voltin säädintä virran syöttämiseksi 5 voltin servolle. Tämä tehtiin pitääkseen "meluisan" moottorin ohjaustehon eristettynä Raspberry Pi 5v -jännitteestä. 12v/1A syöttö osoittautui aivan rajalleen (itse asiassa hieman yli, kun lisäsin tuulettimen). Koodi sammuttaa infrapunavalaisimen ennen vesiventtiilin releen kytkemistä virrankulutuksen pitämiseksi alueella … Olisi parempi, jos käyttäisit 1,5 A: n syöttöä. Muista liittää kaikkien virtalähteiden maadoitusliittimet yhteen.
Kameramoduuli on vakio NoIR -versio, joka kytketään suoraan Raspberry Pi -laitteeseen. Se on Raspberry Pi -kamera, josta IR -suodatin on jo poistettu, joten sitä voidaan käyttää IR -valaisimen kanssa yövideon ottamiseen.
Käytetty servo on vakiokokoinen 5 voltin lineaarinen servo, jonka vääntömomentti on 3-4 kg-cm.
IR -valaisin oli edullinen 48 led -rengas, jonka löysin EBaysta noin 4 dollarilla. Se ei ole erittäin vahva ja voi valaista vain noin 15 metrin korkeuteen. Jos sinulla on ylimääräistä budjettia, vahvemman valaisimen hankkiminen olisi hyvä parannus.
Lisäsin "debug-switch" gpio23: een. Koodi tarkistaa kytkimen tilan, ja jos sitä painetaan, se sulkee vesiventtiilin releen kuivan palon testausta varten. Ajattelin tehdä enemmän tällä kytkimellä, mutta en lopulta käyttänyt sitä ollenkaan. Poistan sen ja sen etsivän koodin …
Vaihe 3: Rakentaminen: kamera ja IR -valaisin
Kotelona käytin Harbour Freight -muovia. Lähinnä tarvitsin jotain vedenkestävää, koska paljon vesisuihkua/valumista on väistämätöntä. Reikiä/aukkoja on paljon, mutta ne on peitetty markiiseilla, kirkkaalla muovilla tai ne on porattu ylitysten alle veden vuodattamiseksi. Jälkeenpäin minun olisi pitänyt käyttää metallilaatikkoa, jossa jäähdytyselementit on kiinnitetty sisäisesti suuritehoisiin komponentteihin. Tällä tavoin luulen, että olisin voinut välttää tuulettimen lisäämisen. Muovilaatikko oli liian eristävä ja antoi sisälämpötilan nousta liikaa.
Pieni ikkuna leikattiin lopulta, jotta kamera näki sen, ja IR -valaisin asennettiin vanhan muovisen linssikotelon sisälle.
Vaihe 4: Rakentaminen: Vesiputket
Veden tulo johdetaan 12 voltin vesiventtiiliin, joka on liitetty ¼”ID x 3/8” OD -vinyyliputkeen. Tämä vuorostaan liitetään ¼”piikkiletkuun ¾ liukukiinnitteiseen PVC -liittimeen ja liimataan ¾” PVC -vesikorkkiin, jossa on 1/16”reikä porattu vesivirtaa varten. Halusin pitää vesiventtiilin releen sään ulkopuolella, joten se on asennettu laatikon sisään. On olemassa vaara, että voin vuotaa, mutta olen porannut tyhjennysreiät laatikon pohjaan ja asentanut elektroniikan korkealle minimoidaksesi mahdollisen vesivahingon mahdollisuuden elektroniikalle, jos näin tapahtuu. Vähemmän esteettisesti miellyttävä, mutta turvallisempi suunnitelma olisi asentaa venttiili ulkopuolelle ja viedä 12 voltin relejohdot sisään. Kirkas muovilevy servon päällä oli kätevä tapa asentaa letkun pää ja estää veden tippumisen servolle. Tuuletin oli jälkikäteen mietitty, koska laatikko lämpeni liikaa. Rakensin sen päälle pienen teltan, jotta vesi ei tippuisi sisään.
Vaihe 5: Rakentaminen: Servon tavoittelu
Laatikon yläosaan leikataan reikä ja kohdistusservo asennetaan ja tiivistetään silikonilla veden poistumisen estämiseksi.
Vaihe 6: Rakentaminen: Virtalähteiden, tuulettimen, Raspberry Pi: n ja Proto-levyn asennus
Kaksi virtalähdettä (5v ja 12v) on kytketty yhteen virtajohtoon, joka poistuu laatikon sivulta. Raspberry Pi ja proto -levy on asennettu laatikon sivulle lähellä yläosaa. Huomaa pohjaan poratut tyhjennysreiät ja yläreunaa pitkin poratut tuuletusaukot. Tuuletin on asennettu Raspberry Pi: tä vastapäätä. On/off -kytkintä ei ole, koska en halua kannustaa sammuttamaan Raspberry Pi -laitetta ilman muodollista "sudo shutdown now" -komentoa (eli et halua sammuttaa virtaa liian helposti).
Vaihe 7: Rakentaminen: Proto Board
Proto-kortti sisältää 5 voltin säätimen, suodatinkannen, tehotransistorit (jotka käyttävät servo- ja vesiventtiiliä) ja virheenkorjauskytkin.
Vaihe 8: Rakentaminen: Raspberry Pi -kamera
Raspberry Pi -nokka kytkeytyy suoraan Raspberry Pi -laitteeseen nauhakaapelin kautta ja on asennettu kirkkaaseen muovilevyyn, joka peittää laatikon etupuolella olevan katkaisun.
Vaihe 9: Osaluettelo
Projekti maksoi lopulta noin 120 dollaria. Suurin osa hankkeen kustannuksista on Raspberry Pi, kamera, servo ja virtalähteet. Löysin suurimman osan osista EBaystä tai Amazonista ja LVI -osat paikallisesta rautakaupasta.
- Raspberry Pi 3 (Amazon) 38 dollaria
- NoIR -kamera (eBay) 30 dollaria
- 5v analoginen servo (4 kg-cm vääntömomentti) (EBay) 10 dollaria
- 5v/2.4A seinävirtalähde (eBay) 8 dollaria
- 12v ½”vesiventtiili (eBay) 5 dollaria
- Letkut, putkiliittimet (Osh) 5 dollaria
- Muoviset ammukset (satamarahti) 5 dollaria
- 12v/1,5A seinävirtalähde (eBay) 5 dollaria
- IR -valaisin (eBay) 4 dollaria
- Muut Komponentit (vastukset, kytkimet, diodi) 2 dollaria
- CPU -tuuletin (eBay) 2 dollaria
- Proto Board, Standoffs, Ruuvit (EBay) 2 dollaria
- (2) Tehotransistorit (2n5296) (EBay) 1 $
- 5v -säädin (LM7805) (EBay) 1 $
- Kirkas muovi 3/32”(napauta Muoviset sekalaatikot) $ 1
- Virtajohto (Osh) $ 1
Kaupat/sivustot, joista ostin tuotteita:
- Alice1101983 EBay-sivusto:
- 2bevoque EBay -sivusto:
- Satamarahti
- Orchard Supply Hardware
- Amazon
- Napauta Muovit
Suositeltava:
Automaattinen käsidesi: 8 vaihetta
Automaattinen käsidesi: COVID-19-pandemiasta on tullut asia, jonka yleisö on kuullut hyvin usein vuoden 2020 aikana. Jokainen kansalainen, joka kuulee sanan”COVID-19”, ajattelee heti sanan”Vaarallinen”, “Tappava”,”Pidä puhtaana” "Ja muita sanoja. Tämä COVID-19 on myös
DIY automaattinen käsidesin annostelija: 6 vaihetta
DIY automaattinen käsidesin annostelija: Tässä projektissa rakennamme automaattisen käsidesin annostelijan. Tässä projektissa käytetään Arduinoa, ultraäänianturia, vesipumppua ja käsidesiä. Ultraäänianturia käytetään käsien läsnäolon tarkistamiseen desinfiointikoneen ulostulon alla
Automaattinen geelialkoholiannostelija, jossa Esp32: 9 vaihetta
Automaattinen geelialkoholin annostelija Esp32: opetusohjelmassa näemme kuinka tehdä täydellinen prototyyppi, koota automaattinen geelialkoholiannostelija esp32: n kanssa, se sisältää vaiheittaisen kokoonpanon, elektronisen piirin ja myös lähdekoodin, jotka on selitetty vaihe vaiheelta askel
Automaattinen koiran syöttölaite !!: 4 vaihetta
Automaattinen koiran syöttölaite !!: Helppoa, hyödyllistä ja terveellistä
Automaattinen kasvien kastelujärjestelmä mikron avulla: bitti: 8 vaihetta (kuvilla)
Automaattinen kasvien kastelujärjestelmä Micro: bitin avulla: Tässä ohjeessa näytän sinulle, kuinka rakentaa automaattinen kasvien kastelujärjestelmä käyttämällä Micro: bittiä ja joitain muita pieniä elektronisia komponentteja. Micro: bit käyttää kosteusanturia seurata kasvin maaperän kosteustasoa ja