Daftar Isi:
- Langkah 1: Daftar Bahan
- Langkah 2: Membangun Jig Laser dan Kamera
- Langkah 3: Mengemudi Laser dan LCD
- Langkah 4: Mendeteksi Laser Menggunakan OpenCV
- Langkah 5: Kalibrasi Range Finder
- Langkah 6: Mengukur Jarak
Video: Membuat Rangefinder Menggunakan Laser dan Kamera: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
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
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
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
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
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:
- aktifkan dioda laser
- menangkap gambar dalam memori
- nonaktifkan dioda laser
- lacak laser menggunakan filter rentang HSV
- tulis gambar yang dihasilkan ke disk untuk tujuan debugging
- hitung jarak berdasarkan koordinat y
- 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:
Cara Membuat dan Menyisipkan Tabel dan Menambahkan Kolom Dan/atau Baris Tambahan ke Tabel Itu di Microsoft Office Word 2007: 11 Langkah
Cara Membuat dan Menyisipkan Tabel dan Menambahkan Kolom Dan/atau Baris Tambahan ke Tabel Itu di Microsoft Office Word 2007: Pernahkah Anda memiliki banyak data yang sedang Anda kerjakan dan pikirkan sendiri…"bagaimana saya bisa membuat semua dari data ini terlihat lebih baik dan lebih mudah dipahami?" Jika demikian, maka tabel di Microsoft Office Word 2007 mungkin bisa menjadi jawaban Anda
Kamera CCTV Dengan NodeMCU + Modul Kamera Laptop Lama (Dengan dan Tanpa Menggunakan Blynk): 5 Langkah
Kamera CCTV Dengan NodeMCU + Modul Kamera Laptop Lama (Dengan dan Tanpa Menggunakan Blynk): Hi guys! Dalam instruksi ini, saya akan menunjukkan kepada Anda bagaimana saya menggunakan modul kamera laptop lama dan nodeMCU untuk membuat sesuatu yang mirip dengan CCTV
Menghubungkan Pemrosesan dan Arduino dan Membuat Pengontrol GUI 7 Segmen dan Servo: 4 Langkah
Menghubungkan Pemrosesan dan Arduino dan Membuat 7 Segmen dan Pengontrol GUI Servo: Untuk beberapa proyek yang Anda buat perlu menggunakan Arduino karena menyediakan platform prototyping yang mudah tetapi menampilkan grafik di monitor serial Arduino bisa memakan waktu cukup lama dan bahkan sulit dilakukan. Anda dapat menampilkan grafik pada Arduino Serial Monitor bu
Cara Membuat Drone Menggunakan Arduino UNO - Membuat Quadcopter Menggunakan Mikrokontroler: 8 Langkah (dengan Gambar)
Cara Membuat Drone Menggunakan Arduino UNO | Membuat Quadcopter Menggunakan Mikrokontroler: PendahuluanKunjungi Saluran Youtube Saya Drone adalah gadget (produk) yang sangat mahal untuk dibeli. Pada postingan kali ini saya akan membahas, bagaimana cara membuatnya dengan harga murah?? Dan Bagaimana Anda bisa membuat sendiri seperti ini dengan harga murah … Nah di India semua bahan (motor, ESC
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: 5 Langkah (dengan Gambar)
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: Mengontrol 8 sakelar relai menggunakan nodemcu dan penerima ir melalui wifi dan ir remote dan aplikasi android.Remote ir bekerja terlepas dari koneksi wifi.INI VERSI TERBARU KLIK DI SINI