Satura rādītājs:

Automātiski izsekojošs ūdens strūkla: 9 soļi
Automātiski izsekojošs ūdens strūkla: 9 soļi

Video: Automātiski izsekojošs ūdens strūkla: 9 soļi

Video: Automātiski izsekojošs ūdens strūkla: 9 soļi
Video: Kā automātiski tulkot ziņas WEB WhatsApp? 2024, Novembris
Anonim
Automātiski izsekojošs ūdens pūtējs
Automātiski izsekojošs ūdens pūtējs

Briedis, kas ēd rozes, motivēja mani izveidot mērķa izsekošanas ūdens pūtēju, lai palīdzētu atturēt rijīgos dzīvniekus… Šis ūdens pūtējs izmanto video balstītu kustību noteikšanu, lai mērķētu uz servo un izraisītu īsus ūdens pārrāvumus mērķī. Tas uzņem tikai pēc tam, kad iegūtais mērķis dažas sekundes ir nekustīgs (aizkavi var regulēt kodā). Man vienalga, vai brieži tikai staigā garām, bet, ja viņi apstājas uzkodām, plosās!

Šeit ir video, kurā es testēju ūdens pūtēju:

Ūdens pūtējs ir atsevišķa kaste, kuru var attālināti savienot (izmantojot Wi-Fi/VNC) no jebkura tīkla datora, lai uzraudzītu, ko tā dara. Katru reizi, kad tas tiek aktivizēts, tiek uzņemts attēls, lai vēlāk varētu redzēt, kas tika uzspridzināts.

Es izmantoju Raspberry Pi, NoIR cam, IR apgaismotāju, standarta lineāro servo un ūdens vārstu, lai izveidotu šo dienas/nakts mērķa izsekošanas ūdens pūtēju. Kods ir rakstīts Python un lielā mērā aizņemas no Adrian Rosebrock cv2 attēlu apstrādes koda paraugiem. Jūs varat redzēt viņa rakstīto vietnē:

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

Tā kā es tiecos pēc salīdzinoši lieliem, uz zemes esošiem mērķiem (briežiem), mana problēma ir nedaudz vienkāršota. Man ir nepieciešama tikai horizontāla mērķēšana, lai es varētu izkļūt, izmantojot tikai vienu servo. Gaidīšana, kad brieži stāvēs uz vietas, palīdz man novērst daudzus viltus izraisītājus. Šis ir mans rev-0 mēģinājums, un esmu atradis dažas lietas, kuras es labotu, ja uzbūvētu citu. Es esmu atzīmējis šīs lietas detalizētajā rakstā, kas seko.

1. darbība: kods

Ūdens spridzinātājs apstrādei izmanto Raspberry Pi 3. Video uzņemšanai tiek izmantots NoIR Raspberry Pi kamera, kā arī nakts apgaismojuma IR apgaismotājs. Paketni OpenCV/cv2 Python izmanto, lai uztvertu un apstrādātu attēla informāciju un aprēķinātu mērķa koordinātas. Pigpio bibliotēka tiek izmantota, lai kontrolētu gpio stabilai servo darbībai. Izmantojot parasto RPi. GPIO paketi, radās satricinošs servo. PIEZĪME: Izmantojot pigpio bibliotēku, jums jāpalaiž pigpio dēmons. Pievienojiet to savam Pi /etc/rc.local pigpio lib un Raspberry Pi kameras interfeisa palaišanas failam:

/etc/rc.local# Iestatiet/dev/video0, lai izveidotu saiti uz Raspberry Pi iebūvēto kameras interfacemodprobe bcm2835-v4l2# Palaidiet pigpio dēmonu Raspberry Pi IO vadības bibliotēkai

Plašāku informāciju skatiet vietnē

Avota kods ir nosaukts: water_blaster.py, un tas ir pievienots zemāk.

Atruna: Esmu jauns Python kodēšanas lietotājs, tāpēc neuzskatiet to par lielisku Python kodēšanas stila modeli!

Pamata algoritms ir šāds:

  • Paņemiet sākotnējo video atsauces rāmi. Tas tiks izmantots, lai salīdzinātu, lai noteiktu kustību.
  • Paņemiet citu rāmi.
  • Pārveidojiet rāmi pelēkā skalā, izmēru, aizmiglojiet to.
  • Aprēķiniet atšķirību no atskaites rāmja
  • Filtrējiet nelielas atšķirības, iegūstiet lielākās atšķirības koordinātas.
  • Iestatiet taimeri. Ja mērķa koordinātas nemainās dažas sekundes, tad nofotografējiet to, ko mēs gatavojamies uzņemt, un iedarbiniet ūdens vārstu ūdens strūklai. Slauciet servo dažus grādus uz priekšu un atpakaļ, lai iegūtu “bise”.
  • Ja mēs pārāk ātri saņemam trīs aktivizētājus, atspējojam fotografēšanu, nedaudz pauzējam un pēc tam atjauninām atsauces rāmi, jo, iespējams, fotografējam ēnā vai lieveņa gaismā, kas tikko tika ieslēgta …
  • Ik pēc dažām minūtēm atjauniniet atskaites rāmi, lai ņemtu vērā zemas frekvences izmaiņas (saule lec/riet, mākoņains pārvietojas utt.)

Es izmantoju tikai horizontālu mērķēšanas mehānismu, bet daudzi panoramēšanas/noliekšanas servo stiprinājumi ir pieejami vietnē EBay, un, ja vēlaties precīzāku mērķauditorijas atlasi, vertikālās mērķēšanas kontrolei būtu viegli pievienot vēl vienu servo.

Es iestatīju Raspberry Pi, lai darbotos kā VNC serveris, pēc tam izveidoju savienojumu ar to, izmantojot VNC no sava klēpjdatora, lai sāktu programmu un uzraudzītu video un žurnālus. cd direktorijā, kurā glabājat water_blaster.py, un palaidiet to, ierakstot:

./python water_blaster.py

Tas atvērs video monitora logu, sāks žurnālfailu ar nosaukumu. par katru uzņemto kadru.

Šeit ir dažas piezīmes par VNC iestatīšanu jūsu Raspberry Pi:

Pirmo reizi iestatot Raspberry Pi, es iestatīšanai izmantoju ārēju monitoru/tastatūru/peli. Tur es iespējoju VNC serveri RasPi konfigurācijā (opcija Raspberry Logo / Preferences / Raspberry Pi Configuration / Interfaces / Check VNC). Pēc tam, kad tas sāk darboties, tas ļauj izveidot savienojumu ar tā displeju: 0, izmantojot VNC klientu (ar tādiem pašiem akreditācijas datiem kā noklusējuma lietotājs "pi").

Bezgalvainā režīmā pēc noklusējuma tiek parādīts ļoti mazs izšķirtspējas displejs (jo tas neatklāj nevienu displeju), lai piespiestu to uz lielāku izšķirtspēju, pievienojiet to /boot/config.txt un restartējiet:

# Izmantojiet, ja jums ir displejs# hdmi_ignore_edid = 0xa5000080hdmi_group = 2# 1400x1050 w/ 60Hz# hdmi_mode = 42# 1356x768 w/ 60Hzhdmi_mode = 39

Šeit ir vairāk informācijas:

2. solis: elektronika

Ūdens pūtēja elektronikas prasības ir minimālas, izmantojot Raspberry Pi 3 gpio, lai vadītu servo, ūdens vārstu un IR apgaismotāju, izmantojot diskrētus tranzistora buferus (būvēti uz nelielas proto plates). Standarta NoIR kamera tiek pievienota tieši Raspberry Pi.

Shēmas nosaukums ir: water_blaster_schematic.pdf, un tas ir pievienots zemāk.

Es izmantoju 5v/2.5A speciālu barošanu Raspberry Pi un 12v/1A barošanu IR apgaismotāja un ūdens vārsta vadīšanai. 12 V barošana arī vada 5 V regulatoru, lai piegādātu barošanu 5 V servo. Tas tika darīts, lai “trokšņainā” motora vadības jauda būtu izolēta no Raspberry Pi 5v barošanas avota. 12v/1A padeve izrādījās tieši pie robežas (faktiski nedaudz vairāk, kad pievienoju ventilatoru). Kods izslēdz IR apgaismotāju pirms ūdens vārsta releja barošanas, lai saglabātu strāvas patēriņu diapazonā … Būtu labāk, ja izmantotu 1,5A barošanas avotu. Noteikti pievienojiet visu barošanas avotu zemējuma spailes kopā.

Kameras modulis ir standarta NoIR versija, kas tiek tieši pievienota Raspberry Pi. Tā ir Raspberry Pi kamera ar jau noņemtu IR filtru, kas ļauj to izmantot ar IR apgaismotāju nakts video uzņemšanai.

Izmantotais servo ir standarta izmēra 5v lineārs servo ar 3-4 kg-cm griezes momentu.

IR apgaismotājs bija lēts 48 led gredzens, kuru es atradu vietnē EBay par aptuveni 4 USD. Tas nav īpaši spēcīgs un var apgaismot tikai līdz aptuveni 15 pēdām. Ja jums ir papildu budžets, spēcīgāka apgaismotāja iegūšana būtu labs uzlabojums.

Es gpio23 pievienoju “atkļūdošanas slēdzi”. Kods pārbauda slēdža stāvokli un, nospiežot, izslēgs ūdens vārsta releju sausās uguns testēšanai. Es domāju, ka ar šo slēdzi darīšu vairāk, bet galu galā to vispār neizmantoju. Es to noņemtu un kodu, kas to meklē …

3. darbība. Konstrukcija: kamera un IR apgaismotājs

Konstrukcija: kamera un IR apgaismotājs
Konstrukcija: kamera un IR apgaismotājs

Kā korpusu es izmantoju plastmasas munīcijas kasti Harbor Freight. Galvenokārt man vajadzēja kaut ko ūdensizturīgu, jo daudz ūdens izsmidzināšanas/noteces ir neizbēgama. Ir daudz caurumu/izgriezumu, bet tie ir pārklāti ar nojumēm, caurspīdīgu plastmasu vai ir izurbti zem pārkarēm, lai iztukšotu ūdeni. No aizmugures redzot, man vajadzēja izmantot metāla kārbu ar radiatoriem, kas iekšēji piestiprināti pie lieljaudas komponentiem. To darot, es domāju, ka es būtu varējis izvairīties no ventilatora pievienošanas. Plastmasas kaste bija pārāk izolējoša un ļāva iekšējai temperatūrai pārāk paaugstināties.

Beigās tika izgriezts neliels logs, lai kamera varētu to redzēt, un IR apgaismotājs tika uzstādīts vecā plastmasas objektīva korpusā, kas man bija uzlikts.

4. solis: būvniecība: ūdensvadi

Konstrukcija: ūdensvadi
Konstrukcija: ūdensvadi
Konstrukcija: ūdensvadi
Konstrukcija: ūdensvadi

Ūdens ieplūdes caurule tiek ievietota 12 voltu ūdens vārstā, kas ir savienots ar ¼”ID x 3/8” OD vinila cauruli. Tas savukārt ir savienots ar ¼”dzeloņstieņu caurulīti ar ¾ slīdošu PVC savienotāju un pielīmēts pie ¾” PVC ūdens vāciņa ar 1/16”caurumu, kas urbts ūdens plūsmai. Es gribēju, lai ūdens vārsta relejs netiktu pakļauts laika apstākļiem, tāpēc tas ir uzstādīts kastes iekšpusē. Pastāv risks, ka es varētu noplūst, bet man ir urbti kanalizācijas caurumi kastes apakšā un uzstādīta elektronika augstu, lai līdz minimumam samazinātu iespēju, ka elektronika var sabojāt ūdeni. Mazāk estētiski pievilcīgs, bet drošāks plāns būtu uzstādīt vārstu uz ārpuses un vadīt 12 voltu releja vadus iekšpusē. Skaidrs plastmasas disks virs servo bija ērts veids, kā uzstādīt šļūtenes galu, un tas neļauj ūdenim pilēt uz servo. Ventilators bija pārdomāts, jo kaste pārāk daudz sasildījās. Virs tās uzbūvēju nelielu tentu, lai ūdens nepilētu iekšā.

5. solis: būvniecība: Servo mērķēšana

Konstrukcija: mērķēts servo
Konstrukcija: mērķēts servo

Kastes augšpusē tiek izgriezts caurums, un mērķa servo ir uzstādīts un noslēgts ar silīciju, lai saglabātu ūdens izplūdi.

6. darbība. Būvniecība: barošanas avotu, ventilatora, Raspberry Pi un prototipa montāža

Konstrukcija: barošanas avotu, ventilatora, Raspberry Pi un Proto-board montāža
Konstrukcija: barošanas avotu, ventilatora, Raspberry Pi un Proto-board montāža

Abi barošanas avoti (5v un 12v) ir savienoti ar vienu barošanas vadu, kas iziet no kastes sāniem. Raspberry Pi un proto dēlis ir uzstādīti kastes malā pie augšpuses. Ievērojiet drenāžas atveres, kas izurbtas apakšā, un gaisa ventilācijas atveres, kas izurbtas gar augšējo malu. Ventilators ir uzstādīts pretī Raspberry Pi. Nav ieslēgšanas/izslēgšanas slēdža, jo es nevēlos iedrošināt izslēgt Raspberry Pi bez oficiālas komandas “sudo shutdown now” (t.i., nevēlaties, lai barošana tiktu izslēgta pārāk viegli).

7. solis: būvniecība: Proto padome

Konstrukcija: Proto padome
Konstrukcija: Proto padome

Proto panelī ir 5V regulators, filtra vāciņš, jaudas tranzistori (kas darbina servo un ūdens vārstu) un atkļūdošanas slēdzis.

8. solis: būvniecība: Raspberry Pi kamera

Konstrukcija: Raspberry Pi kamera
Konstrukcija: Raspberry Pi kamera

Raspberry Pi kamera tiek savienota tieši ar Raspberry Pi, izmantojot lentes kabeli, un tā ir uzstādīta uz caurspīdīgās plastmasas plāksnes, kas aptver skata izgriezumu kastes priekšpusē.

9. solis: detaļu saraksts

Projekts galu galā izmaksāja aptuveni 120 USD. Lielākā projekta izmaksu daļa ir Raspberry Pi, kamera, servo un barošanas avoti. Es atradu lielāko daļu detaļu vietnē EBay vai Amazon un santehnikas detaļas vietējā datortehnikas veikalā.

  • Raspberry Pi 3 (Amazon) 38 ASV dolāri
  • NoIR kamera (eBay) 30 ASV dolāri
  • 5v analogais servo (4kg-cm griezes moments) (EBay) $ 10
  • 5v/2.4A sienas barošanas avots (EBay) 8 ASV dolāri
  • 12v ½”ūdens vārsts (eBay) 5 USD
  • Caurules, cauruļu savienojumi (Osh) 5 ASV dolāri
  • Plastmasas munīcijas kaste (ostas krava) 5 ASV dolāri
  • 12v/1.5A sienas barošanas avots (EBay) 5 ASV dolāri
  • IR apgaismotājs (eBay) 4 ASV dolāri
  • Dažādi Komponenti (rezistori, slēdži, diodes) 2 ASV dolāri
  • CPU ventilators (eBay) 2 ASV dolāri
  • Proto dēlis, pārtraukumi, skrūves (eBay) 2 ASV dolāri
  • (2) Jaudas tranzistori (2n5296) (EBay) 1 ASV dolārs
  • 5v regulators (LM7805) (EBay) 1 ASV dolārs
  • Caurspīdīga plastmasa 3/32”(pieskarieties plastmasai - cita tvertne) $ 1
  • Strāvas vads (Osh) 1 ASV dolārs

Veikali/vietnes, kur es nopirku preces:

  • Alice1101983 eBay vietne:
  • 2bevoque EBay vietne:
  • Ostas kravu pārvadājumi
  • Augļu dārza piegādes aparatūra
  • Amazon
  • Pieskarieties Plastmasa

Ieteicams: