Buat Stadiometer Digital: Lacak Tinggi Badan dengan Arduino dan Sensor Laser
Komponen dan Perlengkapan
Arduino Nano R3 × 1
Sensor laser CJMCU 530 (VL53L0x) × 1
Encoder Rotary KY-040 × 1
Tampilan OLED SSD1306 128x64 × 1
Buzzer × 1
Resistor 10KΩ × 2
Tentang Proyek Ini
Ikuti pertumbuhan anak Anda dengan stadiometer digital!
Selama masa kanak-kanak saya, ibi saya biasanya mengukur tinggi badan saya secara berkala dan mencatatnya di buku catatan untuk mengikuti pertumbuhan saya. Tentu saja, karena tidak memiliki stadiometer di rumah, saya berdiri di dinding atau bingkai pintu sementara ia mengukur dengan pita ukur. Sekarang saya memiliki cucu perempuan yang baru lahir dan ketika dia mulai berjalan, orang tuanya pasti akan tertarik untuk mengikuti pertumbuhan tingginya. Itulah mengapa ide stadiometer digital lahir.
Dibangun di sekitar Arduino Nano dan sensor "Time of Flight" yang mengukur seberapa lama cahaya laser kecil membutuhkan waktu untuk memantul kembali ke sensor.
Langkah 1: Bagian dan Komponen
Arduino Nano Rev 3
Sensor laser CJMCU 530 (VL53L0x)
Encoder rotary KY-040
Tampilan OLED SSD1306 128x64
Buzzer pasif
Langkah 2: Sensor
VL53L0X ST Microelectronics adalah modul pengukuran jarak laser Time-of-Flight (ToF) generasi baru yang dikemas dalam kemasan kecil, menyediakan pengukuran jarak yang akurat apa pun refleksi target, tidak seperti teknologi konvensional.
Ia dapat mengukur jarak absolut hingga 2m. Laser internal sepenuhnya tidak terlihat oleh mata manusia (panjang gelombang 940 nm) dan mematuhi standar terbaru dalam hal keselamatan. Ia mengintegrasikan array SPADs (Single Photon Avalanche Diodes).
Komunikasi ke sensor dilakukan melalui I2C. Karena proyek ini juga mencakup I2C yang terpasang (OLED), 2 resistor pullup 10KΩ diperlukan pada garis SCL dan SDA.
Saya telah menggunakan CJMCU-530, yang adalah modul breakout yang menampilkan VL53L0X oleh ST Microelectronics.
Langkah 3: Operasi dan Posisi Sensor
Setelah dibangun dan diuji, perangkat harus dipasang di tengah bingkai pintu atas; ini karena jika Anda memasangnya terlalu dekat dengan dinding atau rintangan, sinar laser IR akan terganggu dan menciptakan fenomena crosstalk pada pengukuran. Opsi lain adalah memasang perangkat melalui batang pengait untuk memindahkannya dari dinding, tetapi itu lebih merepotkan.
Hati-hati ambil ukuran panjang yang benar antara lantai dan sensor (offset yang akan diatur) dan kalibrasi perangkat (lihat langkah berikutnya). Setelah dikalibrasi, perangkat dapat digunakan tanpa perlu dikalibrasi lagi, kecuali Anda memindahkannya ke posisi lain.
Nyalakan perangkat dan berdiri di bawahnya, dalam posisi lurus dan teguh. Pengukuran akan dilakukan ketika perangkat mendeteksi panjang yang stabil selama lebih dari 2,5 detik. Pada titik itu, ia akan mengeluarkan suara musik "sukses" dan mempertahankan pengukuran yang ditampilkan di layar.
Langkah 4: Kalibrasi Offset
Seperti yang disebutkan sebelumnya, Anda perlu menetapkan nilai yang benar (dalam sentimeter) untuk offset, jarak antara perangkat pengukuran dan lantai. Ini dapat dilakukan dengan menekan knob encoder rotary (yang memiliki tombol push). Setelah mode kalibrasi diaktifkan, atur jarak yang benar dengan memutar knob (searah jarum jam menambahkan sentimen, berlawanan arah jarum jam mengurangi). Offset bervariasi dari 0 hingga 2,55 m.
Selesai, tekan knob lagi. Dua nada berbeda akan dihasilkan oleh buzzer internal untuk memberi umpan balik akustik kepada Anda. Mode kalibrasi memiliki batas waktu 1 menit: jika Anda tidak menetapkan offset dalam batas waktu ini, perangkat keluar dari mode kalibrasi dan kembali ke mode pengukuran, tanpa mengubah offset yang disimpan. Offset disimpan dalam memori EEPROM Arduino, untuk mempertahankannya melalui pemadaman berikutnya.
Langkah 5: Kode
ST Microelectronics telah merilis library API lengkap untuk VL53L0X, termasuk deteksi gesture. Untuk tujuan perangkat saya, saya menemukan lebih mudah untuk menggunakan library VL53L0X Pololu untuk Arduino. Library ini dimaksudkan untuk memberikan cara yang lebih cepat dan mudah untuk memulai menggunakan VL53L0X dengan pengontrol kompatibel Arduino, dibandingkan menyesuaikan dan mengkompilasi API ST untuk Arduino.
Saya telah mengatur sensor ke mode HIGH ACCURACY dan LONG RANGE, untuk memiliki lebih banyak kebebasan pada ketinggian pemasangan dan pengaturan offset. Ini akan menghasilkan kecepatan deteksi yang lebih lambat, yang tetap cukup untuk tujuan perangkat ini.
Offset disimpan dalam memori EEPROM Arduino, nilai-nilainya tetap tersimpan ketika papan dimatikan.
Di bagian loop, pengukuran baru dibandingkan dengan yang sebelumnya dan jika 2,5 detik berlalu pada pengukuran yang sama (dan jika itu BUKAN nilai Offrange atau Timeout), pengukuran dikurangi dari offset dan ditampilkan secara stabil di layar. Musik pendek "sukses" diputar oleh buzzer piezo, untuk memberitahu pengguna secara akustik.
HTAY.ino
Langkah 6: Skematik
Langkah 7: Kotak/Penutup dan Rangkaian
Seperti ketidakmampuan saya untuk memotong jendela persegi panjang pada kotak komersial sangat terkenal, saya mengambil jalan untuk mendesain kotak dengan CAD dan mengirimkannya untuk dicetak 3D. Ini bukan pilihan termurah, tetapi masih merupakan solusi yang nyaman karena menawarkan kemungkinan untuk sangat presisi dan fleksibel dalam penempatan semua komponen.
Chip laser kecil dipasang tanpa kaca pelindung apa pun, untuk menghindari crosstalk dan pengukuran yang tidak teratur. Jika Anda ingin memasang laser di balik kaca, Anda perlu melakukan prosedur kalibrasi kompleks seperti yang dilaporkan dalam dokumentasi ST Microelectronics.