Daftar Isi:

Alat Ukur Tingkat Umpan CNC yang Terbuat Dari Scrap: 5 Langkah
Alat Ukur Tingkat Umpan CNC yang Terbuat Dari Scrap: 5 Langkah

Video: Alat Ukur Tingkat Umpan CNC yang Terbuat Dari Scrap: 5 Langkah

Video: Alat Ukur Tingkat Umpan CNC yang Terbuat Dari Scrap: 5 Langkah
Video: GILA!!.. IKAN PULUHAN JUTA M4TI KARENA INI… #ikan #aquarium #ikanchanna 2024, November
Anonim
Alat Ukur Tingkat Umpan CNC yang Terbuat Dari Scrap
Alat Ukur Tingkat Umpan CNC yang Terbuat Dari Scrap

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

Hal Perangkat Keras Yang Perlu Dilakukan
Hal Perangkat Keras Yang Perlu Dilakukan
Hal Perangkat Keras Yang Perlu Dilakukan
Hal Perangkat Keras Yang Perlu Dilakukan
Hal Perangkat Keras Yang Perlu Dilakukan
Hal Perangkat Keras Yang Perlu Dilakukan
Hal Perangkat Keras Yang Perlu Dilakukan
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

Pengkodean Arduino
Pengkodean 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:

  1. memeriksa buffer penerima serial untuk setiap data yang masuk
  2. jika ada data yang masuk, periksa apakah itu '1' atau tidak
  3. jika '1', itu berarti perangkat lunak PC meminta nilai penghitung
  4. kirim nilai penghitung ke PC melalui serial
  5. 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

Hasil
Hasil
Hasil
Hasil
Hasil
Hasil
Hasil
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: