Daftar Isi:
- Langkah 1: Bahan, Alat, Perangkat yang Digunakan untuk Menjalankan Proyek
- Langkah 2: Hal Perangkat Keras Yang Perlu Dilakukan
- Langkah 3: Pengodean Arduino
- Langkah 4: Perangkat Lunak Visual Studio C#
- Langkah 5: Hasil
Video: Alat Ukur Tingkat Umpan CNC yang Terbuat Dari Scrap: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Adakah yang pernah ingin mengukur laju umpan aktual pada mesin CNC? Mungkin tidak, sampai bit penggilingan utuh setelah pekerjaan CNC… tetapi ketika mereka mulai rusak secara teratur, mungkin inilah saatnya untuk menyelidiki. Dalam instruksi ini Anda dapat mengikuti pencarian dalam menentukan laju umpan aktual dari mesin CNC. Ini akan mencakup bagian rekayasa balik dari printer, firmware arduino, perangkat lunak PC, dan hasil yang saya dapatkan dengan bantuan rekan-rekan saya, dan sampah berubah menjadi harta karun.
Langkah 1: Bahan, Alat, Perangkat yang Digunakan untuk Menjalankan Proyek
Ketika saya mulai mengerjakan ini, saya memikirkan daftar pendek dari hal-hal yang kita perlukan:
- mekanisme kereta printer yang dibongkar
- alat-alat tangan untuk men-tweak itu
- besi solder, solder, kabel
- multimeter
- osiloskop atau penganalisis logika - ini tidak mutlak diperlukan
- Sumber Daya listrik
- mikroskop
- Arduino nano + pinout
- PC dengan Arduino IDE, Visual Studio 2008 Express + alat MS Charting terpasang
- (MPU6050 - saya akhirnya tidak menggunakan ini)
- bersedia menelusuri semua yang Anda tidak tahu caranya
Pada awalnya, saya berpikir bahwa papan MPU6050 akan memungkinkan saya untuk mengukur laju umpan pada ketiga sumbu sekaligus. Memiliki akselerometer di dalamnya, saya yakin bahwa menjumlahkan data akselerometer akan memberi saya nilai yang diinginkan - kecepatan pada setiap sumbu. Setelah mengunduh dan memodifikasi cuplikan Arduino yang menampilkan data mentah pada monitor serial, saya menulis program PC kecil di Visual Studio yang memproses data, dan memplotnya pada bagan untuk interpretasi yang lebih mudah. Saya harus mengunduh Visual Studio C# Express 2008 dan alat pembuatan bagan untuk ini.
Setelah mengkode beberapa saat dan mencari semua hal yang saya butuhkan untuk komunikasi serial, saya berakhir dengan nilai yang diplot, tetapi apa pun yang saya lakukan, itu tidak dapat digunakan. Gerakan kecil tapi tiba-tiba akan menghasilkan lonjakan besar, sementara perjalanan yang lebih lama bahkan tidak akan muncul di grafik. Setelah dua hari memalu MPU6050, saya akhirnya menyerah dan beralih ke sesuatu yang lain - mekanisme umpan balik posisi printer yang dibongkar.
Langkah 2: Hal Perangkat Keras Yang Perlu Dilakukan
Rekayasa Terbalik
Tentu saja, mekanisme printer tidak memiliki nomor bagian yang dapat saya gunakan untuk menentukan sifat persisnya, perlu sedikit rekayasa balik untuk mencapai apa yang kami inginkan. Setelah memeriksa mekanisme dan elektronik dengan cermat, saya memutuskan bahwa hal pertama yang harus dilakukan adalah identifikasi pin sensor optik. Ini harus dilakukan untuk menghubungkan semuanya ke Arduino. Saya membongkar bagian plastik hitam, mengekstrak PCB, dan memeriksa sensornya: ada tulisan ROHM RPI-2150 di atasnya. Itu membuat saya senang, harapan tinggi bahwa saya akan menemukan lembar data. Sayangnya ini adalah bagian lama, atau bagian khusus - tidak ada lembar data yang dapat ditemukan di mana pun di web. Ini berarti bahwa saya harus mengambil tindakan sendiri: mengetahui bahwa sensor ini biasanya memiliki LED inframerah dan dua transistor foto di dalamnya, saya mengambil multimeter, mengaturnya ke mode pengukuran dioda, dan mulai mengukur di antara pin.
Pin daya biasanya mudah ditemukan - mereka akan memiliki kapasitor di atasnya, dan biasanya terhubung dengan jejak lebar pada PCB-s. Jejak tanah sering dihubungkan ke beberapa bantalan untuk penolakan kebisingan yang lebih baik.
Namun, pin input dan output tidak terlalu sepele. Saat mengukur melintasi dioda, meteran akan menunjukkan tegangan majunya di satu arah, dan kelebihan beban (tak terbatas) di arah lain. Saya dapat mengidentifikasi empat dioda di antara pin, saya menyimpulkan bahwa dioda keempat harus semacam dioda zener atau TVS, karena berada tepat di antara pin daya komponen. Menemukan pemancar inframerah itu mudah, ada resistor 89R yang dirangkai secara seri. Saya mendapat dua pengukuran dioda pada dua pin yang tersisa, itu harus menjadi dua penerima.
Catatan: Sensor ini memiliki dua penerima agar dapat menentukan arah gerakan selain menentukan posisi dengan menghitung pulsa. Kedua bentuk gelombang keluaran ini keluar fase 90°, ini digunakan untuk menghasilkan pulsa count-up atau count-down. Dengan mengikuti jumlah pulsa ini, posisi yang tepat dari kepala cetak dapat ditentukan.
Ketika emitor dan dua penerima ditemukan, saya menyolder kabel pada pinnya, sehingga saya dapat menghubungkan sensor dengan Arduino. Sebelum melakukan itu, saya memasok sensor dengan 3.3V, menarik strip di antara sensor beberapa kali, dan mengamati gelombang persegi pada output. Frekuensi gelombang persegi bervariasi dengan kecepatan gerakan, dan saya menyimpulkan bahwa sistem pengukuran sekarang siap untuk dihubungkan ke Arduino.
Menghubungkan Arduino
Menghubungkan 'sensor' baru ini sangat mudah. Cukup sambungkan output sensor ke D2 dan D3 (pin berkemampuan interupsi!), dan jalur catu daya, dan pengkodean dapat dimulai.
Langkah 3: Pengodean Arduino
Kode Arduino cukup sederhana. Saya menetapkan fungsi yang dijalankan setiap kali D2 melihat peningkatan, ini adalah fungsi yang berlalu dari kode Arduino yang saya lampirkan. Jika Anda melihat sinyal dari encoder kuadrat, Anda akan melihat ini:
- dalam satu arah fase A adalah logika tinggi pada setiap fase B naik tepi
- di arah lain fase A adalah logika rendah pada setiap fase B naik tepi
Ini adalah properti dari encoder yang saya manfaatkan: karena fungsi elapse dijalankan setiap kali D2 memiliki sisi naik, saya hanya menulis jika itu menambah penghitung saat D3 tinggi, dan menguranginya saat D3 rendah. Ini berhasil pada percobaan pertama, saya mengirim nilai penghitung ke monitor serial, dan melihatnya naik/turun ketika saya memindahkan kepala printer pada poros.
Singkat cerita, firmware melakukan hal berikut dalam fungsi loop:
- memeriksa buffer penerima serial untuk setiap data yang masuk
- jika ada data yang masuk, periksa apakah itu '1' atau tidak
- jika '1', itu berarti perangkat lunak PC meminta nilai penghitung
- kirim nilai penghitung ke PC melalui serial
- mulai lagi jam 1.
Dengan ini, bola ada di pengadilan perangkat lunak PC sekarang. Mari kita masuk ke itu!
Langkah 4: Perangkat Lunak Visual Studio C#
Tujuan dari program VS C# adalah untuk memindahkan beban komputasi dari Arduino ke PC. Perangkat lunak ini menerima data yang disediakan Arduino, menghitung dan menampilkan kecepatan dalam bentuk grafik.
Yang pertama saya lakukan adalah ke google bagaimana melakukan komunikasi serial di C#. Saya menemukan banyak info bagus di MSDN.com bersama dengan contoh yang bagus, lalu saya membuang apa yang tidak saya butuhkan - pada dasarnya semuanya kecuali bagian membaca. Saya mengatur port COM dan kecepatan agar sesuai dengan Arduino, lalu mencobanya beberapa kali dan membuang semua yang datang pada port serial ke dalam kotak teks multi-baris.
Setelah nilainya dibaca, saya bisa menggunakan fungsi readto & split untuk mengisolasi satu pengukuran dari satu sama lain, dan dari karakter pembatas. Ini diplot pada kontrol Bagan, dan nilainya mulai muncul di layar.
Jika Anda tidak dapat melihat kontrol Bagan di kotak alat VS Anda, Anda dapat mencari masalahnya di Google dan menemukan solusinya di sini (cari jawaban #1): tautan
Prinsip pengukuran
Untuk menemukan hubungan antara jumlah hitungan dan jarak perjalanan kepala, kami memusatkan nilai hitungan, memindahkan kepala printer 100mm dengan tangan, dan mengamati perubahan hitungan. Kami akhirnya menemukan proporsi berikut: 1 hitungan = 0,17094mm.
Karena kita dapat menanyakan jarak dan kita dapat mengukur waktu antara sampel, kita dapat menghitung tingkat di mana pergeseran posisi terjadi - kita dapat menghitung kecepatan!
Ada waktu perangkat lunak kasar 50 ms berkat TMR0, tetapi kami mengamati bahwa pengaturan waktu ini tidak terlalu akurat. Faktanya, setelah beberapa pengukuran kecepatan perangkat lunak, kami menemukan bahwa waktu 50ms sama sekali bukan 50ms. Ini berarti bahwa sampel tidak diambil pada interval tetap, sehingga perhitungan kecepatan juga tidak dapat menggunakan basis waktu yang tetap. Setelah kami menemukan masalah ini, mudah untuk melanjutkan: kami mengambil perbedaan jarak dan perbedaan waktu dan menghitung kecepatan sebagai D_distance/D_time (bukan D-distance/50ms).
Juga, karena persamaan kita akan mengembalikan kecepatan dalam satuan mm/50 md, kita perlu mengalikannya dengan 1200 untuk mendapatkan jarak yang ditempuh kepala dalam satu menit, dalam [mm/menit].
Catatan: perangkat lunak pengontrol pabrik CNC Mach 3 mendefinisikan laju umpan dalam satuan [mm/menit]
Penyaringan
Dari titik ini, pengukuran tampaknya cukup akurat, tetapi ada beberapa gangguan pada sinyal yang diukur. Kami menduga bahwa ini karena inkonsistensi mekanis pada poros, kopling poros, dll, jadi kami memutuskan untuk menyaringnya, untuk mendapatkan nilai rata-rata yang bagus dari apa yang diukur.
Penyesuaian halus untuk perangkat lunak
Untuk mengubah laju sampel dan laju filter selama runtime, bilah gulir ditambahkan - satu untuk masing-masing. Juga, kemampuan untuk menyembunyikan plot juga diperkenalkan.
Langkah 5: Hasil
Setelah bagian perangkat keras dan perangkat lunak siap, kami menjalankan tiga set pengukuran dengan mach 3 + perangkat lunak saya, Anda dapat melihat hasilnya pada gambar terlampir. Eksperimen selanjutnya menunjukkan akurasi yang lebih baik, dengan peningkatan filter dan laju sampel. Plot menunjukkan kecepatan terukur dengan warna merah pekat, dan rata-rata dengan garis putus-putus biru.
Meskipun demikian, sepertinya Mach 3 menangani pengaturan kecepatan ini dengan cukup akurat, tetapi sekarang kita tahu pasti:)
Saya harap Anda menikmati instruksi singkat ini tentang rekayasa balik dan mengubah air menjadi anggur!
Bersulang!
Direkomendasikan:
E Band - Seni Terbuat Dari Komponen Elektronik Scrap: 5 Langkah
The E Band - Art Made From Scrap Electronics Parts: Yah…Saya punya beberapa resistor tambahan (banyak!) Dan bagian lainnya.Jadi…Saya membuat karya seni menggunakan potongan sirkuit ini
Turbin Elektrostatik yang Ditingkatkan yang Terbuat Dari Daur Ulang: 16 Langkah (dengan Gambar)
Turbin Elektrostatik yang Ditingkatkan yang Terbuat Dari Daur Ulang: Ini adalah turbin elektrostatik (EST) yang dibuat dari awal sepenuhnya yang mengubah arus searah tegangan tinggi (HVDC) menjadi gerakan berputar berkecepatan tinggi. Proyek saya terinspirasi oleh Jefimenko Corona Motor yang ditenagai oleh listrik dari atmosfer
Alat Bantu Pemotongan Tingkat Lanjut: 10 Langkah (dengan Gambar)
Alat Bantu Pemotongan Tingkat Lanjut: Alat Bantu Pemotongan adalah alat yang dirancang untuk memotong tanpa menggunakan otot tangan/jari. Produk ini awalnya dirancang untuk seseorang yang suka bekerja di dapur tetapi mengalami keterbatasan otot pada jari-jarinya. Kami telah mendesain ulang t
Speaker Bluetooth Portabel Terbuat Dari Kayu Scrap: 9 Langkah (dengan Gambar)
Speaker Bluetooth Portabel Terbuat Dari Kayu Scrap: Halo semuanya, sudah lama sejak terakhir kali saya memposting di sini jadi saya pikir saya akan mempublikasikan proyek saya saat ini. Di masa lalu saya membuat beberapa speaker portabel tetapi kebanyakan dari mereka terbuat dari plastik/akrilik karena mudah digunakan dan tidak memerlukan
Motor Mendocino Paling Sederhana Yang Terbuat dari Expanded Polystyrene: 3 Langkah (Dengan Gambar)
Motor Mendocino Paling Sederhana Yang Terbuat dari Polystyrene yang Diperluas: Motor Mendocino adalah motor listrik bertenaga surya yang digerakkan secara magnetis