INHOUDSOPGAWE:

Auto Blaster Water Blaster: 9 stappe
Auto Blaster Water Blaster: 9 stappe

Video: Auto Blaster Water Blaster: 9 stappe

Video: Auto Blaster Water Blaster: 9 stappe
Video: How Powerful is a Gel Blaster? 2024, Julie
Anonim
Waterblaster word outomaties dop
Waterblaster word outomaties dop

Roosvretende takbokke het my gemotiveer om 'n teikenopsporende waterblaster te bou om die yslike beestjies te help afskrik … Hierdie waterblaser gebruik bewegingsopsporing op video om 'n servo te rig en kort waterstrale na die teiken te lok. Dit skiet eers nadat 'n teiken vir 'n paar sekondes stilstaan (die vertraging kan in die kode aangepas word). Ek gee nie om of die takbokke net verbystap nie, maar as hulle stop vir 'n hapje, bederf!

Hier is 'n video van my wat die waterblaster toets:

Die waterblaster is 'n losstaande boks wat vanaf enige rekenaar op u netwerk op afstand aan (via wi-fi/VNC) gekoppel kan word om te kyk wat dit doen. Dit neem 'n foto elke keer as dit geaktiveer word, sodat u later kan sien wat besig was om te ontplof.

Ek het 'n Raspberry Pi, NoIR -nok, IR -verligter, standaard lineêre servo en 'n waterklep gebruik om hierdie dag/nag 'n doelopsporing -waterblaster te skep. Die kode is in Python geskryf en leen baie by die cv2 -beeldverwerkingskode -voorbeelde van Adrian Rosebrock. U kan sien hoe hy dit skryf:

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

Aangesien ek op soek is na relatief groot, grondgebaseerde teikens (takbokke), is my probleem ietwat vereenvoudig. Ek benodig slegs 'n horisontale mikpunt, sodat ek kan wegkom deur slegs een servo te gebruik. Om te wag dat die hert stilstaan, help my om baie valse snellers uit die weg te ruim. Dit is my rev-0 poging en ek het 'n paar dinge gevind wat ek sou aanpas as ek nog een bou. Ek het hierdie dinge opgemerk in die gedetailleerde beskrywing wat volg.

Stap 1: Die kode

Die waterblaser gebruik die Raspberry Pi 3 vir verwerking. Vir die opneem van video word 'n NoIR Raspberry Pi -kamera saam met 'n IR -verligter vir nagvideo gebruik. Die OpenCV/cv2 Python -pakket word gebruik om beeldinligting op te vang en te verwerk en teikenskoördinate te bereken. Die pigpio -biblioteek word gebruik om die gpio te beheer vir 'n stabiele servobediening. Die gebruik van die gewone RPi. GPIO -pakket het tot 'n wankelrige servo gelei. OPMERKING: As u die pigpio -biblioteek gebruik, moet u die pigpio -demoon laat loop. Voeg dit by u Pi se /etc/rc.local opstartlêer vir die pigpio lib en die Raspberry Pi -kamera -koppelvlak:

/etc/rc.local# Stel op/dev/video0 om te skakel na Raspberry Pi ingeboude kamera-koppelvlakmodusprobleem bcm2835-v4l2# Begin die pigpio-demoon vir die Raspberry Pi IO-beheerbiblioteekpigpiode

Sien https://pypi.python.org/pypi/pigpi vir meer inligting.

Die bronkode is vernoem: water_blaster.py en word hieronder aangeheg.

Disclaimer: Ek is nuut in Python -kodering, dus moenie dit as 'n uitstekende model van Python -koderingstyl beskou nie!

Die basiese algoritme is soos volg:

  • Gryp 'n aanvanklike videoverwysingsraamwerk. Dit sal gebruik word om te vergelyk om beweging op te spoor.
  • Gryp nog 'n raam.
  • Skakel die raam om in grysskaal, maak dit groter, vervaag dit.
  • Bereken die verskil van die verwysingsraamwerk
  • Filtreer klein verskille, kry koördinate van die grootste verskil.
  • Stel 'n timer in. As die teikenkoördinaat vir 'n paar sekondes nie verander nie, neem dan 'n foto van wat ons gaan skiet en laat die waterklep vir 'n stortvloed water ontstaan. Vee die servo 'n paar grade heen en weer vir 'n "haelgeweer".
  • As ons drie snellers te vinnig kry, skakel die opname uit, stop 'n bietjie en werk dan die verwysingsraamwerk op, want ons skiet moontlik op 'n skaduwee of stoeplig wat pas aangeskakel is …
  • Werk die verwysingsraamwerk elke paar minute op om rekening te hou met lae frekwensieveranderinge (die son wat opkom/sak, bewolk beweeg, ens.)

Ek gebruik slegs 'n horisontale miksmeganisme, maar baie pan/kantel servo -houers is beskikbaar op eBay, en dit sou maklik wees om nog 'n servo by te voeg vir die beheer van vertikale mik as u meer akkurate doelwitte wou hê.

Ek het die Raspberry Pi opgestel om as 'n VNC -bediener te werk, en dan via my skootrekenaar via VNC daaraan gekoppel om die program te begin en die video en logboeke te monitor. cd in die gids waar u water_blaster.py stoor en dit uitvoer deur te tik:

./python water_blaster.py

Dit sal 'n videomonitorvenster oopmaak, 'n loglêer met die naam "./log_phia_date]_time begin, en 'n subgids met die naam" trigger_pictures "skep waar jpg-lêers (trigger_ [datum] _ [tyd]) gestoor word vir elke skoot wat geneem is.

Hier is 'n paar aantekeninge oor die opstel van VNC op u Raspberry Pi:

Die eerste keer dat ek die Raspberry Pi opgestel het, het ek 'n eksterne monitor/sleutelbord/muis gebruik om dinge op te stel. Daar het ek die VNC -bediener by die RasPi -konfigurasie (Raspberry Logo / Preferences / Raspberry Pi Configuration / Interfaces / Check VNC option) geaktiveer. As u daarna opstart, kan u via die VNC -kliënt met sy: 0 -skerm aansluit (met dieselfde geloofsbriewe as die standaard gebruiker "pi").

In 'n koplose modus word standaard 'n skerm met 'n baie klein resolusie (aangesien dit geen skerm opspoor nie), om dit tot 'n groter resolusie te dwing, voeg u dit by /boot/config.txt en herbegin:

# Gebruik as u 'n skerm het# hdmi_ignore_edid = 0xa5000080hdmi_group = 2# 1400x1050 w/ 60Hz# hdmi_mode = 42# 1356x768 w/ 60Hzhdmi_mode = 39

Hier is meer inligting:

Stap 2: Die elektronika

Die waterblaster -elektronikavereistes is minimaal met behulp van die Raspberry Pi 3 gpio om 'n servo, waterklep en IR -verligter via diskrete transistorbuffers (gebou op 'n klein protobord) aan te dryf. 'N Standaard NoIR -kamera word direk by die Raspberry Pi aangesluit.

Die naam van die skematika is: water_blaster_schematic.pdf en word hieronder aangeheg.

Ek gebruik 'n 5v/2.5A toegewyde toevoer vir die Raspberry Pi en 'n 12v/1A toevoer vir die bestuur van die IR -verligter en waterklep. Die 12v -toevoer dryf ook 'n 5V -reguleerder om die 5V -servo van krag te voorsien. Dit is gedoen om die “raserige” motorbeheerkrag geïsoleerd van die Raspberry Pi 5v -toevoer te hou. Die 12v/1A -toevoer blyk op sy maksimum te wees (eintlik effens verby sodra ek die waaier bygevoeg het). Die kode skakel die IR -verligter af voordat die waterkleprelais aangeskakel word om die stroomopname binne bereik te hou … Dit sou beter wees as u 'n 1,5A -toevoer gebruik. Sluit die grondklemme van al die kragtoevoer aan.

Die kameramodule is 'n standaard NoIR -weergawe wat direk by die Raspberry Pi aansluit. Dit is 'n Raspberry Pi -kamera met die IR -filter wat reeds verwyder is, waarmee dit saam met 'n IR -verligter gebruik kan word vir die neem van nagvideo's.

Die servo wat gebruik word, is 'n standaard 5v lineêre servo met 'n wringkrag van 3-4 kg-cm.

Die IR -verligter was 'n goedkoop ring met 48 LED's wat ek vir ongeveer $ 4 op eBay gevind het. Dit is nie supersterk nie en kan slegs tot ongeveer 15 voet verlig word. As u ekstra begroting het, is dit 'n goeie verbetering om 'n sterker verligter te kry.

Ek het 'n 'ontfout-skakelaar' by gpio23 gevoeg. Die kode kontroleer die toestand van die skakelaar en as dit ingedruk word, word die waterklep-aflos uitgeskakel vir droë vuurtoetse. Ek het gedink ek sou meer doen met die skakelaar, maar ek het dit glad nie gebruik nie. Ek verwyder dit en die kode wat dit soek …

Stap 3: Konstruksie: kamera en IR -verligter

Konstruksie: kamera en IR -verligter
Konstruksie: kamera en IR -verligter

Ek het 'n Harbour Freight -ammunisiekas as plastiekkas gebruik. Ek het hoofsaaklik iets waterbestand nodig gehad, aangesien baie watersproei/afloop onvermydelik is. Daar is baie gate/uitsparings, maar dit word bedek met afdakke, deursigtige plastiek, of word onder oorhangings geboor om water te gooi. In die agterkop moes ek 'n metaalboks met koelblaaie gebruik het wat intern aan die hoëkragkomponente geheg is. Deur dit te doen, dink ek dat ek die ventilator kon byvoeg. Die plastiekboks was te isolerend en het die binnetemperatuur te veel laat styg.

'N Klein venster is aan die einde gesny sodat die kamera kan kyk en die IR -verligter is in 'n ou plastiek lenskas wat ek laat lê het, gemonteer.

Stap 4: Konstruksie: Waterleiding

Konstruksie: Waterleiding
Konstruksie: Waterleiding
Konstruksie: Waterleiding
Konstruksie: Waterleiding

Die waterinlaat word in 'n 12V -waterklep geplaas wat aan 'n vinyl”ID x 3/8” OD -vinielbuis gekoppel is. Dit word weer gekoppel aan 'n ¼”doringbuis met ¾ glip -pasgemaakte PVC -aansluiting en vasgeplak op 'n ¾” PVC -waterdop met 'n 1/16”gat wat vir die waterstroom geboor is. Ek wou die waterklep-relais uit die weer hou sodat dit in die boks gemonteer word. Die gevaar bestaan dat ek kan lek, maar ek het afvoergate in die onderkant van die boks geboor en die elektronika hoog gemonteer om die kans op moontlike waterskade aan die elektronika te verminder as dit gebeur. 'N Minder esteties aangename, maar veiliger plan, is om die klep aan die buitekant te monteer en die 12v -aflosdrade binne te laat loop. Die deursigtige plastiekskyf oor die servo was 'n maklike manier om die slangkant te monteer, en dit keer dat water op die servo drup. Die waaier was 'n nagedagte omdat die boks te veel opwarm. Ek het 'n klein afdak daaroor gebou om te verhoed dat water instroom.

Stap 5: Konstruksie: mik servo

Konstruksie: mik servo
Konstruksie: mik servo

'N Gat word in die bokant van die boks gesny en die mikservo word gemonteer en met silikon verseël om water uit te hou.

Stap 6: Konstruksie: Monteer die kragtoevoer, waaier, Framboos Pi en Proto-bord

Konstruksie: montering van kragtoevoer, waaier, framboos Pi en protobord
Konstruksie: montering van kragtoevoer, waaier, framboos Pi en protobord

Die twee kragtoevoer (5v en 12v) is bedraad aan 'n enkele netsnoer wat die kant van die boks verlaat. Die Raspberry Pi en 'n protobord is aan die bokant van die boks gemonteer. Let op die dreineringsgate wat aan die onderkant geboor is en die gate wat aan die boonste rand geboor is. Die waaier is teenoor die Raspberry Pi gemonteer. Daar is geen aan/uit -skakelaar nie, want ek wil nie aanmoedig om die Raspberry Pi af te skakel sonder 'n formele opdrag "sudo shutdown now" nie (dws wil nie hê dat die krag te maklik afgeskakel word nie).

Stap 7: Konstruksie: die Proto -raad

Konstruksie: die Proto Board
Konstruksie: die Proto Board

Die protobord bevat 'n 5V-reguleerder, filterdop, kragtransistors (wat die servo- en waterklep aandryf) en 'n ontfoutingsskakelaar.

Stap 8: Konstruksie: Framboos Pi -kamera

Konstruksie: Framboos Pi -kamera
Konstruksie: Framboos Pi -kamera

Die Raspberry Pi -kamera verbind direk met die Raspberry Pi via die lintkabel en is gemonteer op die deurskynende plastiekplaat wat die uitsig aan die voorkant van die boks bedek.

Stap 9: Onderdele lys

Die projek het uiteindelik ongeveer $ 120 gekos. Die grootste deel van die koste van die projek is die Raspberry Pi, kamera, servo en kragbronne. Ek het die meeste onderdele op eBay of Amazon en die loodgietersonderdele by die plaaslike hardewarewinkel gevind.

  • Framboos Pi 3 (Amazon) $ 38
  • NoIR -kamera (EBay) $ 30
  • 5v analoog servo (wringkrag van 4 kg) (EBay) $ 10
  • 5v/2.4A muurkragvoorsiening (EBay) $ 8
  • 12v ½”waterklep (EBay) $ 5
  • Buise, pypverbindings (Osh) $ 5
  • Plastiek -ammunisiekas (hawe -vrag) $ 5
  • 12v/1.5A muurkragvoorsiening (EBay) $ 5
  • IR Illuminator (EBay) $ 4
  • Diverse Komponente (weerstande, skakelaars, diode) $ 2
  • CPU -waaier (EBay) $ 2
  • Proto Board, afstande, skroewe (EBay) $ 2
  • (2) Kragtransistors (2n5296) (EBay) $ 1
  • 5v -reguleerder (LM7805) (EBay) $ 1
  • Deursigtige plastiek 3/32”(kraan plastiek Diverse bak) $ 1
  • Netsnoer (Osh) $ 1

Winkels/webwerwe waar ek items gekoop het:

  • Alice1101983 eBay webwerf:
  • 2bevoque eBay webwerf:
  • Harbour Vrag
  • Orchard Supply Hardware
  • Amazon
  • Tik op Plastiek

Aanbeveel: