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.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