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

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Komponen dan perlengkapan

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Arduino Nano R3
×1
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Sensor Ultrasonik - HC-SR04 (Umum)
×1
Sel 18650
×1
Charger Litium Ion TP4056
×1
Konverter Boost DC-DC 5V
×1
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Buzzer
×1
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Potensiometer rotary (umum)
×1
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Tombol Geser
×1
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
LED (umum)
Merah (2), Hijau (1), Biru (1)
×4
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Resistor 330 ohm
×2
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Baut Cap Head OpenBuilds M3
Baut M3 10mm (4)
×1
Kabel
18 AWG
×1
Bagian Cetak 3D
3 bagian untuk enclosure
×1
Adapter Pas
×1

Alat dan mesin yang diperlukan

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Printer 3D (umum)
Saya menggunakan Anet A8
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Pakuat solder (umum)
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Pistol Lem Panas (umum)
Dremel
Atau alat rotary apa pun

Aplikasi dan layanan online

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Arduino IDE
Perlu mengunduh library NewPing
Simplify3D
Atau slicer pilihan Anda

Tentang proyek ini

Pendahuluan

Jurusan Ilmu Olahraga Lehman College sedang melakukan studi mengenai latihan beban. Ada ketidakkonsistenan dalam jangkauan gerak untuk repetisi, yang dapat mempengaruhi data secara signifikan. Saya diminta untuk membuat sebuah perangkat yang akan mengidentifikasi jangkauan gerak penuh untuk latihan yang menggunakan mesin atau beban lebih besar.

Perangkat harus memenuhi kondisi berikut:

Video

Bagian

Sebagian besar bagian ditampilkan di bawah ini, tetapi untuk daftar lengkap, lihat BoM di atas. Bagian yang digunakan dipilih bukan karena optimal; itulah yang saya miliki. Jejak dapat sangat dikurangi dengan PCB kustom, komponen SMT, atau baterai LiPo.

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Kode

Library NewPing diperlukan agar kode (yang disediakan di bawah) dapat dikompilasi.

Frekuensi buzzer dan batas atas/bawah adalah variabel global yang dapat diubah. Batas atas/bawah merujuk pada jarak minimum dan maksimum yang dibaca sensor, yang dipetakan ke nilai analog [0,5]V dari potensiometer.

int frequency = 700; //Frekuensi dalam Hz
int lower_bound = 60; //Jarak dalam mm
int upper_bound = 200; //Jarak dalam mm

3 bunyi bunyi terjadi saat nyala untuk menunjukkan bahwa boot berhasil (lihat loop setup()). Kemudian, loop() secara terus menerus meminta data dari sensor ultrasonik dan membandingkannya dengan ambang yang ditetapkan oleh potensiometer.

Pencetakan 3D

Semua file telah diunggah ke thingiverse, atau satu file terkompres dapat ditemukan di bagian bawah halaman. Cara menggunakan CAD tidak akan dibahas di sini. Model dibuat dengan mempertimbangkan keterbatasan pencetakan 3D. Overhangs diminimalkan dengan menggunakan chamfer 45 derajat, yang mengurangi bahan dukungan. Keonglong luas, jadi bagian seharusnya pas meskipun dicetak pada printer yang kalibrasi berbeda.

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Waktu cetak akan bervariasi, tetapi waktu cetak saya adalah sebagai berikut:

Rakit

Skematik sirkuit disediakan di bagian bawah halaman. Bagian dimasukkan tanpa dihubungkan kabel untuk memastikan kesesuaian.

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Kabel IDE yang digunakan kembali menyediakan semua kabel. Grup kabel dapat dikupas sambil tetap terhubung satu sama lain, yang memberikan beberapa urutan.

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Sebagian besar elektronik dipasang pada salah satu bagian yang dicetak, jadi beberapa pemikiran harus dilakukan untuk pengaturan dan manajemen kabel.

LED indikator SMD pada papan TP4056 dilepas solder. Kabel tambahan dan LED THT 3mm disolder di tempatnya. Resistor pembatas arus masih terintegrasi dengan papan. Ada video seseorang melakukan pemindahan ini.

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Arduino nano hanya memiliki 2 pad ground yang dapat diakses, jadi stripboard digunakan untuk menambahkan jumlah pad ground. Hal yang sama dilakukan dengan garis 5V, yang dapat dilihat dalam gambar di bawah ini.

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D
Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Memutuskan koneksi pada strip diperlukan sehingga 5V tidak disingkat ke ground. "X" merah menunjukkan lokasi pemutusan. Hanya tembaga atas yang perlu diacau, bukan seluruh papan serat kaca.

Komponen dihubungkan di luar enclosure. Mereka sesekali dipasang di dalam enclosure untuk mengukur panjang kabel dan memeriksa interferensi kabel.

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Potensiometer dipotong 6mm sehingga tidak akan terlihat terlalu banyak.

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Koneksi ke 18650 disolder langsung, yang merupakan praktik yang buruk. Overheating sel akan merusaknya dan dapat gagal seiring waktu. Penyelderaan strip aluminium adalah cara yang benar untuk menghubungkan 18650.

Lem panas digunakan dengan malu-malu untuk mengamankan elektronik. Hindari menggunakan lem panas jika memungkinkan. Desain mekanis yang benar dan pemegang akan bertahan lebih lama dari lem panas. Ia pasti akan gagal seiring waktu. Ini dapat dipahami untuk prototipe, tetapi bagian produksi tidak akan pernah menggunakan lem panas.

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Ringkasan

Secara refleksi, saya akan lebih suka menggunakan sensor IR daripada Ultrasonik, tetapi tidak ada cara saya dapat mengetahui ini sampai saya mulai bereksperimen dengan sensor Ultrasonik. Sensor IR memiliki FOV yang lebih sempit dengan kompromi jarak maksimum yang jauh lebih rendah (~3ft).

Jika akan ada versi kedua, LiPo akan menggantikan 18650. Nut adapter besar yang bergerotak berat dan menghabiskan ruang. Standar threaded untuk mounting tripod adalah 1/4", jadi nut 1/4" sederhana dari toko hardware cukup. PCB kustom akan mengurangi volume setengahnya.

Untuk prototipe yang dikonsepsi dari konsep hingga penyerahan dalam 2 minggu, saya puas.

Masa Depan Proyek

Saat saya bereksperimen dengan sensor ultrasonik, saya mempelajari lebih banyak tentang keterbatasannya. Yang pertama adalah bahwa FOV-nya memiliki sudut ~±15° (30° total). Ini berarti sebuah objek dapat memicu buzzer sebelum berada tepat di atas sensor. Ini menghasilkan ketidakakuratan dan pembacaan yang tidak diinginkan. Selain itu, jika bidang objek tidak tegak lurus (atau dalam sudut toleransi) terhadap gelombang suara yang ditransmisikan, sensor tidak akan menerima gelombang yang terpantul dan tidak akan dapat memproses nilai untuk jarak.

Rencana awal saya adalah untuk meletakkan unit di tanah dan membiarkan piringan pada bar latihan beban memicu buzzer saat mereka diturunkan melewati ambang. Sistem ini terdiri dari sensor tetap dan pemicu bergerak. Rekan engineering saya telah mengusulkan solusi alternatif, yang melibatkan membalikkan sistem. Dia mengusulkan memasang sensor pada bar yang bergerak sambil mengarah ke tanah. Dengan cara ini tanah menjadi pemicu. Ini juga menghilangkan ketidakakuratan karena FOV yang luas seperti yang disebutkan sebelumnya.

Usulan tersebut tidak hanya merupakan solusi yang hebat untuk masalah yang diberikan, tetapi juga sangat mudah diimplementasikan. Pesanan untuk adapter nut tripod 1/4" datang dengan adapter 1/4" -> 3/8" DAN adapter 3/8" -> 1/4". Yang kedua akan sebenarnya berguna!

Karena saya tidak memiliki akses ke dremel saat saya mulai membuat model 3D, itu memaksa saya untuk mempertimbangkan seluruh adapter tripod. Ini dalam kombinasi dengan sel 18650 meningkatkan berat secara signifikan. Saya tidak ingin menambahkan lebih banyak bobot dari yang perlu, jadi saya akan memotong adapter tripod kedua sebelum memodelkan mounting. Saya akan kembali ke proyek dalam satu minggu untuk menyelesaikan solusi mounting alternatif ini. Sampai saat itu, ini tetap berjalan!

Kode

RangeDetectionDevice.inoArduino
/** Viktor Silivanov 3/22/2018 Portable distance detection device using the HC-SR04 Ultrasonic sensor with distance adjustment for triggering the buzzer. **/ //******************** Libraries ************************************************************************************************************************************************************************************************************************* #include <NewPing.h> //******************** Pins **************************************************************************************************************************************************************************************************************************** //Analog Pins #define wiper A5 //Digital Pins #define echo 2 #define trig 3 #define ON_LED 7 #define buzzer 8 #define buzzer_LED 9 //******************** Global Variables ********************************************************************************************************************************************************************************************************* //User Modification Allowed int frequency = 700; //Frequency in Hz int lower_bound = 60; //Distance in mm int upper_bound = 200; //Distance in mm //Do Not Modify int buzz_time = 250; //Time in milliseconds for buzzer right upon startup int buzz_delay = 280; //Time in milliseconds for buzzer delay right upon startup int max_distance = 400; //Argument for object in the NewPing library int i = 0; int distance; int threshold; NewPing sonar(trig, echo, max_distance); //Instanciation of object "sonar" //******************** Setup **************************************************************************************************************************************************************************************************************************** //This function runs only once void setup() { Serial.begin(9600); //Allows use of serial monitor with a baud rate of 9600 //Pin I/O Type Declaration pinMode(trig, OUTPUT); pinMode(echo, INPUT); pinMode(buzzer, OUTPUT); pinMode(buzzer_LED, OUTPUT); pinMode(ON_LED, OUTPUT); digitalWrite(ON_LED, HIGH); //Turns on green LED; Stays on while unit is on //Buzzer beeps 3 times upon turning on device while(i < 3){ digitalWrite(buzzer_LED, HIGH); tone(buzzer, frequency, buzz_time); delay(buzz_delay); i++; } digitalWrite(buzzer_LED, LOW); } //******************** Runs Endlessly ********************************************************************************************************************************************************************************************************************* void loop() { distance = sonar.ping_cm(); //Object "sonar" utilizes ping_cm() function from the library, which returns a value in cm. Distance then take on that value threshold = analogRead(wiper); //Obtain analog value from wiper of the potentiometer threshold = map(threshold, 0, 1023, lower_bound, upper_bound); //Translate analog readings into trigger range. Update values of threshold if(distance != 0 && distance < threshold){ //Condition to trigger the buzzer tone(buzzer, frequency); digitalWrite(buzzer_LED, HIGH); } else{ //State of buzzer & LED otherwise noTone(buzzer); digitalWrite(buzzer_LED, LOW); } //serial_test(); //Uncommment this to view data from the serial monitor } //******************** Test Function ************************************************************************************************************************************************************************************************************ //Utilizes serial monitor to display some values. Used for testing/debugging purposes. void serial_test(){ Serial.print("Ping: "); Serial.print(distance); Serial.println("cm"); Serial.print("Range: ["); Serial.print(lower_bound); Serial.print(", "); Serial.print(upper_bound); Serial.println("] cm"); Serial.print("Threshold: "); Serial.print(threshold); Serial.println("cm"); delay(100); } 

Bagian dan enclosure kustom

Semua 3 bagian disimpan dalam satu file

Skematik

Detektor Jarak Portabel – Kit DIY Arduino Nano dengan HC‑SR04, Baterai 18650, dan Kotak Cetak 3D

Proses manufaktur

  1. Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
  2. Buat Game Gyroskop Real-Time dengan Arduino Nano & Sensor MPU-6050
  3. Proyek Dadu Digital Arduino: Buat Generator Angka Acak berbasis LCD
  4. Buat Sendiri Game Roulette 37 LED dengan Arduino Nano
  5. ATtiny85 Mini Arcade: Snake – Buat Konsol Game OLED Tangan
  6. Membuat Lampu Meja Reaktif Audio dengan Arduino Nano
  7. Mobil Robot Otonomi Pelacak Wajah dengan Arduino Nano & OpenCV
  8. Proyek Pelapisan Tembaga: Bangun Sistem Cerdas dengan Arduino UNO
  9. Pong Matriks NeoPixel pada Arduino Nano: Buat Game Pong Neon
  10. Stasiun Pemantauan Suhu Portabel – TMP36 Akurat dan Layar LCD