Isi kandungan:

Water Blaster Penjejakan Auto: 9 Langkah
Water Blaster Penjejakan Auto: 9 Langkah

Video: Water Blaster Penjejakan Auto: 9 Langkah

Video: Water Blaster Penjejakan Auto: 9 Langkah
Video: How to make a CAR - Car Driving On Water And Road 2024, November
Anonim
Water Blaster penjejakan automatik
Water Blaster penjejakan automatik

Rusa pemakan mawar memotivasi saya untuk membina peletup air pengesanan sasaran untuk membantu mencegah makhluk yang rakus… Blaster air ini menggunakan pengesanan gerakan berdasarkan video untuk mengarahkan servo dan mencetuskan ledakan air pendek ke sasaran. Ia melancarkan hanya setelah sasaran yang diperoleh tidak bergerak selama beberapa saat (kelewatan dapat disesuaikan dalam kod). Saya tidak peduli jika rusa hanya berjalan tetapi jika mereka berhenti untuk makanan ringan, percikan!

Berikut adalah video saya menguji air blaster:

Water blaster adalah kotak yang berdiri sendiri yang dapat dihubungkan dari jauh (melalui wi-fi / VNC) dari mana-mana komputer di rangkaian anda untuk memantau apa yang dilakukannya. Ia mengambil gambar setiap kali ia dicetuskan sehingga anda kemudian dapat melihat apa yang sedang diletupkan.

Saya menggunakan Raspberry Pi, kamera NoIR, pencahayaan IR, servo linear standard, dan injap air untuk membuat siang / malam ini, sasaran pelacakan air. Kod tersebut ditulis dalam Python dan banyak dipinjam dari contoh kod pemprosesan gambar cv2 Adrian Rosebrock. Anda dapat melihat tulisannya di:

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

Oleh kerana saya mengejar sasaran darat (rusa) yang agak besar, masalah saya agak mudah. Saya hanya memerlukan tujuan mendatar sehingga saya dapat menggunakan hanya satu servo. Menunggu rusa berdiri masih menolong saya menghilangkan banyak pencetus palsu. Ini adalah percubaan rev-0 saya dan saya telah menemui beberapa perkara yang perlu saya ubah sekiranya saya membuat yang lain. Saya telah memperhatikan perkara-perkara ini dalam susunan terperinci berikut.

Langkah 1: Kodnya

Blaster air menggunakan Raspberry Pi 3 untuk pemprosesan. Untuk merakam video, cam NoIR Raspberry Pi digunakan bersama dengan penerangan IR untuk video malam. Pakej OpenCV / cv2 Python digunakan untuk menangkap dan memproses maklumat gambar dan mengira koordinat sasaran. Perpustakaan pigpio digunakan untuk mengawal gpio agar operasi servo stabil. Menggunakan pakej RPi. GPIO biasa menghasilkan servo yang goyah. CATATAN: Semasa menggunakan perpustakaan pigpio, anda perlu menjalankan daemon pigpio. Tambahkan ini ke fail permulaan /etc/rc.local Pi anda untuk pigpio lib dan antara muka kamera Raspberry Pi:

/etc/rc.local# Siapkan / dev / video0 untuk membuat pautan ke Raspberry Pi yang dibina dalam antaramuka kamera bm2835-v4l2 # Mulakan pigmen daemon untuk perpustakaan kawalan Raspberry Pi IO

Lihat https://pypi.python.org/pypi/pigpi untuk maklumat lebih terperinci.

Kod sumber dinamakan: water_blaster.py dan dilampirkan di bawah.

Penafian: Saya baru menggunakan pengkodan Python jadi jangan menganggapnya sebagai model gaya pengekodan Python yang hebat!

Algoritma asasnya adalah seperti berikut:

  • Raih bingkai rujukan video awal. Ini akan digunakan untuk membandingkan untuk mengesan gerakan.
  • Ambil bingkai lain.
  • Tukar bingkai ke skala kelabu, ukurannya, kabur.
  • Hitung perbezaan dari kerangka rujukan
  • Tapis perbezaan kecil, dapatkan koordinat perbezaan terbesar.
  • Tetapkan pemasa. Sekiranya koordinat sasaran tidak berubah selama beberapa saat, maka ambil gambar tentang apa yang hendak kita tangkap dan cetuskan injap air untuk letupan air. Sapu servo bolak-balik beberapa darjah untuk letupan "senapang patah".
  • Sekiranya kita mendapat tiga pencetus terlalu cepat, lumpuhkan pemotretan, berhenti sebentar, kemudian kemas kini bingkai rujukan kerana kita mungkin menembak bayangan atau lampu serambi yang baru saja dihidupkan …
  • Setiap beberapa minit mengemas kini bingkai rujukan untuk memperhitungkan perubahan frekuensi rendah (matahari terbit / terbenam, mendung bergerak, dll.)

Saya hanya menggunakan mekanisme penyasaran mendatar tetapi banyak pemasangan servo pan / tilt tersedia di EBay dan akan mudah untuk menambahkan servo lain untuk mengawal tujuan menegak jika anda mahukan penyasaran yang lebih tepat.

Saya menyediakan Raspberry Pi untuk dijalankan sebagai pelayan VNC, kemudian menyambungnya melalui VNC dari komputer riba saya untuk memulakan program dan memantau video dan log. cd ke dalam direktori di mana anda menyimpan water_blaster.py dan jalankan dengan menaip:

./python water_blaster.py

Ia akan membuka tetingkap monitor video, memulakan fail log bernama "./log_[date]_[time], dan membuat sub-dir bernama" trigger_pictures "di mana fail-j.webp

Berikut adalah beberapa catatan mengenai penyediaan VNC pada Raspberry Pi anda:

Kali pertama saya menyiapkan Raspberry Pi, saya menggunakan monitor / papan kekunci / tetikus luaran untuk mengaturnya. Di sana saya mengaktifkan pelayan VNC pada konfigurasi RasPi (Raspberry Logo / Preferences / Raspberry Pi Configuration / Interfaces / Check VNC option). Setelah itu, ketika boot, ia membolehkan anda menyambung ke paparannya: 0 melalui klien VNC (tanpa kelayakan yang sama dengan pengguna "pi").

Dalam mod tanpa kepala, ia menjadi lalai ke paparan resolusi yang sangat kecil (kerana tidak mengesan sebarang paparan), untuk memaksanya ke resolusi yang lebih besar, anda menambahkannya ke /boot/config.txt dan mulakan semula:

# Gunakan jika anda mempunyai paparan # hdmi_ignore_edid = 0xa5000080hdmi_group = 2 # 1400x1050 w / 60Hz # hdmi_mode = 42 # 1356x768 w / 60Hzhdmi_mode = 39

Berikut adalah beberapa maklumat lagi:

Langkah 2: Elektronik

Keperluan elektronik water blaster adalah minimum menggunakan Raspberry Pi 3 gpio untuk menggerakkan servo, injap air dan pencahayaan IR melalui penyangga transistor diskrit (dibina di atas papan proto kecil). Kamera NoIR standard dipasang terus ke Raspberry Pi.

Nama skema adalah: water_blaster_schematic.pdf dan dilampirkan di bawah.

Saya menggunakan bekalan khusus 5v / 2.5A untuk Raspberry Pi dan bekalan 12v / 1A untuk menggerakkan pencahayaan IR dan injap air. Bekalan 12v juga mendorong pengatur 5v untuk membekalkan kuasa ke servo 5v. Ini dilakukan untuk memastikan daya kawalan motor "bising" terasing daripada bekalan Raspberry Pi 5v. Bekalan 12v / 1A ternyata tepat pada hadnya (sebenarnya sedikit lebih lama setelah saya menambahkan kipas). Kodnya mematikan pencahayaan IR sebelum menghidupkan geganti injap air untuk menjaga arus semasa dalam jangkauan… Lebih baik jika anda menggunakan bekalan 1.5A. Pastikan untuk menyambungkan terminal ground semua bekalan kuasa bersama-sama.

Modul kamera adalah versi NoIR standard yang disambungkan ke Raspberry Pi secara langsung. Ini adalah kamera Raspberry Pi dengan penapis IR yang sudah dikeluarkan membolehkannya digunakan dengan pencahayaan IR untuk mengambil video malam.

Servo yang digunakan adalah servo linear bersaiz standard 5v dengan tork 3-4 kg-cm.

Pencahayaan IR adalah cincin LED 48 kos rendah yang saya dapati di EBay dengan harga sekitar $ 4. Tidak terlalu kuat dan hanya boleh menerangi sekitar 15 kaki. Sekiranya anda mempunyai anggaran tambahan, mendapatkan penerangan yang lebih kuat akan menjadi peningkatan yang baik.

Saya menambah "debug-switch" ke gpio23. Kod memeriksa keadaan suis dan jika ditekan akan mematikan relay injap air untuk ujian api kering. Saya fikir saya akan melakukan lebih banyak dengan suis itu tetapi tidak menggunakannya sama sekali. Saya akan membuangnya dan kod yang mencarinya …

Langkah 3: Pembinaan: Kamera dan IR Illuminator

Pembinaan: Kamera dan Pencahayaan IR
Pembinaan: Kamera dan Pencahayaan IR

Saya menggunakan kotak peluru plastik Harbour Freight sebagai kandang. Terutama saya memerlukan sesuatu yang tahan air kerana banyak semburan / limpasan air tidak dapat dielakkan. Terdapat banyak lubang / guntingan tetapi ditutup dengan kantung, plastik jernih, atau dibor di bawah lubang untuk menumpahkan air. Pada pandangan belakang, saya semestinya menggunakan kotak logam dengan sinki dalaman yang dipasang pada komponen berkuasa tinggi. Dengan melakukan itu saya rasa saya dapat mengelakkan penambahan kipas. Kotak plastik terlalu penebat dan membiarkan suhu dalaman meningkat terlalu banyak.

Tingkap kecil dipotong pada akhirnya agar kamera dapat melihat ke luar dan pencahayaan IR dipasang di dalam bekas kanta plastik lama yang saya letakkan di sekelilingnya.

Langkah 4: Pembinaan: Paip Air

Pembinaan: Paip Air
Pembinaan: Paip Air
Pembinaan: Paip Air
Pembinaan: Paip Air

Saluran masuk air disalurkan ke injap air 12v yang disambungkan ke tiub vinil OD ¼”ID x 3/8”. Yang seterusnya disambungkan ke tiub berduri ¼”untuk menyambung penyambung PVC yang sesuai dan terpaku pada penutup air PVC ¾” dengan lubang 1/16”yang digerudi untuk aliran air. Saya mahu menjauhkan relay injap air dari cuaca sehingga terpasang di dalam kotak. Terdapat bahaya bahawa saya akan mendapat kebocoran tetapi saya telah mengebor lubang saliran di bahagian bawah kotak dan memasang elektronik tinggi ke atas untuk meminimumkan kemungkinan potensi kerosakan air pada elektronik jika itu berlaku. Rencana yang kurang menyenangkan secara estetik, tetapi lebih selamat adalah memasang injap di bahagian luar dan menjalankan wayar relay 12v di dalamnya. Cakera plastik jernih di atas servo adalah cara yang mudah untuk memasang hujung selang dan ia menjadikan air tidak menetes ke servo. Kipasnya adalah pemikiran semula kerana kotak terlalu panas. Saya membina awning sedikit di atasnya agar air tidak menitis.

Langkah 5: Pembinaan: Bertujuan Servo

Pembinaan: Bertujuan Servo
Pembinaan: Bertujuan Servo

Lubang dipotong ke bahagian atas kotak dan servo yang bertujuan dipasang dan ditutup dengan silikon untuk menjaga kelembapan.

Langkah 6: Pembinaan: Memasang bekalan kuasa, Kipas, Pi Raspberry, dan papan Proto

Pembinaan: Memasang bekalan kuasa, Kipas, Raspberry Pi, dan papan Proto
Pembinaan: Memasang bekalan kuasa, Kipas, Raspberry Pi, dan papan Proto

Kedua-dua bekalan kuasa (5v dan 12v) disambungkan ke kabel kuasa tunggal yang keluar dari sisi kotak. Raspberry Pi dan papan proto dipasang di sisi kotak berhampiran bahagian atas. Perhatikan lubang saliran yang dibor di bahagian bawah dan lubang ventilasi udara dibor di sepanjang tepi atas. Kipas dipasang berhadapan dengan Raspberry Pi. Tidak ada suis hidup / mati kerana saya tidak mahu mendorong mematikan Raspberry Pi tanpa perintah rasmi "sudo shutdown now" (iaitu tidak mahu pemadaman dimatikan terlalu mudah).

Langkah 7: Pembinaan: Proto Board

Pembinaan: Lembaga Proto
Pembinaan: Lembaga Proto

Papan proto mengandungi pengatur 5v, penutup saringan, transistor kuasa (yang menggerakkan servo dan injap air), dan debug-switch.

Langkah 8: Pembinaan: Kamera Raspberry Pi

Pembinaan: Kamera Raspberry Pi
Pembinaan: Kamera Raspberry Pi

Cam Raspberry Pi menghubungkan terus ke Raspberry Pi melalui kabel pita dan dipasang pada plat plastik jernih yang menutup potongan pandangan di bahagian depan kotak.

Langkah 9: Senarai Bahagian

Projek ini akhirnya menelan belanja kira-kira $ 120. Sebahagian besar kos projek adalah Raspberry Pi, kamera, servo dan bekalan kuasa. Saya menjumpai sebahagian besar bahagian di EBay atau Amazon dan bahagian paip di kedai perkakasan tempatan.

  • Raspberry Pi 3 (Amazon) $ 38
  • Kamera NoIR (EBay) $ 30
  • Servo Analog 5v (tork 4kg-cm) (EBay) $ 10
  • Bekalan Kuasa Dinding 5v / 2.4A (EBay) $ 8
  • Injap Air 12v ½”(EBay) $ 5
  • Tubing, Pipe-Couplers (Osh) $ 5
  • Kotak Peluru Plastik (Pengangkutan Pelabuhan) $ 5
  • Bekalan Kuasa Dinding 12v / 1.5A (EBay) $ 5
  • IR Illuminator (EBay) $ 4
  • Pelbagai. Komponen (Perintang, Suis, Diod) $ 2
  • Kipas CPU (EBay) $ 2
  • Proto Board, Standoffs, Screws (EBay) $ 2
  • (2) Transistor Kuasa (2n5296) (EBay) $ 1
  • 5v Regulator (LM7805) (EBay) $ 1
  • Jelas Plastik 3/32 "(Ketuk Plastik Pelbagai Bin) $ 1
  • Kabel Kuasa (Osh) $ 1

Kedai / laman web tempat saya membeli barang:

  • Laman web EBay Alice1101983:
  • Laman 2Bevoque EBay:
  • Pengangkutan Harbour
  • Perkakasan Bekalan Orchard
  • Amazon
  • Ketik Plastik

Disyorkan: