Isi kandungan:
- Langkah 1: Kodnya
- Langkah 2: Elektronik
- Langkah 3: Pembinaan: Kamera dan IR Illuminator
- Langkah 4: Pembinaan: Paip Air
- Langkah 5: Pembinaan: Bertujuan Servo
- Langkah 6: Pembinaan: Memasang bekalan kuasa, Kipas, Pi Raspberry, dan papan Proto
- Langkah 7: Pembinaan: Proto Board
- Langkah 8: Pembinaan: Kamera Raspberry Pi
- Langkah 9: Senarai Bahagian
Video: Water Blaster Penjejakan Auto: 9 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
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
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
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
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
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
Papan proto mengandungi pengatur 5v, penutup saringan, transistor kuasa (yang menggerakkan servo dan injap air), dan debug-switch.
Langkah 8: 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:
Termostat Nest, Penjejakan Penghunian: 12 Langkah
Nest Thermostat, Occupancy Tracking: Automasi penyejukan rumah saya menggunakan Nest Thermostat saya, sehingga baru-baru ini, dijalankan oleh IFTTT menggunakan Life360's " pertama tiba di rumah " dan " terakhir meninggalkan rumah " pencetus. Ini bagus kerana saya dapat menambahkan ahli keluarga ke dalam Li saya
Fob Penjejakan Mandalorian: 7 Langkah
Mandalorian Tracking Fob: Setelah saya melihat beberapa episod pertama Mandalorian, saya tidak sabar-sabar untuk mencuba membina track fob. Banyak orang lain mempunyai idea yang sama dan telah memposting banyak bahan rujukan yang dapat saya gunakan ketika merancang fob penjejakan di Fusion 360
Sistem Penjejakan Gerak Kepala untuk VR: 8 Langkah
Head Motion Tracking System untuk VR: Nama saya Sam KODO, Dalam tuto ini, saya akan mengajar anda langkah demi langkah bagaimana menggunakan sensor Arduino IMU untuk membina sistem penjejakan kepala untuk VR. Dalam projek ini, anda akan memerlukan: - LCD Display HDMI : https: //www.amazon.com/Elecrow-Capacitive-interfac…- Satu
Cara Membina PHIL - Robot Penjejakan Ringan: 6 Langkah (dengan Gambar)
Cara Membangun PHIL - Robot Penjejakan Ringan: Dalam Instruksional ini saya akan menunjukkan kepada anda bagaimana saya membuat robot penjejak cahaya paksi dua ini menggunakan Arduino Uno. Semua CAD dan kod akan disertakan sehingga anda dapat membuatnya sendiri tanpa memerlukan kemahiran memprogram atau merancang. Semua yang anda perlukan
Sistem Penjejakan Auto Solar Mudah Alih: 9 Langkah (dengan Gambar)
Sistem Penjejakan Automatik Solar Mudah Alih: Medomyself adalah peserta dalam Program Associates Amazon Services LLC, program pengiklanan sekutu yang direka untuk menyediakan kaedah untuk laman web memperoleh bayaran iklan dengan mengiklankan dan menghubungkan ke amazon.com dengan: Dave WeaverBangun ini dibuat dengan