İçindekiler:
- Adım 1: Kod
- 2. Adım: Elektronik
- Adım 3: İnşaat: Kamera ve IR Aydınlatıcı
- Adım 4: İnşaat: Su Boruları
- Adım 5: İnşaat: Hedefleme Servosu
- Adım 6: İnşaat: Güç Kaynaklarının, Fanın, Raspberry Pi'nin ve Proto-board'un Montajı
- Adım 7: İnşaat: Proto Panosu
- Adım 8: İnşaat: Raspberry Pi Kamera
- Adım 9: Parça Listesi
Video: Otomatik İzlemeli Su Püskürtücü: 9 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
Gül yiyen geyik, açgözlü yaratıkları caydırmak için hedefi takip eden bir su püskürtücüsü yapmaya beni motive etti… Bu su püskürtücü, bir servoyu hedeflemek ve hedefe kısa süreli su patlamalarını tetiklemek için video tabanlı hareket algılama kullanır. Yalnızca alınan hedef birkaç saniye sabit kaldıktan sonra ateş eder (gecikme kodda ayarlanabilir). Geyiklerin geçip gitmesi umurumda değil ama bir şeyler atıştırmak için dururlarsa, sloosh!
İşte su püskürtücüyü test ettiğim bir video:
Su püskürtücü, ne yaptığını izlemek için ağınızdaki herhangi bir bilgisayardan (wi-fi/VNC aracılığıyla) uzaktan bağlanabilen bağımsız bir kutudur. Her tetiklendiğinde bir fotoğraf çeker, böylece daha sonra neyin patladığını görebilirsiniz.
Bu gündüz/gece hedef izlemeli su püskürtücüyü oluşturmak için bir Raspberry Pi, NoIR kamera, IR aydınlatıcı, standart lineer servo ve bir su valfi kullandım. Kod Python'da yazılmıştır ve Adrian Rosebrock'un cv2 görüntü işleme kod örneklerinden büyük ölçüde ödünç alınmıştır. Yazısını şurada görebilirsiniz:
www.pyimagesearch.com/2015/06/01/home-surv…
Nispeten büyük, yer tabanlı hedeflerin (geyik) peşinden gittiğim için sorunum biraz basitleştirilmiş. Sadece yatay hedeflemeye ihtiyacım var, böylece sadece bir servo kullanarak kurtulabilirim. Geyiğin hareketsiz durmasını beklemek birçok yanlış tetikleyiciyi ortadan kaldırmama yardımcı oluyor. Bu benim rev-0 denemem ve bir tane daha yaparsam değiştireceğim birkaç şey buldum. Bunları aşağıdaki ayrıntılı yazımda not ettim.
Adım 1: Kod
Su püskürtücü, işleme için Raspberry Pi 3'ü kullanır. Video çekmek için, gece videosu için bir IR aydınlatıcı ile birlikte bir NoIR Raspberry Pi kamerası kullanılır. OpenCV/cv2 Python paketi, görüntü bilgilerini yakalamak ve işlemek ve hedef koordinatları hesaplamak için kullanılır. Pigpio kitaplığı, kararlı servo çalışması için gpio'yu kontrol etmek için kullanılır. Normal RPi. GPIO paketini kullanmak titrek bir servo ile sonuçlandı. NOT: Pigpio kitaplığını kullanırken pigpio arka plan programını çalıştırmanız gerekir. Bunu, pigpio lib ve Raspberry Pi kamera arayüzü için Pi'nizin /etc/rc.local başlangıç dosyasına ekleyin:
/etc/rc.local# /dev/video0'ı yerleşik Raspberry Pi'ye bağlanacak şekilde ayarlayın modprobe bcm2835-v4l2# Raspberry Pi IO kontrol kitaplığı için pigpio arka plan programını başlatınpigpiod
Daha fazla ayrıntı için https://pypi.python.org/pypi/pigpi adresine bakın.
Kaynak kodun adı: water_blaster.py ve aşağıda eklenmiştir.
Feragatname: Python kodlamasında yeniyim, bu yüzden onu Python kodlama stilinin harika bir modeli olarak görmeyin!
Temel algoritma aşağıdaki gibidir:
- Bir başlangıç video referans çerçevesi alın. Bu, hareketi algılamak için karşılaştırmak için kullanılacaktır.
- Başka bir çerçeve al.
- Çerçeveyi gri skalaya dönüştürün, boyutlandırın, bulanıklaştırın.
- Referans çerçevesinden farkı hesaplayın
- Küçük farkları filtreleyin, en büyük farkın koordinatlarını alın.
- Bir zamanlayıcı ayarlayın. Hedef koordinatı birkaç saniye değişmezse, çekmek üzere olduğumuz şeyin bir resmini çekin ve su vanasını bir su patlaması için tetikleyin. Bir "av tüfeği" patlaması için servoyu birkaç derece ileri geri hareket ettirin.
- Üç tetikleyiciyi çok hızlı bir şekilde alırsak, çekimi devre dışı bırakın, biraz duraklayın, ardından yeni açılan bir gölgede veya sundurma ışığında çekim yapıyor olabileceğimiz için referans çerçevesini güncelleyin…
- Birkaç dakikada bir, düşük frekans değişikliklerini hesaba katmak için referans çerçevesini güncelleyin (güneşin doğuşu/ayarlanması, bulutlu havanın içeri girmesi vb.)
Ben sadece yatay bir hedefleme mekanizması kullanıyorum ama EBay'de birçok pan/tilt servo montajı mevcut ve daha hassas hedefleme istiyorsanız, dikey hedeflemeyi kontrol etmek için başka bir servo eklemek kolay olurdu.
Raspberry Pi'yi bir VNC sunucusu olarak çalışacak şekilde kurdum, ardından programı başlatmak ve videoyu ve günlükleri izlemek için dizüstü bilgisayarımdan VNC aracılığıyla bağlandım. water_blaster.py dosyasını sakladığınız dizine cd atın ve şunu yazarak çalıştırın:
./python su_blaster.py
Bir video monitör penceresi açacak, "./log_[date]_[time] adlı bir günlük dosyası başlatacak ve-j.webp
Raspberry Pi'nizde VNC kurulumu hakkında bazı notlar:
Raspberry Pi'yi ilk kurduğumda, ayarları yapmak için harici bir monitör/klavye/fare kullandım. Orada RasPi yapılandırmasında VNC sunucusunu etkinleştirdim (Raspberry Logo / Preferences / Raspberry Pi Configuration/Interfaces/ Check VNC seçeneği). Daha sonra, başlatıldığında, VNC istemcisi (varsayılan "pi" kullanıcısı ile aynı kimlik bilgileriyle) aracılığıyla:0 ekranına bağlanmanızı sağlar.
Başsız modda varsayılan olarak çok küçük çözünürlüklü bir ekrana ayarlanır (herhangi bir görüntü algılamadığından), daha büyük bir çözünürlüğe zorlamak için bunu /boot/config.txt dosyasına ekleyin ve yeniden başlatın:
# Ekranınız varsa kullanın# hdmi_ignore_edid=0xa5000080hdmi_group=2# 1400x1050 w/ 60Hz#hdmi_mode=42# 1356x768 w/ 60Hzhdmi_mode=39
İşte biraz daha bilgi:
2. Adım: Elektronik
Raspberry Pi 3 gpio'yu ayrı transistör tamponları (küçük bir ön kart üzerine kurulu) aracılığıyla bir servo, su valfi ve IR aydınlatıcıyı sürmek için kullanırken su püskürtücü elektroniği gereksinimleri minimum düzeydedir. Standart bir NoIR kamera doğrudan Raspberry Pi'ye takılır.
Şematik adı: water_blaster_schematic.pdf ve aşağıda eklenmiştir.
Raspberry Pi için 5v/2.5A özel besleme ve IR aydınlatıcıyı ve su vanasını sürmek için 12v/1A besleme kullandım. 12v kaynağı ayrıca 5v servoya güç sağlamak için bir 5v regülatörü çalıştırır. Bu, "gürültülü" motor kontrol gücünü Raspberry Pi 5v kaynağından izole etmek için yapıldı. 12v/1A kaynağının tam sınırında olduğu ortaya çıktı (aslında fanı eklediğimde biraz fazla). Kod, akım çekişini aralık dahilinde tutmak için su vanası rölesine güç vermeden önce IR aydınlatıcıyı kapatır… 1.5A'lık bir besleme kullanmanız daha iyi olur. Tüm güç kaynaklarının toprak terminallerini birbirine bağladığınızdan emin olun.
Kamera modülü, Raspberry Pi'ye doğrudan bağlanan standart bir NoIR sürümüdür. Bu, IR filtresi zaten çıkarılmış ve gece videosu çekmek için bir IR aydınlatıcı ile kullanılmasını sağlayan bir Raspberry Pi kamerasıdır.
Kullanılan servo standart boyutlu 5v lineer servo olup 3-4 kg-cm torka sahiptir.
IR aydınlatıcı, EBay'de yaklaşık 4 dolara bulduğum düşük maliyetli 48 ledli bir halkaydı. Süper güçlü değil ve sadece yaklaşık 15 fit kadar aydınlatabilir. Fazladan bütçeniz varsa, daha güçlü bir aydınlatıcı almak iyi bir gelişme olacaktır.
gpio23'e bir "hata ayıklama anahtarı" ekledim. Kod, anahtarın durumunu kontrol eder ve basılırsa kuru yangın testi için su vanası rölesini devre dışı bırakır. Bu anahtarla daha fazlasını yapacağımı düşündüm ama aslında hiç kullanmadım. Onu ve onu arayan kodu kaldırırdım…
Adım 3: İnşaat: Kamera ve IR Aydınlatıcı
Muhafaza olarak bir Harbour Freight plastik cephane kutusu kullandım. Esas olarak, çok fazla su spreyi/akıntısı kaçınılmaz olduğu için suya dayanıklı bir şeye ihtiyacım vardı. Çok sayıda delik/kesik var, ancak bunlar tentelerle, şeffaf plastikle kapatılmış veya su dökmek için çıkıntıların altında delinmiş. Geriye dönüp baktığımda, yüksek güçlü bileşenlere dahili olarak bağlı soğutucuları olan metal bir kutu kullanmalıydım. Bunu yaparak fan eklemekten kaçınabileceğimi düşünüyorum. Plastik kutu çok yalıtkandı ve iç sıcaklığın çok fazla yükselmesine izin verdi.
Sonunda kameranın dışarıyı görebilmesi için küçük bir pencere kesildi ve IR aydınlatıcı, etrafta bıraktığım eski bir plastik lens kutusunun içine monte edildi.
Adım 4: İnşaat: Su Boruları
Su girişi, ¼” ID x 3/8” OD vinil boruya bağlı 12v su vanasına boru ile bağlanır. Bu da ¼” tırtıklı boruya ¾ slip fit PVC konektöre bağlanır ve su akışı için delinmiş 1/16” delikli ¾” PVC su başlığına yapıştırılır. Su vanası rölesini hava şartlarından uzak tutmak istedim, böylece kutunun içine monte edildi. Sızıntı yapma tehlikesi var ama kutunun altına tahliye delikleri açtım ve elektronik aksama olası su hasarı olasılığını en aza indirmek için elektroniği yükseğe monte ettim. Estetik açıdan daha az hoş, ancak daha güvenli bir plan, valfi dış tarafa monte etmek ve 12v röle kablolarını içeride çalıştırmak olacaktır. Servo üzerindeki şeffaf plastik disk, hortum ucunu monte etmenin uygun bir yoluydu ve suyun servo üzerine damlamasını engelliyor. Kutu çok fazla ısındığı için fan sonradan akla geldi. Üzerine su damlamasın diye küçük bir tente yaptım.
Adım 5: İnşaat: Hedefleme Servosu
Kutunun üst kısmına bir delik açılmıştır ve nişan alma servosu, suyu dışarıda tutmak için silikonla monte edilmiş ve kapatılmıştır.
Adım 6: İnşaat: Güç Kaynaklarının, Fanın, Raspberry Pi'nin ve Proto-board'un Montajı
İki güç kaynağı (5v ve 12v), kutunun yanından çıkan tek bir güç kablosuna bağlanmıştır. Raspberry Pi ve bir proto kartı, kutunun üst kısmına yakın bir yere monte edilmiştir. Altta açılan tahliye deliklerine ve üst kenar boyunca açılan havalandırma deliklerine dikkat edin. Fan, Raspberry Pi'nin karşısına monte edilmiştir. Raspberry Pi'yi resmi bir "sudo kapatma şimdi" komutu olmadan kapatmayı teşvik etmek istemediğim için açma/kapama düğmesi yok (yani gücün çok kolay kapatılmasını istemiyorum).
Adım 7: İnşaat: Proto Panosu
Proto kartı bir 5v regülatör, filtre kapağı, güç transistörleri (servoyu ve su vanasını çalıştıran) ve bir hata ayıklama anahtarı içerir.
Adım 8: İnşaat: Raspberry Pi Kamera
Raspberry Pi kamerası, şerit kablo aracılığıyla doğrudan Raspberry Pi'ye bağlanır ve kutunun önündeki görüntüleme deliğini kapatan şeffaf plastik plaka üzerine monte edilir.
Adım 9: Parça Listesi
Proje yaklaşık 120 dolara mal oldu. Projenin maliyetinin büyük kısmını Raspberry Pi, kamera, servo ve güç kaynakları oluşturuyor. Parçaların çoğunu EBay veya Amazon'da ve sıhhi tesisat parçalarını yerel hırdavatçıda buldum.
- Ahududu Pi 3 (Amazon) 38 $
- NoIR Kamera (EBay) 30 $
- 5v Analog Servo (4kg-cm tork) (EBay) $10
- 5v/2.4A Duvar Güç Kaynağı (EBay) 8 $
- 12v ½” Su Vanası (EBay) $5
- Boru, Boru Bağlantı Elemanları (Osh) $5
- Plastik Cephane Kutusu (Liman Navlun) $5
- 12v/1.5A Duvar Güç Kaynağı (EBay) $5
- IR Aydınlatıcı (EBay) $4
- Çeşitli Bileşenler (Dirençler, Anahtarlar, Diyot) $2
- CPU Fanı (EBay) 2 $
- Proto Board, Ayırıcılar, Vidalar (EBay) $2
- (2) Güç Transistörleri (2n5296) (EBay) $1
- 5v Regülatör (LM7805) (EBay) $1
- Şeffaf Plastik 3/32” (Tap Plastics Çeşitli Çöp Kutusu) $1
- Güç Kablosu (Oş) $1
Eşya aldığım mağazalar/siteler:
- Alice1101983 EBay Sitesi:
- 2bevoque EBay Sitesi:
- Liman Taşımacılığı
- Meyve Bahçesi Tedarik Donanımı
- Amazon
- Dokunun Plastikler
Önerilen:
VOC İzlemeli IoT Hava İstasyonu: 6 Adım
VOC İzlemeli IoT Hava İstasyonu: Bu talimatta, Uçucu Organik Bileşiklerin (VOC'ler) izlenmesiyle bir Nesnelerin İnterneti (IoT) hava istasyonunun nasıl kurulacağını gösteriyorum. Bu proje için Kendin Yap (DIY) kiti geliştirdim. Donanım ve yazılım açık kaynaklıdır
Bağımsız Arduino 3.3V W/Harici 8 MHz Saat Arduino Uno'dan ICSP / ISP Aracılığıyla Programlanıyor (Seri İzlemeli!): 4 Adım
Bağımsız Arduino 3.3V W/ Harici 8 MHz Saat Arduino Uno'dan ICSP / ISP Aracılığıyla Programlanıyor (Seri İzleme ile!): Amaçlar: 8 MHz harici saat üzerinden 3.3V üzerinde çalışan bağımsız bir Arduino oluşturmak. Bir Arduino Uno'dan (5V'de çalışan) ISP (ICSP olarak da bilinir, devre içi seri programlama olarak da bilinir) aracılığıyla programlamak için Önyükleyici dosyasını düzenlemek ve
Otomatik Alkol Püskürtücü: 3 Adım
Otomatik Alkol Püskürtücü: Bu, yaklaştığınızda alkol püskürten ev yapımı bir makinedir. Ultrasonik sensör elinizi algılar ve servoyu döndürür ve alkol püskürtmek için manivelaya basar. Kodun bağlantısı: https://create.arduino.cc/editor/terry_outsider/df
WiFi Otomatik Rezervuarlı Bitki Besleyici - İç/Dış Yetiştirme Kurulumu - Uzaktan İzleme ile Otomatik Su Tesisleri: 21 Adım
Rezervuarlı WiFi Otomatik Bitki Besleyici - İç/Dış Mekan Yetiştirme Kurulumu - Uzaktan İzleme ile Otomatik Su Tesisleri: Bu eğitimde, bitkileri otomatik olarak sulayan ve Adosia platformu kullanılarak uzaktan izlenebilen özel bir iç/dış bitki besleme sisteminin nasıl kurulacağını göstereceğiz
ESP-12 Kızılötesi Püskürtücü: 7 Adım
ESP-12 Kızılötesi Blaster: esp8266 kullanan Kızılötesi uzaktan kumanda blasteri, Web'den alınan uzaktan kontrol kodlarını birden fazla çıkış cihazını destekler. Temel olarak test için basit bir web sayfasında oluşturulmuştur. Normal kullanım, web sayfalarından veya IFTT'den gelebilecek POST mesajları ile yapılır