Daftar Isi:

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: Cara Setting Rangefinder Discovery DK600 || Mengukur Jarak Dari Jauh Dan Untuk Data Aplikasi Strelok 2024, Juni
Anonim
Membuat Rangefinder Menggunakan Laser dan Kamera
Membuat Rangefinder Menggunakan Laser dan Kamera

Saat ini saya sedang merencanakan beberapa pekerjaan interior untuk musim semi mendatang, tetapi karena saya baru saja memperoleh rumah tua, saya tidak memiliki denah rumah. Saya mulai mengukur jarak dinding ke dinding menggunakan penggaris tetapi lambat dan rawan kesalahan. Saya berpikir untuk membeli pengintai untuk memudahkan proses, tetapi kemudian saya menemukan artikel lama tentang membangun pengintai sendiri menggunakan laser dan kamera. Ternyata, saya memiliki komponen-komponen itu di bengkel saya.

Proyek ini didasarkan pada artikel ini:

Satu-satunya perbedaan adalah bahwa saya akan membangun pengintai menggunakan Raspberry Pi Zero W, LCD, dan modul Kamera Raspberry Pi. Saya juga akan menggunakan OpenCV untuk melacak laser.

Saya akan menganggap bahwa Anda adalah seorang yang paham teknologi dan Anda merasa nyaman menggunakan Python dan baris perintah. Dalam proyek ini saya menggunakan Pi dalam mode tanpa kepala.

Ayo mulai!

Langkah 1: Daftar Bahan

Untuk proyek ini, Anda akan membutuhkan:

  • laser murah 6mm 5mW
  • resistor 220
  • transistor 2N2222A atau yang setara
  • sebuah Raspberry Pi Nol W
  • Kamera Raspberry Pi v2
  • layar LCD Nokia 5110 atau yang setara
  • beberapa kabel jumper dan papan tempat memotong roti kecil

Saya menggunakan printer 3d saya untuk mencetak jig yang membantu saya selama percobaan. Saya juga berencana menggunakan printer 3d untuk membuat penutup lengkap untuk pencari jarak. Anda benar-benar dapat melakukannya tanpa.

Langkah 2: Membangun Jig Laser dan Kamera

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

Sistem mengasumsikan jarak tetap antara lensa kamera dan output laser. Untuk memudahkan pengujian, saya mencetak jig di mana saya dapat memasang kamera, laser, dan sirkuit penggerak kecil untuk laser.

Saya menggunakan dimensi modul kamera untuk membuat dudukan untuk kamera. Saya terutama menggunakan caliper digital dan penggaris presisi untuk melakukan pengukuran. Untuk laser, saya membuat lubang 6mm dengan sedikit penguat untuk memastikan laser tidak bergerak. Saya mencoba menjaga cukup ruang untuk memasang papan tempat memotong roti kecil di bagian belakang jig.

Saya menggunakan Tinkercad untuk membangun, Anda dapat menemukan modelnya di sini:

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

Langkah 3: Mengemudi Laser dan LCD

Mengemudi Laser dan LCD
Mengemudi Laser dan LCD
Mengemudi Laser dan LCD
Mengemudi Laser dan LCD

Saya mengikuti tutorial ini https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi untuk menggerakkan layar LCD dengan Raspberry Pi Zero. Alih-alih mengedit file /boot/config.txt, Anda dapat mengaktifkan antarmuka SPI menggunakan sudo raspi-config melalui baris perintah.

Saya menggunakan Raspberry Pi Zero dalam mode tanpa kepala menggunakan Raspbian Stretch terbaru. Saya tidak akan membahas instalasi di Instructable ini tetapi Anda dapat mengikuti panduan ini: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- baris perintah-atau-menggunakan-jaringan-97f065af722e

Untuk memiliki titik laser yang terang, saya menggunakan rel 5V dari Pi. Untuk itu, saya akan menggunakan transistor (2N2222a atau setara) untuk menggerakkan laser menggunakan GPIO. Sebuah resistor 220 di dasar transistor memungkinkan arus yang cukup melalui laser. Saya menggunakan RPi. GPIO untuk memanipulasi Pi GPIO. Saya menghubungkan basis transistor ke pin GPIO22 (pin ke-15), emitor ke ground, dan kolektor ke dioda laser.

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

Anda dapat menggunakan kode ini untuk menguji pengaturan Anda:

Jika semuanya berjalan dengan baik, Anda harus memiliki file dot-j.webp

Dalam kode, kami mengatur kamera dan GPIO, lalu kami mengaktifkan laser, kami menangkap gambar, dan kami menonaktifkan laser. Saat saya menjalankan Pi dalam mode tanpa kepala, saya perlu menyalin gambar dari Pi saya ke komputer saya sebelum menunjukkannya.

Pada titik ini, perangkat keras Anda harus dikonfigurasi.

Langkah 4: Mendeteksi Laser Menggunakan OpenCV

Pertama, kita perlu menginstal OpenCV di Pi. Anda pada dasarnya memiliki tiga cara untuk melakukannya. Anda dapat menginstal versi paket lama dengan apt. Anda dapat mengkompilasi versi yang Anda inginkan tetapi dalam hal ini waktu penginstalan dapat mencapai 15 jam dan sebagian besar untuk kompilasi yang sebenarnya. Atau, pendekatan pilihan saya, Anda dapat menggunakan versi pra-kompilasi untuk Pi Zero yang disediakan oleh pihak ketiga.

Karena lebih simpel dan cepat, saya menggunakan paket pihak ketiga. Anda dapat menemukan langkah-langkah instalasi di artikel ini: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Saya mencoba banyak sumber lain tetapi paketnya tidak mutakhir.

Untuk melacak penunjuk laser, saya memperbarui kode dari https://github.com/bradmontgomery/python-laser-tracker untuk menggunakan modul kamera Pi alih-alih perangkat USB. Anda dapat langsung menggunakan kode jika Anda tidak memiliki modul kamera Pi dan ingin menggunakan kamera USB.

Anda dapat menemukan kode lengkapnya di sini:

Untuk menjalankan kode ini, Anda perlu menginstal paket Python: pillow dan picamera (Sudo pip3 install pillow picamera).

Langkah 5: Kalibrasi Range Finder

Kalibrasi Range Finder
Kalibrasi Range Finder
Kalibrasi Range Finder
Kalibrasi Range Finder
Kalibrasi Range Finder
Kalibrasi Range Finder

Dalam artikel aslinya, penulis merancang prosedur kalibrasi untuk mendapatkan parameter yang diperlukan untuk mengubah koordinat y menjadi jarak yang sebenarnya. Saya menggunakan meja ruang tamu saya untuk kalibrasi dan sepotong kraft tua. Setiap 10 cm atau lebih saya mencatat koordinat x dan y ke dalam spreadsheet: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Untuk memastikan semuanya bekerja dengan benar, pada setiap langkah, saya memeriksa gambar yang diambil untuk melihat apakah laser dilacak dengan benar. Jika Anda menggunakan laser hijau atau jika laser Anda tidak dilacak dengan benar, Anda perlu menyesuaikan rona, saturasi, dan ambang nilai program yang sesuai.

Setelah fase pengukuran selesai, sekarang saatnya untuk benar-benar menghitung parameter. Seperti penulis saya menggunakan regresi linier; sebenarnya Google Spreadsheet melakukan pekerjaan untuk saya. Saya kemudian menggunakan kembali parameter tersebut untuk menghitung perkiraan jarak dan memeriksanya terhadap jarak sebenarnya.

Sekarang saatnya untuk menyuntikkan parameter ke dalam program pengintai untuk mengukur jarak.

Langkah 6: Mengukur Jarak

Mengukur Jarak
Mengukur Jarak

Dalam kode: https://Gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c Saya memperbarui variabel HEIGHT, GAIN, dan OFFSET sesuai dengan pengukuran kalibrasi. Saya menggunakan rumus jarak di artikel asli untuk memperkirakan jarak dan saya mencetak jarak menggunakan layar LCD.

Kode pertama akan mengatur kamera dan GPIO, kemudian kami ingin menyalakan lampu latar LCD untuk melihat pengukuran dengan lebih baik. Input LCD dicolokkan ke GPIO14. Setiap 5 detik atau lebih, kita akan:

  1. aktifkan dioda laser
  2. menangkap gambar dalam memori
  3. nonaktifkan dioda laser
  4. lacak laser menggunakan filter rentang HSV
  5. tulis gambar yang dihasilkan ke disk untuk tujuan debugging
  6. hitung jarak berdasarkan koordinat y
  7. tulis jarak pada layar LCD.

Meskipun demikian, langkah-langkahnya sangat tepat dan cukup akurat untuk kasus penggunaan saya, ada banyak ruang untuk perbaikan. Misalnya, titik laser memiliki kualitas yang sangat buruk dan garis laser tidak terlalu terpusat. Dengan kualitas laser yang lebih baik, langkah kalibrasi akan lebih presisi. Bahkan kamera tidak diposisikan dengan baik di jig saya, itu miring ke bawah.

Saya juga dapat meningkatkan resolusi pengintai dengan memutar kamera sebesar 90º menggunakan full with dan meningkatkan resolusi secara maksimal yang didukung oleh kamera. Dengan implementasi saat ini, kami dibatasi pada rentang 0 hingga 384 piksel, kami dapat meningkatkan batas atas hingga 1640, 4 kali resolusi saat ini. Jaraknya akan lebih presisi.

Sebagai tindak lanjut, saya perlu mengerjakan peningkatan presisi yang saya sebutkan di atas dan membuat penutup untuk pengintai. Selungkup harus memiliki kedalaman yang tepat untuk memudahkan pengukuran dinding ke dinding.

Semua dalam semua sistem saat ini sudah cukup bagi saya dan akan menghemat beberapa dolar membuat rencana rumah saya!

Direkomendasikan: