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

Detektor Jangkauan Portabel

Komponen dan persediaan

Arduino Nano R3
× 1
Sensor Ultrasonik - HC-SR04 (Generik)
× 1
18650 Sel
× 1
Pengisi Daya Lithium Ion TP4056
× 1
Konverter Peningkatan 5V DC-DC
× 1
Buzzer
× 1
Potensiometer putar (generik)
× 1
Sakelar Geser
× 1
LED (generik)
Merah (2), Hijau (1), Biru (1)
× 4
Resistor 330 ohm
× 2
Sekrup Kepala Tutup M3 OpenBuilds
Baut M3 10mm (4)
× 1
Kabel
18 AWG
× 1
Bagian Cetakan 3D
3 bagian untuk enklosur
× 1
Adaptor Utas
× 1

Alat dan mesin yang diperlukan

Printer 3D (generik)
Saya menggunakan Anet A8
Besi solder (generik)
Pistol lem panas (generik)
Dremel
Atau alat putar apa pun

Aplikasi dan layanan online

Arduino IDE
Perlu mengunduh pustaka NewPing
Simplify3D
Atau alat pengiris pilihan

Tentang proyek ini

Pendahuluan

Departemen Ilmu Latihan Lehman College sedang melakukan penelitian seputar latihan beban. Ada inkonsistensi dalam rentang gerak untuk pengulangan, yang secara signifikan dapat mempengaruhi data. Saya didekati untuk membuat perangkat yang akan mengidentifikasi rentang gerak penuh untuk latihan yang menggunakan mesin atau beban yang lebih besar.

Perangkat harus memenuhi kondisi berikut ini :

  • Jarak yang Dapat Disesuaikan
  • Tidak dipasang permanen pada mesin.
  • Kompatibel dengan Tripod
  • Tanpa kabel

Video

Bagian

Sebagian besar ditampilkan di bawah, tetapi untuk daftar lengkapnya, lihat BoM di atas. Bagian yang digunakan dipilih bukan karena optimal; itulah yang harus saya kerjakan. Jejak dapat dikurangi secara signifikan dengan PCB khusus, komponen SMT, atau baterai LiPo.

Kode

Pustaka NewPing diperlukan agar kode (disediakan di bagian bawah) dapat dikompilasi.

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

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

3 bunyi bip terjadi saat power up untuk menunjukkan bahwa boot berhasil (lihat setup() lingkaran). Selanjutnya, loop() terus meminta data dari sensor ultrasonik dan membandingkannya dengan ambang batas yang ditetapkan oleh potensiometer.

Pencetakan 3D

Semua file telah diunggah ke thingiverse, atau satu file ringkas dapat ditemukan di bagian bawah halaman. Cara menggunakan CAD tidak akan dibahas di sini. Model dibuat dengan mempertimbangkan keterbatasan pencetakan 3D. Overhang diminimalkan dengan menggunakan chamfers 45 derajat, yang mengurangi material pendukung. Jarak bebasnya cukup besar, jadi suku cadang harus pas meskipun dicetak pada printer yang dikalibrasi berbeda.

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

  • Bagian Atas:2 jam 40 menit
  • Bagian Bawah:2 jam 20 menit
  • Tombol:20 menit

Perakitan

Skema sirkuit disediakan di bawah halaman. Bagian dimasukkan tanpa kabel untuk mengkonfirmasi kecocokan.

Kabel IDE yang diselamatkan menyediakan semua kabel. Kelompok kabel dapat dikupas sambil tetap menempel satu sama lain, yang memberikan beberapa urutan.

Sebagian besar elektronik dipasang ke salah satu bagian yang dicetak, jadi beberapa pemikiran harus dimasukkan ke dalam perutean dan manajemen kabel.

LED indikator SMD pada papan TP4056 disolder. Kabel ekstensi dan LED THT 3mm disolder di tempatnya. Resistor pembatas arus masih terintegrasi dengan papan. Ada video seseorang yang melakukan relokasi ini.

Arduino nano hanya memiliki 2 bantalan arde yang dapat diakses, jadi stripboard digunakan untuk menambah jumlah bantalan arde. Hal yang sama dilakukan dengan saluran 5V, yang dapat dilihat pada gambar di bawah ini.

Memutus sambungan pada strip diperlukan agar 5V tidak korsleting ke ground. Merah "X" menggambarkan lokasi istirahat. Hanya tembaga bagian atas yang perlu dirusak, bukan seluruh papan fiberglass.

Komponen disambungkan ke luar enklosur. Mereka kadang-kadang dipasang di selungkup untuk mengukur panjang kawat dan memeriksa gangguan kawat.

Potensiometer dipangkas sebesar 6mm agar tidak terlalu menonjol.

Sambungan ke 18650 disolder secara langsung, yang merupakan praktik yang buruk. Terlalu panas sel akan merusaknya dan bisa gagal dari waktu ke waktu. Pengelasan titik strip aluminium adalah cara yang benar untuk menghubungkan tahun 18650-an.

Lem panas secara memalukan digunakan untuk mengamankan barang elektronik. Hindari menggunakan lem panas jika memungkinkan. Desain mekanis dan pengencang yang benar akan bertahan lebih lama dari lem panas. Itu pasti akan gagal seiring waktu. Dapat dimengerti untuk prototipe, tetapi bagian produksi tidak akan pernah menggunakan lem panas.

Ringkasan

Dalam retrospeksi, saya lebih suka menggunakan sensor IR daripada Ultrasonic, tetapi tidak mungkin saya mengetahui hal ini sampai saya mulai bereksperimen dengan sensor Ultrasonic. Sensor IR memiliki FOV yang lebih sempit dengan pertukaran jarak maksimum yang jauh lebih rendah (~3 kaki).

Jika ada versi kedua, LiPo akan menggantikan 18650. Kacang adaper knurled besar berat dan menghabiskan ruang. Benang standar untuk dudukan tripod adalah 1/4", jadi mur sederhana 1/4" dari toko perangkat keras sudah cukup. PCB khusus akan mengurangi volume hingga setengahnya.

Untuk prototipe yang disusun dari konsep untuk diserahkan dalam waktu 2 minggu, saya puas.

Masa Depan Proyek

Ketika saya bereksperimen dengan sensor ultrasound, saya belajar lebih banyak tentang keterbatasannya. Yang pertama adalah bahwa FOV-nya memiliki sudut ~±15° (total 30°). Ini berarti bahwa suatu objek dapat memicu bel 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 pantul dan tidak dapat memproses nilai jarak.

Rencana awal saya adalah meletakkan unit di tanah dan membiarkan pelat di bar latihan beban memicu bel ketika diturunkan melewati ambang batas. Sistem ini terdiri dari sensor tetap dan pemicu bergerak. Rekan rekan teknik saya telah mengusulkan solusi alternatif, yang melibatkan pembalikkan sistem. Dia mengusulkan pemasangan sensor ke bilah bergerak sambil mengarahkannya ke tanah. Dengan cara ini tanah menjadi pemicunya. Itu juga menghilangkan ketidakakuratan karena FOV yang luas seperti yang disebutkan sebelumnya.

Proposal itu tidak hanya merupakan solusi yang bagus untuk masalah yang diberikan, tetapi juga sangat mudah untuk diterapkan. Pesanan untuk adaptor mur tripod 1/4" disertakan dengan adaptor 1/4" -> 3/8" DAN adaptor 3/8" -> 1/4". Yang kedua akan benar-benar digunakan!

Karena saya tidak memiliki akses ke dremel saya ketika saya pertama kali memulai model 3D, itu memaksa saya untuk memperhitungkan seluruh adaptor tripod. Ini dalam kombinasi dengan sel 18650 meningkatkan berat secara signifikan. Saya tidak ingin menambah bobot lebih dari yang saya butuhkan, jadi saya akan memotong adaptor tripod kedua sebelum membuat model dudukan. Saya akan kembali ke proyek dalam seminggu untuk menyelesaikan solusi pemasangan alternatif ini. Sampai saat itu, masih berfungsi!

Kode

  • RangeDetectionDevice.ino
RangeDetectionDevice.inoArduino
/** Viktor Silivanov 22/3/2018 Perangkat pendeteksi jarak portabel menggunakan sensor Ultrasonik HC-SR04 dengan penyesuaian jarak untuk memicu bel.**///************* ******* Perpustakaan ****************************************** ************************************************** ************************************************** ************************************************** ****************#include //********************* Pin **** ************************************************** ************************************************** ************************************************** ************************************************** ********//Analog Pin#define wiper A5//Digital Pins#define echo 2#define trig 3#define ON_LED 7#define buzzer 8#define buzzer_LED 9//********* ************ Variabel Global ************************************ ************************************************** ************************************************** *************************************** **************************//Modifikasi Pengguna Diizinkanint frekuensi =700; //Frekuensi dalam Hzint lower_bound =60; //Jarak dalam mmint upper_bound =200; //Jarak dalam mm//Jangan Ubah waktu buzz_time =250; //Waktu dalam milidetik untuk buzzer tepat saat startupint buzz_delay =280; //Waktu dalam milidetik untuk penundaan buzzer tepat saat startupint max_distance =400; //Argumen untuk objek di libraryint NewPing i =0;int distance;int threshold; NewPing sonar(trig, echo, max_distance); //Instansiasi objek "sonar"//****************** Setup ******************* ************************************************** ************************************************** ************************************************** *******************************************//Fungsi ini hanya berjalan sekali batal setup() { Serial.begin(9600); //Mengizinkan penggunaan monitor serial dengan baud rate 9600 //Deklarasi Jenis Pin I/O pinMode(trig, OUTPUT); pinMode(gema, INPUT); pinMode(buzzer, OUTPUT); pinMode(buzzer_LED, OUTPUT); pinMode(ON_LED, OUTPUT); digitalWrite(ON_LED, TINGGI); //Menyalakan LED hijau; Tetap menyala saat unit menyala //Buzzer berbunyi bip 3 kali saat menghidupkan perangkat saat(i <3){ digitalWrite(buzzer_LED, HIGH); nada(buzzer, frekuensi, buzz_time); tunda(buzz_delay); saya++; } digitalWrite(buzzer_LED, LOW);}//********************* Berjalan Tanpa Akhir **************** ************************************************** ************************************************** ************************************************** ************************************void loop() { jarak =sonar.ping_cm(); //Objek "sonar" menggunakan fungsi ping_cm() dari perpustakaan, yang mengembalikan nilai dalam cm. Jarak kemudian ambil nilai ambang batas =analogRead(wiper); //Mendapatkan nilai analog dari wiper potensiometer threshold =map(threshold, 0, 1023, lower_bound, upper_bound); //Terjemahkan pembacaan analog ke dalam rentang pemicu. Perbarui nilai ambang batas if(jarak !=0 &&jarak   

Suku cadang dan penutup khusus

Semua 3 bagian disimpan ke satu file

Skema


Proses manufaktur

  1. Detektor Bahasa TinyML Berbasis Edge Impulse &Arduino
  2. Game Arduino Gyroscope dengan MPU-6050
  3. Arduino Digital Dice
  4. Game Roulette LED 37 DIY
  5. ATtiny85 Mini Arcade:Ular
  6. Lampu Meja Reaktif Audio Arduino
  7. Mobil Robot Pelacak Wajah Cerdas
  8. Elektroplating dengan Tembaga
  9. NeoMatrix Arduino Pong
  10. Stasiun Suhu Portabel