Daftar Isi:

Water Blaster Pelacakan Otomatis: 9 Langkah
Water Blaster Pelacakan Otomatis: 9 Langkah

Video: Water Blaster Pelacakan Otomatis: 9 Langkah

Video: Water Blaster Pelacakan Otomatis: 9 Langkah
Video: How to Use Glock Electric Water Gun 2023 2024, November
Anonim
Water Blaster Pelacakan Otomatis
Water Blaster Pelacakan Otomatis

Rusa pemakan mawar memotivasi saya untuk membangun water blaster pelacak target untuk membantu mencegah makhluk rakus… Water blaster ini menggunakan deteksi gerakan berbasis video untuk mengarahkan servo dan memicu semburan air pendek ke target. Ini menembak hanya setelah target yang diperoleh diam selama beberapa detik (penundaan dapat disesuaikan dalam kode). Saya tidak peduli jika rusa hanya lewat tetapi jika mereka berhenti untuk camilan, sloosh!

Berikut adalah video saya menguji water blaster:

Water blaster adalah kotak yang berdiri sendiri yang dapat dihubungkan dari jarak jauh (melalui wi-fi/VNC) dari komputer mana pun di jaringan Anda untuk memantau apa yang dilakukannya. Dibutuhkan gambar setiap kali dipicu sehingga nanti Anda dapat melihat apa yang diledakkan.

Saya menggunakan Raspberry Pi, NoIR cam, IR illuminator, servo linier standar, dan katup air untuk membuat water blaster pelacakan target siang/malam ini. Kode ini ditulis dengan Python dan banyak meminjam dari sampel kode pemrosesan gambar cv2 Adrian Rosebrock. Anda dapat melihat tulisannya di:

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

Karena saya mengejar target darat (rusa) yang relatif besar, masalah saya agak disederhanakan. Saya hanya membutuhkan bidikan horizontal sehingga saya bisa lolos dengan hanya menggunakan satu servo. Menunggu rusa untuk berdiri diam membantu saya menghilangkan banyak pemicu palsu. Ini adalah upaya rev-0 saya dan saya telah menemukan beberapa hal yang akan saya modifikasi jika saya membuat yang lain. Saya telah mencatat hal-hal ini dalam tulisan terperinci berikut ini.

Langkah 1: Kode

Water blaster menggunakan Raspberry Pi 3 untuk pemrosesan. Untuk merekam video, kamera NoIR Raspberry Pi digunakan bersama dengan iluminator IR untuk video malam. Paket Python OpenCV/cv2 digunakan untuk menangkap dan memproses informasi gambar dan menghitung koordinat target. Pustaka pigpio digunakan untuk mengontrol gpio untuk operasi servo yang stabil. Menggunakan paket RPi. GPIO biasa menghasilkan servo yang goyah. CATATAN: Saat menggunakan pustaka pigpio, Anda perlu menjalankan daemon pigpio. Tambahkan ini ke file startup /etc/rc.local Pi Anda untuk pigpio lib dan antarmuka kamera Raspberry Pi:

/etc/rc.local# Atur /dev/video0 untuk menautkan ke Raspberry Pi antarmuka kamera bawaanmodprobe bcm2835-v4l2# Mulai daemon pigpio untuk perpustakaan kontrol Raspberry Pi IOpigpiod

Lihat https://pypi.python.org/pypi/pigpi untuk detail lebih lanjut.

Kode sumber bernama: water_blaster.py dan dilampirkan di bawah ini.

Penafian: Saya baru mengenal pengkodean Python jadi jangan menganggapnya sebagai model gaya pengkodean Python yang hebat!

Algoritma dasarnya adalah sebagai berikut:

  • Ambil bingkai referensi video awal. Ini akan digunakan untuk membandingkan untuk mendeteksi gerakan.
  • Ambil bingkai lain.
  • Ubah bingkai menjadi skala abu-abu, ukuran, buramkan.
  • Hitung perbedaan dari kerangka acuan
  • Saring perbedaan kecil, dapatkan koordinat perbedaan terbesar.
  • Setel pengatur waktu. Jika koordinat target tidak berubah selama beberapa detik, maka ambil gambar apa yang akan kita tembak dan picu katup air untuk semburan air. Sapu servo bolak-balik beberapa derajat untuk ledakan "senapan".
  • Jika kita mendapatkan tiga pemicu terlalu cepat, nonaktifkan pemotretan, jeda sebentar, lalu perbarui bingkai referensi karena kita mungkin memotret bayangan atau lampu teras yang baru saja dinyalakan…
  • Setiap beberapa menit perbarui kerangka referensi untuk memperhitungkan perubahan frekuensi rendah (matahari terbit/terbenam, mendung bergerak, dll.)

Saya hanya menggunakan mekanisme bidikan horizontal tetapi banyak servo mount pan/tilt tersedia di EBay dan akan mudah untuk menambahkan servo lain untuk mengontrol bidikan vertikal jika Anda menginginkan penargetan yang lebih tepat.

Saya mengatur Raspberry Pi untuk dijalankan sebagai server VNC, kemudian menghubungkannya melalui VNC dari laptop saya untuk memulai program dan memantau video dan log. cd ke direktori tempat Anda menyimpan water_blaster.py dan jalankan dengan mengetik:

./python water_blaster.py

Ini akan membuka jendela monitor video, memulai file log bernama "./log_[tanggal]_[waktu], dan membuat subdir bernama "trigger_pictures" tempat file-j.webp

Berikut adalah beberapa catatan tentang pengaturan VNC di Raspberry Pi Anda:

Pertama kali saya mengatur Raspberry Pi, saya menggunakan monitor/keyboard/mouse eksternal untuk mengatur semuanya. Di sana saya mengaktifkan server VNC di konfigurasi RasPi (Logo Raspberry / Preferensi / Konfigurasi Raspberry Pi / Antarmuka / Periksa opsi VNC). Setelah itu, ketika boot, ini memungkinkan Anda untuk terhubung ke tampilan:0 melalui klien VNC (dengan kredensial yang sama dengan pengguna default "pi").

Dalam mode tanpa kepala, default ke tampilan resolusi yang sangat kecil (karena tidak mendeteksi tampilan apa pun), untuk memaksanya ke beberapa resolusi yang lebih besar, Anda menambahkan ini ke /boot/config.txt dan mulai ulang:

# Gunakan jika Anda memiliki tampilan# hdmi_ignore_edid=0xa5000080hdmi_group=2# 1400x1050 w/ 60Hz#hdmi_mode=42# 1356x768 w/ 60Hzhdmi_mode=39

Berikut adalah beberapa info lebih lanjut:

Langkah 2: Elektronik

Persyaratan elektronik water blaster minimal menggunakan Raspberry Pi 3 gpio untuk menggerakkan servo, katup air, dan iluminator IR melalui buffer transistor diskrit (dibangun di atas papan proto kecil). Kamera NoIR standar dihubungkan langsung ke Raspberry Pi.

Nama skemanya adalah: water_blaster_schematic.pdf dan terlampir di bawah.

Saya menggunakan suplai khusus 5v/2.5A untuk Raspberry Pi dan suplai 12v/1A untuk menggerakkan iluminator IR dan katup air. Suplai 12v juga menggerakkan regulator 5v untuk memasok daya ke servo 5v. Ini dilakukan untuk menjaga daya kontrol motor "berisik" terisolasi dari pasokan Raspberry Pi 5v. Pasokan 12v/1A ternyata tepat pada batasnya (sebenarnya sedikit lebih setelah saya menambahkan kipas). Kode mematikan iluminator IR sebelum menyalakan relai katup air untuk menjaga penarikan arus dalam jangkauan… Akan lebih baik jika Anda menggunakan suplai 1,5A. Pastikan untuk menghubungkan terminal arde dari semua catu daya bersama-sama.

Modul kamera adalah versi NoIR standar yang dihubungkan langsung ke Raspberry Pi. Ini adalah kamera Raspberry Pi dengan filter IR yang sudah dilepas sehingga dapat digunakan dengan iluminator IR untuk merekam video malam hari.

Servo yang digunakan adalah servo linier 5v berukuran standar dengan torsi 3-4 kg-cm.

Iluminator IR adalah cincin led 48 berbiaya rendah yang saya temukan di EBay seharga sekitar $4. Itu tidak super kuat dan hanya bisa menerangi sekitar 15 kaki. Jika Anda memiliki anggaran ekstra, mendapatkan iluminator yang lebih kuat akan menjadi peningkatan yang baik.

Saya menambahkan "debug-switch" ke gpio23. Kode memeriksa keadaan sakelar dan jika ditekan akan menonaktifkan relai katup air untuk pengujian api kering. Saya pikir saya akan melakukan lebih banyak dengan sakelar itu tetapi tidak benar-benar menggunakannya sama sekali. Saya akan menghapusnya dan kode yang mencarinya…

Langkah 3: Konstruksi: Kamera dan IR Illuminator

Konstruksi: Kamera dan IR Illuminator
Konstruksi: Kamera dan IR Illuminator

Saya menggunakan kotak amunisi plastik Harbour Freight sebagai penutup. Terutama saya membutuhkan sesuatu yang tahan air karena banyak semprotan air / limpasan tidak bisa dihindari. Ada banyak lubang/guntingan tetapi ditutup dengan awning, plastik bening, atau dibor di bawah overhang untuk mengalirkan air. Di belakang, saya seharusnya menggunakan kotak logam dengan heatsink yang terpasang secara internal ke komponen daya tinggi. Dengan melakukan itu saya pikir saya bisa menghindari menambahkan kipas. Kotak plastik terlalu menyekat dan memungkinkan suhu interior naik terlalu tinggi.

Sebuah jendela kecil dipotong di ujungnya agar kamera dapat melihat keluar dan iluminator IR dipasang di dalam wadah lensa plastik tua yang saya letakkan di sekitar.

Langkah 4: Konstruksi: Perpipaan Air

Konstruksi: Pipa Air
Konstruksi: Pipa Air
Konstruksi: Pipa Air
Konstruksi: Pipa Air

Saluran masuk air disalurkan ke katup air 12v yang terhubung ke tabung vinil” ID x 3/8” OD. Yang pada gilirannya dihubungkan ke pipa berduri” ke konektor PVC slip fit dan direkatkan ke tutup air PVC” dengan lubang 1/16” yang dibor untuk aliran air. Saya ingin menjaga relai katup air dari cuaca sehingga dipasang di dalam kotak. Ada bahaya bahwa saya bisa mendapatkan kebocoran tetapi saya telah mengebor lubang pembuangan di bagian bawah kotak dan memasang elektronik tinggi untuk meminimalkan kemungkinan kerusakan air potensial pada elektronik jika itu terjadi. Rencana yang kurang estetis, tetapi lebih aman, adalah memasang katup di bagian luar dan menjalankan kabel relai 12v di dalamnya. Disk plastik bening di atas servo adalah cara mudah untuk memasang ujung selang dan mencegah air menetes ke servo. Kipas angin menjadi renungan karena kotak itu terlalu panas. Saya membuat tenda kecil di atasnya agar air tidak menetes.

Langkah 5: Konstruksi: Mengarahkan Servo

Konstruksi: Mengarahkan Servo
Konstruksi: Mengarahkan Servo

Sebuah lubang dipotong ke bagian atas kotak dan servo tujuan dipasang dan disegel dengan silikon untuk mencegah air keluar.

Langkah 6: Konstruksi: Memasang Power-supplies, Fan, Raspberry Pi, dan Proto-board

Konstruksi: Memasang Catu Daya, Kipas Angin, Raspberry Pi, dan Papan Proto
Konstruksi: Memasang Catu Daya, Kipas Angin, Raspberry Pi, dan Papan Proto

Dua catu daya (5v dan 12v) dihubungkan ke satu kabel daya yang keluar dari sisi kotak. Raspberry Pi dan papan proto dipasang di sisi kotak di dekat bagian atas. Perhatikan lubang pembuangan yang dibor di bagian bawah dan lubang ventilasi udara yang dibor di sepanjang tepi atas. Kipas dipasang di seberang Raspberry Pi. Tidak ada tombol on / off karena saya tidak ingin mendorong mematikan Raspberry Pi tanpa perintah formal "sudo shutdown now" (yaitu tidak ingin daya dimatikan terlalu mudah).

Langkah 7: Konstruksi: Papan Proto

Konstruksi: Papan Proto
Konstruksi: Papan Proto

Papan proto berisi regulator 5v, tutup filter, transistor daya (yang menggerakkan servo dan katup air), dan sakelar debug.

Langkah 8: Konstruksi: Kamera Raspberry Pi

Konstruksi: Kamera Raspberry Pi
Konstruksi: Kamera Raspberry Pi

Cam Raspberry Pi terhubung langsung ke Raspberry Pi melalui kabel pita dan dipasang pada pelat plastik bening yang menutupi potongan tampilan di bagian depan kotak.

Langkah 9: Daftar Bagian

Proyek ini berakhir dengan biaya sekitar $ 120. Sebagian besar biaya proyek adalah Raspberry Pi, kamera, servo, dan catu daya. Saya menemukan sebagian besar suku cadang di EBay atau Amazon dan suku cadang pipa ledeng di toko perangkat keras lokal.

  • Raspberry Pi 3 (Amazon) $38
  • Kamera NoIR (EBay) $30
  • 5v Analog Servo (torsi 4kg-cm) (EBay) $10
  • Catu Daya Dinding 5v/2.4A (EBay) $8
  • Katup Air 12v” (EBay) $5
  • Tubing, Pipa-Coupler (Osh) $5
  • Kotak Amunisi Plastik (Pengangkutan Pelabuhan) $5
  • Catu Daya Dinding 12v/1.5A (EBay) $5
  • IR Illuminator (EBay) $4
  • Lain-lain Komponen (Resistor, Sakelar, Dioda) $2
  • Kipas CPU (EBay) $2
  • Papan Proto, Kebuntuan, Sekrup (EBay) $2
  • (2) Transistor Daya (2n5296) (EBay) $1
  • Regulator 5v (LM7805) (EBay) $1
  • Plastik Bening 3/32” (Ketuk Plastik Misc. Bin) $1
  • Kabel Listrik (Osh) $1

Toko/situs tempat saya membeli barang:

  • Situs EBay Alice1101983:
  • Situs EBay 2bevoque:
  • Angkutan Pelabuhan
  • Perangkat Keras Pasokan Kebun
  • Amazon
  • Ketuk Plastik

Direkomendasikan: