Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Membuat Pengukur Jarak Laser Murah untuk Arduino

Komponen dan persediaan

Arduino Nano R3
× 1
Elekrow OLED 0.96'' 128x64
× 1
pengukur pita laser X-40
× 1
Modul DC-DC LM2596
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)
programmer ST-LINK

Aplikasi dan layanan online

Utilitas ST-LINK STMicroelectronics

Tentang proyek ini

Butuh modul pengintai laser yang cepat dan murah untuk proyek Arduino Anda?

Tentu saja, Anda dapat menggunakan modul khusus untuk tugas ini, tetapi kebanyakan dari mereka memiliki harga yang mahal. Modul VL53L0X/VL53L1X murah, tetapi memiliki bidang pandang yang sangat besar.

Jadi saya menemukan solusi:menggunakan pita pengukur laser "X-40" yang murah sebagai pengukur jarak laser. Perangkat ini berharga $20 atau lebih murah dan dapat mengukur jarak hingga 40m dengan akurasi ~3mm. Tapi ada dua masalah - tidak ada cara untuk mendapatkan pembacaan dari kaset dan pengukurannya lambat - kurang dari 1 Hz.

Untuk mengatasi masalah itu saya membuat rekayasa balik dari pita pengukur laser itu dan menulis firmware saya sendiri untuk STM32 MCU dari modul pengintai laser. Kecepatan pengukuran penting bagi saya dan saya dapat mencapai ~60 Hz, tetapi jarak stabil maksimum berkurang menjadi ~6 m (rentang maksimum penuh adalah 37 m, tetapi saya tidak mengujinya).

Akurasi pengukuran jarak dapat bervariasi dari 1 mm hingga 10 mm tergantung pada warna dan jarak target.

Dimensi modul:25x13x50 mm.

PEMBERITAHUAN PENTING:ANDA AKAN KEHILANGAN FIRMWARE ASLI, SEHINGGA PERANGKAT TIDAK DAPAT DIGUNAKAN SEBAGAI UKURAN PITA LASER NANTI!

Perhatikan bahwa pengukur pita laser "X-40" dapat memiliki revisi berbeda dari modul pengintai laser, dan firmware saya hanya mendukung beberapa di antaranya!

"X-40" bukan satu-satunya nama untuk pita pengukur laser dengan modul seperti itu - saya tahu bahwa ada beberapa pengukur pita laser Cina yang berbeda dengan modul yang sesuai.

Langkah 1:Membongkar pita pengukur laser

Mari kita bongkar pita pengukur laser untuk mendapatkan modul pengintai laser darinya.

Anda perlu membuka 7 sekrup dari casing:

Pita pengukur laser yang dibongkar:

Anda dapat melihat modul pengintai laser kecil di dalam casing perangkat. Anda perlu melepaskan kabel pita dari modul dan melepas modul dari casing:

Perhatikan bahwa modul ditandai sebagai "701A". Firmware saya hanya mendukung versi modul "512A" dan "701A". Beberapa pengguna mengonfirmasi bahwa modul "703A" juga berfungsi (saya tidak mengujinya).

UPD 11/2019:
Perhatian:Ditemukan bahwa pita pengukur laser "x-40" yang lebih baru dilengkapi dengan modul "M88B". Menandai adalah "88B" di PCB dekat MCU. Modul itu didasarkan pada STM32F0 MCU (memiliki paket QFN-32). Modul tersebut tidak didukung oleh firmware saya!

UPD 10/2021:
Perhatian: menambahkan dukungan modul U85B :lihat tautan! Mereka digunakan dalam jenis pita pengukur laser modern.


Jika modul Anda didukung, Anda perlu melepas kabel listrik dari modul.

Langkah 2:Memprogram modul pengintai laser

Anda perlu menulis firmware khusus ke MCU modul untuk mendapatkan fungsionalitas yang dibutuhkan.

1. Pertama, Anda perlu menyolder beberapa kabel untuk memprogram MCU. Pinout ditunjukkan pada gambar:

Hubungkan pin 7-8 dari konektor keyboard - ini perlu untuk power up.

Saluran "GND" dan "Vbat" harus terhubung ke sumber listrik. Rentang tegangan daya adalah +2,7...+3,3V. Harus ada +3,5 V di saluran "Vdd" saat daya disuplai ke modul.

Baris "GND", "SWDIO", "SWCLK", "NRST" harus terhubung ke programmer ST-LINK. Baris "NRST" sangat penting - firmware asli MCU terkunci, jadi baris ini diperlukan untuk masuk ke MCU ke mode pemrograman.

Beberapa programmer memiliki baris ini, dan beberapa (murah) tidak, tetapi ada solusi untuk masalah ini.

Juga, beberapa pemrogram (seperti "ST-LINK/V2" asli) memerlukan saluran "Vbat" untuk dihubungkan dengan saluran "VCC/TVCC" pemrogram.

Contoh koneksi (programmer ini tidak memiliki baris "NRST"):

2. Instal "utilitas ST-LINK" ke PC. Jika Anda tidak memiliki pengalaman menggunakan perangkat lunak itu, ada banyak tutorial di Web.

Anda perlu mengonfigurasi utilitas (Target -> Pengaturan):

Jika programmer Anda memiliki output "NRST", Anda cukup menyalakan daya dan menekan "Target -> Connect" di utilitas.

Jika tidak memiliki garis seperti itu, Anda perlu melakukan langkah-langkah itu:

  • Nyalakan daya.
  • Hubungkan baris "NRST" modul ke GND.
  • Tekan "Target -> Hubungkan" di utilitas.
  • Cepat putuskan sambungan "NRST" dari GND.
  • Utilitas harus menunjukkan koneksi

Yon harus mendapatkan gambar seperti itu:

3. Flash MCU terkunci untuk membaca, jadi Anda harus menonaktifkan "Perlindungan Baca". Anda akan kehilangan firmware asli pada langkah ini!

Buka Target -> menu "Opsi Bytes". Harus ada pengaturan seperti itu:

Alihkan "Bacakan Perlindungan" ke "Nonaktif" dan tekan tombol "Batalkan pilihan semua", lalu tekan tombol "Terapkan". Coba mulai ulang modul (dengan memutuskan daya).

Tekan Target -> Hubungkan. Harus ada informasi tentang koneksi yang berhasil di jendela log dan Anda harus melihat isi memori - diisi dengan 0xFF. Sekarang Anda dapat memuat firmware khusus ke MCU.

4. Firmware yang dibutuhkan ditempatkan di sini:https://github.com/iliasam/Laser_tape_reverse_engineering/tree/master/Code/Firmware_dist_calculation_fast

Pilih file HEX yang sesuai untuk modul Anda dan unduh ke MCU Flash menggunakan "utilitas ST-LINK".

Langkah 3:Menghubungkan modul pengintai laser ke Arduino

Anda perlu menyolder kabel atau konektor ke bantalan TX di papan:

Lihat skema koneksi di bawah ini.

Pertama, Anda perlu memeriksa apakah modul pengintai berfungsi dengan baik. Pada langkah ini Anda tidak perlu menyambungkan layar OLED ke Arduino - cukup sambungkan jalur TX modul pengintai laser ke jalur TX Arduino, dan jalur daya modul ke sumber daya +3V.

Buat sketsa kosong dan muat ke Arduino. Buka "Serial Monitor" di Arduino IDE. Pilih baud rate:250000

Jika modul pengintai berfungsi dengan baik, Anda akan mendapatkan data yang sama:

Bahkan, lebih baik menggunakan konverter USB-UART khusus untuk pengujian ini. Pilih 256000 baudrate dalam utilitasnya (ini adalah baudrate nyata dari x-40 MCU).

Kedua, Anda perlu merakit skema lengkap dengan tampilan.

Hubungkan jalur TX dari modul pengintai laser ke jalur RX Arduino (Anda harus memutuskan kabel tersebut selama memuat program ke Arduino).

Jika semuanya bekerja dengan baik, Anda akan mendapatkan hasil yang sama:

Anda dapat melihat tampilan dengan 3 angka:

  • "COUNT" - penghitung nilai yang diterima
  • "AMPL" - amplitudo sinyal. Bilah simbolik ("<--->") di bawah ini menunjukkan amplitudo secara grafis (dalam skala logaritmik).
  • Nilai terbesar - jarak dalam meter dan milimeter.

Langkah 4:Kalibrasi nol

Setelah dimulai pertama kali, modul pengintai laser perlu dikalibrasi.

Anda perlu menempatkan beberapa objek putih pada jarak tertentu dari modul. Jarak ke objek ini akan menjadi jarak nol untuk modul pengintai. Untuk memulai proses kalibrasi, Anda perlu menghubungkan keyboard dari pita pengukur laser dan menekan tombol terendah. Modul akan berbunyi bip dua kali - di awal kalibrasi dan di akhir (durasi kalibrasi hampir 10 detik).

Sekarang Anda dapat menggunakan modul pengintai laser ini.

Tautan:

1. Github - hasil rekayasa balik dan kode sumber.

2. Habr.com - Google menerjemahkan artikel tentang proses rekayasa balik pita pengukur laser.

Maaf untuk bahasa Inggris saya - saya dari negara yang tidak berbahasa Inggris.

Kode

  • Sketsa Arduino
Sketsa ArduinoArduino
Tidak ada pratinjau (hanya unduhan).
Github
Kode untuk pita laserhttps://github.com/iliasam/Laser_tape_reverse_engineering

Skema

Skema perakitan papan tempat memotong roti

Proses manufaktur

  1. Cara Mengukur Kualitas Udara di OpenSensors
  2. Untuk Apa Pemotong Laser Digunakan?
  3. Pemantauan Suhu CERDAS untuk Sekolah
  4. Perpustakaan Port IO 8-Bit untuk Arduino
  5. Matriks Keyboard Prototipe 64-Key untuk Arduino
  6. TFT Shield untuk Arduino Nano - Mulai
  7. Input Analog Terisolasi untuk Arduino
  8. Arduino Breath Controller Murah (USB-MIDI)
  9. Robot untuk navigasi dalam ruangan yang sangat keren
  10. Membuat Kasus untuk 5G di Manufaktur