Isi kandungan:

Membuat Rangefinder Menggunakan Laser dan Kamera: 6 Langkah
Membuat Rangefinder Menggunakan Laser dan Kamera: 6 Langkah

Video: Membuat Rangefinder Menggunakan Laser dan Kamera: 6 Langkah

Video: Membuat Rangefinder Menggunakan Laser dan Kamera: 6 Langkah
Video: review,unboxing dan cara penggunaan laser range finder 2024, Jun
Anonim
Membuat Rangefinder Menggunakan Laser dan Kamera
Membuat Rangefinder Menggunakan Laser dan Kamera

Saya sedang merancang beberapa kerja dalaman untuk musim bunga akan datang tetapi kerana saya baru memperoleh rumah lama, saya tidak mempunyai rancangan rumah. Saya mula mengukur jarak dinding ke dinding dengan menggunakan pembaris tetapi lambat dan ralat ralat. Saya terfikir untuk membeli alat pencari jarak jauh untuk memudahkan prosesnya tetapi kemudian saya menjumpai artikel lama mengenai membina pencari jarak jauh menggunakan laser dan kamera. Ternyata, saya mempunyai komponen tersebut di bengkel saya.

Projek ini berdasarkan artikel ini:

Satu-satunya perbezaan adalah bahawa saya akan membuat pengintai menggunakan modul Raspberry Pi Zero W, LCD, dan Kamera Raspberry Pi. Saya juga akan menggunakan OpenCV untuk mengesan laser.

Saya akan menganggap bahawa anda adalah pengguna teknologi dan anda selesa menggunakan Python dan baris perintah. Dalam projek ini saya menggunakan Pi dalam mod tanpa kepala.

Mari mulakan!

Langkah 1: Senarai Bahan

Untuk projek ini, anda memerlukan:

  • laser 6mm 5mW yang murah
  • perintang 220 Ω
  • transistor 2N2222A atau yang serupa
  • a Raspberry Pi Zero W
  • Kamera Raspberry Pi v2
  • paparan LCD Nokia 5110 atau yang setara
  • beberapa wayar pelompat dan papan roti kecil

Saya menggunakan pencetak 3d saya untuk mencetak jig yang membantu saya semasa eksperimen. Saya juga merancang untuk menggunakan pencetak 3d untuk membina kandang lengkap untuk pencari jarak jauh. Anda boleh melakukannya tanpa.

Langkah 2: Membangun Laser dan Kamera Jig

Membangun Jig Laser dan Kamera
Membangun Jig Laser dan Kamera
Membina Laser dan Kamera Jig
Membina Laser dan Kamera Jig
Membangun Jig Laser dan Kamera
Membangun Jig Laser dan Kamera

Sistem ini mengambil jarak tetap antara lensa kamera dan output laser. Untuk memudahkan ujian, saya mencetak jig di mana saya dapat memasang kamera, laser, dan litar pemanduan kecil untuk laser.

Saya menggunakan dimensi modul kamera untuk membina pelekap untuk kamera. Saya menggunakan kaliper digital dan pembaris tepat untuk mengukur. Untuk laser, saya membuat lubang 6mm dengan sedikit tetulang untuk memastikan laser tidak bergerak. Saya cuba menyimpan cukup ruang untuk meletakkan papan roti kecil di bahagian belakang jig.

Saya menggunakan Tinkercad untuk membina, anda boleh mendapatkan modelnya di sini:

Terdapat jarak 3,75 cm antara pusat lensa laser dan pusat lensa kamera.

Langkah 3: Memandu Laser dan LCD

Memandu Laser dan LCD
Memandu Laser dan LCD
Memandu Laser dan LCD
Memandu Laser dan LCD

Saya mengikuti tutorial ini https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi untuk memacu paparan LCD dengan Raspberry Pi Zero. Daripada mengedit fail /boot/config.txt, anda boleh mengaktifkan antara muka SPI menggunakan sudo raspi-config melalui baris perintah.

Saya menggunakan Raspberry Pi Zero dalam mod tanpa kepala menggunakan Raspbian Stretch terkini. Saya tidak akan membuat liputan pemasangan di Instructable ini tetapi anda boleh mengikuti panduan ini: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- baris perintah-atau-menggunakan-the-network-97f065af722e

Untuk mempunyai titik laser yang terang, saya menggunakan rel 5V Pi. Untuk itu, saya akan menggunakan transistor (2N2222a atau setara) untuk menggerakkan laser menggunakan GPIO. Perintang 220 Ω di dasar transistor membenarkan arus yang mencukupi melalui laser. Saya menggunakan RPi. GPIO untuk memanipulasi Pi GPIO. Saya menghubungkan pangkal transistor ke pin GPIO22 (pin ke-15), pemancar ke tanah, dan pemungut ke diod laser.

Jangan lupa untuk mengaktifkan antara muka kamera menggunakan sudo raspi-config melalui baris perintah.

Anda boleh menggunakan kod ini untuk menguji persediaan anda:

Sekiranya semuanya berjalan lancar, anda harus mempunyai fail dot-j.webp

Dalam kodnya, kami menyiapkan kamera dan GPIO, kemudian kami mengaktifkan laser, kami menangkap gambar, dan kami mematikan laser. Oleh kerana saya menjalankan Pi dalam mod tanpa kepala, saya perlu menyalin gambar dari Pi ke komputer saya sebelum menunjukkannya.

Pada ketika ini, perkakasan anda harus dikonfigurasikan.

Langkah 4: Mengesan Laser Menggunakan OpenCV

Pertama, kita perlu memasang OpenCV pada Pi. Anda pada asasnya mempunyai tiga cara untuk melakukannya. Anda boleh memasang versi paket lama dengan apt. Anda boleh menyusun versi yang anda mahukan tetapi dalam kes ini masa pemasangan boleh sampai 15 jam dan sebahagian besarnya untuk penyusunan sebenarnya. Atau, pendekatan pilihan saya, anda boleh menggunakan versi pra-kompilasi untuk Pi Zero yang disediakan oleh pihak ketiga.

Kerana lebih mudah dan cepat, saya menggunakan pakej pihak ketiga. Anda boleh mendapatkan langkah-langkah pemasangan dalam artikel ini: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Saya mencuba banyak sumber lain tetapi pakej mereka tidak terkini.

Untuk mengesan penunjuk laser, saya mengemas kini kod dari https://github.com/bradmontgomery/python-laser-tracker untuk menggunakan modul kamera Pi dan bukannya peranti USB. Anda boleh menggunakan kod secara langsung jika anda tidak mempunyai modul kamera Pi dan ingin menggunakan kamera USB.

Anda boleh mendapatkan kod lengkap di sini:

Untuk menjalankan kod ini, anda perlu memasang pakej Python: bantal dan picamera (sudo pip3 memasang bantal picamera).

Langkah 5: Penentukuran Range Finder

Penentukuran Pencari Julat
Penentukuran Pencari Julat
Penentukuran Pencari Julat
Penentukuran Pencari Julat
Penentukuran Pencari Julat
Penentukuran Pencari Julat

Dalam artikel asal, penulis merancang prosedur penentukuran untuk mendapatkan parameter yang diperlukan untuk mengubah koordinat y ke jarak sebenar. Saya menggunakan meja ruang tamu saya untuk penentukuran dan sekeping kraft lama. Setiap 10 cm atau lebih saya mencatat koordinat x dan y ke dalam spreadsheet: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Untuk memastikan semuanya berfungsi dengan betul, pada setiap langkah, saya memeriksa gambar yang diambil untuk melihat apakah laser dikesan dengan betul. Sekiranya anda menggunakan laser hijau atau jika laser anda tidak dijejaki dengan betul, anda perlu menyesuaikan rona, tepu, dan ambang nilai program dengan sewajarnya.

Setelah fasa pengukuran selesai, sudah tiba masanya untuk menghitung parameternya. Seperti pengarang saya menggunakan regresi linear; sebenarnya Google Spreadsheet melakukan tugas untuk saya. Saya kemudian menggunakan semula parameter tersebut untuk menghitung anggaran jarak dan memeriksanya dengan jarak sebenar.

Sekarang masanya untuk memasukkan parameter ke dalam program pengintai untuk mengukur jarak.

Langkah 6: Mengukur Jarak

Mengukur Jarak
Mengukur Jarak

Dalam kod: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c Saya mengemas kini pemboleh ubah HEIGHT, GAIN, dan OFFSET mengikut ukuran penentukuran. Saya menggunakan formula jarak dalam artikel asal untuk mengira jarak dan saya mencetak jarak menggunakan paparan LCD.

Kod pertama akan menetapkan kamera dan GPIO, kemudian kita ingin menyalakan lampu latar LCD untuk melihat pengukuran dengan lebih baik. Input LCD dipasang ke GPIO14. Setiap 5 saat atau lebih, kami akan:

  1. aktifkan diod laser
  2. menangkap gambar dalam ingatan
  3. lumpuhkan diod laser
  4. mengesan laser menggunakan penapis jarak HSV
  5. tulis gambar yang dihasilkan ke cakera untuk tujuan penyahpepijatan
  6. hitung jarak berdasarkan koordinat y
  7. tulis jarak pada paparan LCD.

Walaupun begitu, langkah-langkahnya sangat tepat dan cukup tepat untuk kes penggunaan saya, ada banyak ruang untuk penambahbaikan. Contohnya, titik laser tidak berkualiti dan garis laser tidak betul-betul berpusat. Dengan laser yang lebih berkualiti, langkah penentukuran akan lebih tepat. Walaupun kamera tidak betul-betul diposisikan di jig saya, ia condong ke bawah.

Saya juga dapat meningkatkan resolusi penemu jarak dengan memutar kamera 90º menggunakan penuh dengan dan meningkatkan resolusi ke maksimum yang disokong oleh kamera. Dengan pelaksanaan saat ini kita terbatas pada julat 0 hingga 384 piksel, kita dapat meningkatkan batas atas menjadi 1640, 4 kali resolusi saat ini. Jaraknya akan lebih tepat.

Sebagai tindak lanjut, saya perlu melakukan penambahbaikan ketepatan yang saya nyatakan di atas dan membina kandang untuk pengintai jarak jauh. Kandang perlu kedalaman yang tepat untuk memudahkan pengukuran dinding ke dinding.

Secara keseluruhan sistem semasa cukup untuk saya dan akan menjimatkan sejumlah wang untuk membuat rancangan rumah saya!

Disyorkan: