Mündəricat:

Su Blasterini avtomatik izləmə: 9 addım
Su Blasterini avtomatik izləmə: 9 addım

Video: Su Blasterini avtomatik izləmə: 9 addım

Video: Su Blasterini avtomatik izləmə: 9 addım
Video: Mehriban Əliyevanın французский öpüşü 2024, Noyabr
Anonim
Water Blaster avtomatik izləmə
Water Blaster avtomatik izləmə

Gül yeyən maral, cəsarətli canlıların qarşısını almaq üçün hədəf izləyən bir su qurğusu qurmağa həvəsləndirdi … Bu su tökmə cihazı, bir servoya yönəltmək və hədəfə qısa su partlamalarını tetiklemek üçün video əsaslı hərəkət algılamasından istifadə edir. Yalnız əldə edilən hədəf bir neçə saniyə sabit qaldıqdan sonra vurur (gecikmə kodu ilə tənzimlənə bilər). Geyiklərin sadəcə keçib getməyinin fərqi yoxdur, amma qəlyanaltı üçün dayansalar, yuyun!

Su blasterini sınadığım bir video budur:

Su blaster, nə etdiyini izləmək üçün şəbəkənizdəki hər hansı bir kompüterdən (wi-fi/VNC vasitəsilə) uzaqdan qoşula bilən müstəqil bir qutudur. Hər dəfə tetiklendiğinde bir şəkil çəkilir ki, sonradan nəyin partladığını görə biləsiniz.

Bu gecə -gündüz hədəf izləmə su qurğusunu yaratmaq üçün bir Raspberry Pi, NoIR cam, IR işıqlandırıcı, standart xətti servo və su klapanı istifadə etdim. Kod Python -da yazılıb və Adrian Rosebrock -un cv2 görüntü emal kodu nümunələrindən çox borc götürür. Yazısını buradan görə bilərsiniz:

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

Nisbətən böyük, yerə əsaslanan hədəflərin (maralların) arxasınca getdiyim üçün problemim bir qədər sadələşdirildi. Yalnız üfüqi nişan almağı tələb edirəm, buna görə yalnız bir servo istifadə edərək uzaqlaşa bilərəm. Geyiklərin dayanmasını gözləmək, bir çox yalançı tətikçiləri aradan qaldırmağa kömək edir. Bu mənim rev-0 cəhdimdir və başqa birini qursam dəyişdirəcəyim bir neçə şey tapdım. Bunları aşağıdakı ətraflı yazıda qeyd etdim.

Addım 1: Kod

Su təmizləyicisi, işləmək üçün Raspberry Pi 3 istifadə edir. Video çəkmək üçün NoIR Raspberry Pi kamerası, gecə video üçün İQ işıqlandırıcı ilə birlikdə istifadə olunur. OpenCV/cv2 Python paketi, görüntü məlumatlarını çəkmək və emal etmək və hədəf koordinatlarını hesablamaq üçün istifadə olunur. Donuz kitabxanası, sabit servo işləməsi üçün gpio idarə etmək üçün istifadə olunur. Daimi RPi. GPIO paketindən istifadə tərpənməklə nəticələndi. Qeyd: pigpio kitabxanasından istifadə edərkən pigpio daemonunu işə salmalısınız. Bunu pig -lib və Raspberry Pi kamera interfeysi üçün Pi -nin /etc/rc.local başlanğıc faylına əlavə edin:

/etc/rc.local# Kamera interfacemodprobe bcm2835-v4l2-də qurulmuş Raspberry Pi-yə keçid etmək üçün/dev/video0 qurun# Raspberry Pi IO nəzarət kitabxanası üçün pigpio daemonunu işə salın

Daha ətraflı məlumat üçün https://pypi.python.org/pypi/pigpi səhifəsinə baxın.

Mənbə kodunun adı: water_blaster.py və aşağıda əlavə edilmişdir.

İmtina: Python kodlaşdırması üçün yeniyəm, buna görə Python kodlaşdırma üslubunun hər hansı bir əla modeli kimi davranmayın!

Əsas alqoritm aşağıdakı kimidir:

  • İlkin video istinad çərçivəsini götürün. Bu, hərəkəti aşkar etmək üçün müqayisə etmək üçün istifadə ediləcək.
  • Başqa bir çərçivə götürün.
  • Çərçivəni boz rəngə çevirin, ölçüsünü dəyişin, bulanıqlaşdırın.
  • İstinad çərçivəsindən fərqi hesablayın
  • Kiçik fərqləri süzün, ən böyük fərqin koordinatlarını alın.
  • Taymer təyin edin. Hədəf koordinatı bir neçə saniyə ərzində dəyişməzsə, vurmaq istədiyimizin şəklini çəkin və su klapanının su partlaması üçün işə salın. Bir "ov tüfəngi" partlatması üçün servonu bir neçə dərəcə irəli və irəli sürüşdürün.
  • Üç tətiyi çox tez əldə etsək, çəkilişi deaktiv edin, bir az ara verin, sonra yeni açılan bir kölgəyə və ya eyvan işığına atəş aça biləcəyimiz üçün istinad çərçivəsini yeniləyin …
  • Aşağı tezlikli dəyişiklikləri (günəşin çıxması/batması, buludlu şəkildə hərəkət etməsi və s.)

Mən yalnız üfüqi bir nişan alma mexanizmindən istifadə edirəm, lakin EBay -də bir çox pan/tilt servo montajı var və daha dəqiq hədəf almaq istəyirsinizsə şaquli nişanlanmanı idarə etmək üçün başqa bir servo əlavə etmək asan olardı.

Raspberry Pi -ni VNC serveri olaraq qurmaq üçün qurdum, sonra proqramı işə salmaq və videoya və qeydlərə baxmaq üçün dizüstü kompüterimdən VNC vasitəsi ilə ona qoşuldum. cd faylını water_blaster.py saxladığınız qovluğa daxil edin və yazaraq işə salın:

./python water_blaster.py

Bir video monitor pəncərəsi açılacaq, "./log_ [tarix]_ [vaxt] adlı bir günlük faylı başlayacaq və-j.webp

Raspberry Pi -də VNC qurmaqla bağlı bəzi qeydlər:

Raspberry Pi -ni ilk dəfə quranda hər şeyi qurmaq üçün xarici monitor/klaviatura/siçan istifadə etdim. Orada RasPi konfiqurasiyasında VNC serverini işə saldım (Raspberry Logo / Preferences / Raspberry Pi Configuration / Interfaces / Check VNC option). Daha sonra, açıldıqda, VNC müştəri vasitəsi ilə 0 ekranına qoşulmağa imkan verir (standart istifadəçi "pi" ilə eyni etimadnaməyə malikdir).

Başsız rejimdə çox kiçik bir qətnamə ekranına sahibdir (heç bir ekranı aşkar etmədiyi üçün), daha böyük bir qətnaməyə məcbur etmək üçün bunu /boot/config.txt -ə əlavə edin və yenidən başladın:

# Göstəriciniz varsa istifadə edin# hdmi_ignore_edid = 0xa5000080hdmi_group = 2# 1400x1050 w/ 60Hz# hdmi_mode = 42# 1356x768 w/ 60Hzhdmi_mode = 39

Burada daha çox məlumat var:

Addım 2: Elektronika

Raspberry Pi 3 gpio istifadə edərək, su blaster elektronikasına olan tələblər diskret tranzistor tamponları (kiçik bir proto lövhədə qurulmuş) vasitəsilə servo, su klapanı və İQ işıqlandırıcısını idarə etmək üçün minimaldır. Standart NoIR kamerası birbaşa Raspberry Pi -yə qoşulur.

Şematik adı: water_blaster_schematic.pdf və aşağıda əlavə edilmişdir.

Raspberry Pi üçün 5v/2.5A xüsusi təchizatı və İQ işıqlandırıcı və su klapanının idarə edilməsi üçün 12v/1A təchizatı istifadə etdim. 12v təchizatı, 5v servoya enerji vermək üçün 5v tənzimləyicisini də idarə edir. Bu, Raspberry Pi 5v təchizatından təcrid olunmuş "səs -küylü" motor idarəetmə gücünü saxlamaq üçün edildi. 12v/1A tədarükünün həddində olduğu ortaya çıxdı (fan əlavə etdikdən sonra əslində bir az artıq). Kod, cari çəkilişi diapazonda saxlamaq üçün su valfi rölesini işə salmadan əvvəl İQ işıqlandırıcısını söndürür … 1.5A təchizatı istifadə etsəniz daha yaxşı olar. Bütün enerji mənbələrinin topraklama terminallarını bir -birinə bağladığınızdan əmin olun.

Kamera modulu, Raspberry Pi -yə birbaşa qoşulan standart NoIR versiyasıdır. IR filtri olan bir Raspberry Pi kamerası, artıq gecə video çəkmək üçün İQ işıqlandırıcı ilə istifadə olunmasını təmin edir.

İstifadə olunan servo, 3-4 kq-sm fırlanma anına malik standart ölçülü 5v xətti servodur.

IR işıqlandırıcı, EBay -də təxminən 4 dollara tapdığım aşağı qiymətli 48 led üzük idi. Çox güclü deyil və yalnız 15 futa qədər işıqlandıra bilər. Əlavə büdcəniz varsa, daha güclü bir işıqlandırıcı almaq yaxşı bir inkişaf olardı.

Gpio23-ə "debug-switch" əlavə etdim. Kod, açarın vəziyyətini yoxlayır və basıldığında quru yanğın testi üçün su klapanı rölesini deaktiv edəcək. Bu keçidlə daha çox şey edəcəyimi düşündüm, amma ümumiyyətlə istifadə etmədim. Onu və onu axtaran kodu silərdim …

Addım 3: Tikinti: Kamera və İQ İşıqlandırıcı

Tikinti: Kamera və İQ İşıqlandırıcı
Tikinti: Kamera və İQ İşıqlandırıcı

Mən bir Harbor Freight plastik sursat qutusunu korpus kimi istifadə etdim. Əsasən suya davamlı bir şeyə ehtiyacım var, çünki bir çox su spreyi/axını qaçılmazdır. Çox sayda çuxur/kəsik var, ancaq tenteler, şəffaf plastiklə örtülmüş və ya su tökmək üçün çıxıntılar altında qazılmışdır. Gələcəkdə, yüksək güclü komponentlərə daxili olaraq soyuducuları olan bir metal qutu istifadə etməliydim. Bunu etməklə fanatı əlavə etməkdən qaça biləcəyimi düşünürəm. Plastik qutu çox yalıtıcı idi və daxili istiliyin çox yüksəlməsinə icazə verdi.

Kameranın görünməsi üçün sonunda kiçik bir pəncərə kəsildi və İQ işıqlandırıcısı ətrafımda qoyduğum köhnə bir plastik lens korpusunun içinə quraşdırıldı.

Addım 4: Tikinti: Su Borusu

Tikinti: Su Borusu
Tikinti: Su Borusu
Tikinti: Su Borusu
Tikinti: Su Borusu

Su girişi ID”ID x 3/8” OD vinil boruya qoşulmuş 12v su klapanına borularla çəkilir. Bu, öz növbəsində, PVC konnektoru olan ¼ "tikanlı boruya bağlanır və su axını üçün qazılmış 1/16" delikli ¾ "PVC su qapağına yapışdırılır. Su klapan rölesini hava şəraitində saxlamaq istədim ki, qutunun içərisinə quraşdırılsın. Sızma təhlükəsi var, ancaq qutunun altındakı drenaj delikləri qazdım və bu baş verərsə, elektronikaya potensial su ziyan vurma ehtimalını minimuma endirmək üçün elektronikanı yuxarı qaldırdım. Daha az estetik baxımdan daha təhlükəsiz bir plan, klapanı xaricə quraşdırmaq və içərisində 12v röle tellərini çəkməkdir. Servo üzərindəki şəffaf plastik disk, hortum ucunu bağlamaq üçün əlverişli bir yol idi və suyun servoya düşməsini maneə törədirdi. Qutunun həddindən artıq istiləşdiyi üçün fanat sonradan düşünülmüşdü. Su damlamaması üçün üstünə kiçik bir tent qurdum.

Addım 5: Tikinti: Servo Nişanı

Tikinti: Servo Məqsəd
Tikinti: Servo Məqsəd

Qutunun yuxarısında bir çuxur kəsilir və nişan verən servo su keçirməməsi üçün silikonla bağlanır və möhürlənir.

Addım 6: Tikinti: Güc qaynaqlarının, Fan, Raspberry Pi və Proto taxtasının quraşdırılması

Tikinti: Güc qaynaqlarının, Fan, Raspberry Pi və Proto-boardun quraşdırılması
Tikinti: Güc qaynaqlarının, Fan, Raspberry Pi və Proto-boardun quraşdırılması

İki enerji təchizatı (5v və 12v) qutunun kənarından çıxan tək bir elektrik kabelinə bağlanır. Raspberry Pi və proto lövhə qutunun üst tərəfinə yaxın tərəfə quraşdırılmışdır. Dibində drenaj deliklərinə və yuxarı kənar boyunca havalandırma deliklərinə diqqət yetirin. Fan Raspberry Pi ilə üzbəüz quraşdırılmışdır. Raspberry Pi -nin rəsmi "indi sudo bağlanması" əmri olmadan bağlanmasını təşviq etmək istəmədiyim üçün açma/söndürmə açarı yoxdur (yəni gücün çox asanlıqla sönməsini istəmirəm).

Addım 7: Tikinti: Proto Board

Tikinti: Proto Board
Tikinti: Proto Board

Proto lövhədə 5v tənzimləyici, filtr qapağı, güc tranzistorları (servo və su valfını idarə edən) və bir ayaq açarı var.

Addım 8: Tikinti: Raspberry Pi Kamera

Tikinti: Raspberry Pi Kamera
Tikinti: Raspberry Pi Kamera

Raspberry Pi kamerası birbaşa Raspberry Pi -yə lent kabeli vasitəsi ilə bağlanır və qutunun ön hissəsindəki kəsikləri əhatə edən şəffaf plastik lövhəyə quraşdırılmışdır.

Addım 9: Parça siyahısı

Layihə təxminən 120 dollara başa gəldi. Layihənin dəyərinin böyük hissəsi Raspberry Pi, kamera, servo və enerji təchizatıdır. Əksər hissələri EBay və ya Amazon -da və santexnika hissələrini yerli hardware mağazasında tapdım.

  • Raspberry Pi 3 (Amazon) 38 dollar
  • NoIR Kamera (EBay) 30 dollar
  • 5v Analog Servo (4 kq-sm fırlanma anı) (EBay) 10 dollar
  • 5v/2.4A Divar Güc Təchizatı (EBay) 8 dollar
  • 12v ½”Su Valfi (EBay) 5 dollar
  • Borular, Boru Bağlayıcıları (Oş) 5 dollar
  • Plastik Cep Qutusu (Liman Yükü) 5 dollar
  • 12v/1.5A Divar Güc Təchizatı (EBay) 5 dollar
  • IR İşıqlandırıcı (EBay) 4 dollar
  • Digər Komponentlər (Rezistorlar, Açarlar, Diod) 2 dollar
  • CPU Fan (EBay) 2 dollar
  • Proto Board, Standofflar, Vintlər (EBay) 2 dollar
  • (2) Güc Transistorları (2n5296) (EBay) 1 dollar
  • 5v tənzimləyicisi (LM7805) (EBay) 1 dollar
  • Şəffaf Plastik 3/32”(Tap Plastics Misc. Bin) 1 dollar
  • Güc Kabeli (Oş) 1 dollar

Əşya aldığım mağazalar/saytlar:

  • Alice1101983 EBay Saytı:
  • 2bevoque EBay Saytı:
  • Liman Yükü
  • Bahçeli Təchizat Təchizatı
  • Amazon
  • Plastikləri vurun

Tövsiyə: