Isi kandungan:

Alat Pengukur Kadar Suapan CNC Dibuat Dari Sekerap: 5 Langkah
Alat Pengukur Kadar Suapan CNC Dibuat Dari Sekerap: 5 Langkah

Video: Alat Pengukur Kadar Suapan CNC Dibuat Dari Sekerap: 5 Langkah

Video: Alat Pengukur Kadar Suapan CNC Dibuat Dari Sekerap: 5 Langkah
Video: RANCANG BANGUN MESIN BATIK CAP PORTABLE BERBASIS ARDUINO MEGA 2560 DILENGKAPI SENSOR SUHU OTOMATIS 2024, November
Anonim
Alat Pengukur Kadar Suapan CNC Dibuat Dari Sekerap
Alat Pengukur Kadar Suapan CNC Dibuat Dari Sekerap

Adakah ada yang ingin mengukur kadar suapan sebenar pada mesin CNC? Mungkin tidak, sehingga bit penggilingan utuh setelah pekerjaan CNC … tetapi ketika mereka mulai pecah secara berkala, mungkin sudah waktunya untuk menyelidiki. Dalam arahan ini, anda dapat mengikuti pencarian dalam menentukan kadar umpan sebenar mesin CNC. Ia akan merangkumi bahagian kejuruteraan terbalik dari pencetak, firmware arduino, perisian PC, dan hasil yang saya dapat dengan bantuan rakan sekerja, dan tong sampah menjadi harta karun.

Langkah 1: Bahan, Alat, Peranti yang Digunakan untuk Menjalankan Projek

Semasa saya mula mengusahakannya, saya memikirkan senarai pendek perkara yang kita perlukan:

  • mekanisme pengangkutan printer yang dibongkar
  • alatan tangan untuk mengubahnya
  • besi pematerian, pateri, wayar
  • multimeter
  • osiloskop atau penganalisis logik - ini tidak semestinya diperlukan
  • bekalan kuasa
  • mikroskop
  • Arduino nano + pinout
  • PC dengan alat Arduino IDE, Visual Studio 2008 Express + MS Charting dipasang
  • (MPU6050 - Saya akhirnya tidak menggunakan ini)
  • bersedia melayari semua perkara yang anda tidak tahu bagaimana melakukannya

Pada awalnya, saya berpendapat bahawa papan MPU6050 akan membolehkan saya mengukur kadar suapan pada ketiga paksi sekaligus. Memiliki accelerometer di dalamnya, saya yakin bahawa menjumlahkan data accelerometer akan memberi saya nilai yang diinginkan - kelajuan pada setiap paksi. Setelah memuat turun dan mengubah coretan Arduino yang memaparkan data mentah pada monitor bersiri, saya menulis program PC kecil di Visual Studio yang memproses data, dan memplotnya pada carta untuk penafsiran lebih mudah. Saya terpaksa memuat turun Visual Studio C # Express 2008 dan alat grafik untuk ini.

Setelah membuat pengekodan sebentar dan mencari semua perkara yang saya perlukan untuk komunikasi bersiri, saya akhirnya mempunyai nilai yang digambarkan, tetapi tidak kira apa yang saya lakukan, ia tidak dapat digunakan. Pergerakan yang kecil tetapi mendadak akan menghasilkan lonjakan yang besar, sementara perjalanan yang lebih lama tidak akan muncul di carta. Setelah dua hari memalu MPU6050, saya akhirnya menyerah dan beralih kepada yang lain - mekanisme maklum balas kedudukan pencetak yang dibongkar.

Langkah 2: Bahan Perkakasan Yang Perlu Dilakukan

Bahan Perkakasan Yang Perlu Dilakukan
Bahan Perkakasan Yang Perlu Dilakukan
Bahan Perkakasan Yang Perlu Dilakukan
Bahan Perkakasan Yang Perlu Dilakukan
Bahan Perkakasan Yang Perlu Dilakukan
Bahan Perkakasan Yang Perlu Dilakukan
Bahan Perkakasan Yang Perlu Dilakukan
Bahan Perkakasan Yang Perlu Dilakukan

Kejuruteraan Terbalik

Sudah tentu, mekanisme pencetak tidak mempunyai nombor komponen yang dapat saya gunakan untuk menentukan sifatnya yang tepat, ada keperluan untuk sedikit teknik terbalik untuk sampai ke tempat yang kita mahukan. Setelah memeriksa mekanisme dan elektronik dengan teliti, saya memutuskan bahawa perkara pertama adalah pengenalan pin sensor optik. Ini harus dilakukan untuk menghubungkan semua perkara dengan Arduino. Saya membongkar bahagian plastik hitam, mengeluarkan PCB, dan memeriksa sensor: tertulis ROHM RPI-2150 di atasnya. Itu menggembirakan saya, harapan tinggi bahawa saya akan mencari lembar data. Sayangnya ini adalah bahagian lama, atau bahagian tersuai - tidak ada lembar data yang dapat dijumpai di mana sahaja di web. Ini bermaksud bahawa saya harus mengambil masalah dengan tangan sendiri: mengetahui bahawa sensor ini biasanya mempunyai LED inframerah dan dua transistor foto di dalamnya, saya meraih multimeter, mengaturnya ke mod pengukuran dioda, dan mula mengukur antara pin.

Pin kuasa biasanya mudah dicari - mereka akan mempunyai kapasitor di seberang, dan biasanya dihubungkan dengan jejak lebar pada PCB-s. Jejak tanah sering dihubungkan ke beberapa pad untuk penolakan bunyi yang lebih baik.

Walau bagaimanapun, pin input dan output tidak sepele. Semasa mengukur merentasi diod, meter akan menunjukkan voltan hadapannya dalam satu arah, dan kelebihan (tak terbatas) di arah yang lain. Saya dapat mengenal pasti empat diod antara pin, saya menyimpulkan bahawa diod keempat mestilah semacam zener atau diod TVS, kerana ia betul antara pin kuasa komponen. Mencari pemancar inframerah itu mudah, terdapat perintang 89R bersiri dengannya. Saya tinggal dengan dua ukuran diod pada baki dua pin, yang harus menjadi dua penerima.

Catatan: Sensor ini mempunyai dua penerima untuk dapat menentukan arah pergerakan selain menentukan kedudukan dengan mengira denyutan. Kedua-dua bentuk gelombang keluaran ini berada 90 ° di luar fasa, ini digunakan untuk menghasilkan denyut hitung atau hitung ke bawah. Dengan mengikuti jumlah denyutan ini, kedudukan tepat kepala pencetakan dapat ditentukan.

Ketika pemancar dan dua penerima berada, saya menyolder wayar pada pin mereka, jadi saya dapat menghubungkan sensor dengan Arduino. Sebelum melakukan itu, saya membekalkan sensor dengan 3.3V, menarik jalur antara sensor beberapa kali, dan memerhatikan gelombang persegi pada output. Kekerapan gelombang persegi bervariasi dengan kelajuan pergerakan, dan saya menyimpulkan bahawa sistem pengukuran kini siap untuk disambungkan ke Arduino.

Menghubungkan Arduino

Menyambungkan 'sensor' baru ini sangat mudah. Cukup sambungkan output sensor ke D2 dan D3 (pin mampu mengganggu!), Dan talian bekalan kuasa, dan pengekodan boleh bermula.

Langkah 3: Pengekodan Arduino

Pengekodan Arduino
Pengekodan Arduino

Kod Arduino agak mudah. Saya menetapkan fungsi yang dijalankan setiap kali D2 melihat kelebihan yang meningkat, ini adalah fungsi luput dari kod Arduino yang saya lampirkan. Sekiranya anda melihat isyarat pengekod kuadratik, anda akan melihatnya:

  • dalam satu arah fasa A adalah logik tinggi pada setiap fasa kenaikan B
  • pada fasa arah yang lain A adalah rendah logik pada setiap fasa kenaikan B

Ini adalah sifat pengekod yang saya manfaatkan: kerana fungsi luput dijalankan setiap kali D2 mempunyai kelebihan yang meningkat, saya hanya menulis jika itu menambah pembilang ketika D3 tinggi, dan mengurangkannya ketika D3 rendah. Ini berfungsi pada percubaan pertama, saya mengirim nilai penghitung ke monitor bersiri, dan menyaksikan kenaikan / penurunan ketika saya menggerakkan kepala pencetak pada batang.

Singkat cerita, firmware melakukan perkara berikut dalam fungsi gelung:

  1. memeriksa penyangga penerimaan siri untuk sebarang data masuk
  2. jika ada data masuk, periksa apakah itu '1' atau tidak
  3. jika ia adalah '1', ini bermaksud bahawa perisian PC meminta nilai kaunter
  4. hantar nilai kaunter ke PC melalui siri
  5. bermula pada pukul 1.

Dengan ini, bola berada di gelanggang perisian PC sekarang. Mari masuk ke dalamnya!

Langkah 4: Perisian Visual Studio C #

Tujuan program VS C # adalah untuk mengalihkan beban komputasi dari Arduino ke PC. Perisian ini menerima data yang disediakan oleh Arduino, menghitung dan menampilkan kelajuan dalam bentuk grafik.

Yang pertama saya buat ialah google bagaimana melakukan komunikasi bersiri di C #. Saya menjumpai banyak maklumat baik di MSDN.com bersama dengan contoh yang baik, kemudian saya membuang apa yang saya tidak perlukan - pada dasarnya semuanya kecuali bahagian membaca. Saya menyiapkan port COM dan kelajuan yang sesuai dengan Arduino, kemudian hanya mencubanya dan membuang semua yang ada di port bersiri ke dalam kotak teks berbilang baris.

Setelah nilai dibaca, saya hanya dapat menggunakan fungsi readto & split untuk mengasingkan satu ukuran antara satu sama lain, dan dari watak pembatas. Ini digambarkan pada kontrol Chart, dan nilainya mulai muncul di layar.

Sekiranya anda tidak dapat melihat kawalan Carta di kotak alat VS anda, anda boleh google masalahnya dan cari jalan penyelesaiannya di sini (cari jawapan # 1): pautan

Prinsip pengukuran

Untuk mengetahui hubungan antara jumlah kiraan dan jarak yang dilalui kepala, kami memusatkan nilai kiraan, menggerakkan kepala pencetak 100mm dengan tangan, dan memerhatikan perubahan jumlah. Kami akhirnya mendapat perkadaran berikut: 1 kiraan = 0.17094mm.

Oleh kerana kita dapat menanyakan jarak dan kita dapat mengukur masa antara sampel, kita dapat mengira kadar di mana pergeseran kedudukan berlaku - kita dapat mengira kelajuan!

Terdapat masa perisian kasar 50ms berkat TMR0, tetapi kami melihat bahawa masa ini tidak terlalu tepat. Sebenarnya, setelah beberapa pengukuran kelajuan perisian, kami mendapati bahawa 50ms waktunya sama sekali tidak 50ms. Ini bermaksud bahawa sampel tidak diambil pada selang waktu tetap, jadi pengiraan laju tidak dapat menggunakan basis waktu tetap. Sebaik sahaja kami menemui masalah ini, mudah untuk meneruskan: kami mengambil perbezaan jarak dan perbezaan masa dan mengira kelajuan sebagai D_distance / D_time (bukannya D-jarak / 50ms).

Juga, kerana persamaan kita akan mengembalikan kepantasan dalam unit mm / 50ms, kita perlu mengalikannya dengan 1200 untuk mendapatkan jarak yang dilalui kepala dalam satu minit, dalam [mm / minit].

Catatan: perisian kawalan kilang Mach 3 CNC menentukan kadar suapan dalam unit [mm / minit]

Penapisan

Sejak saat ini, pengukuran nampaknya cukup tepat, tetapi terdapat sedikit bunyi pada isyarat yang diukur. Kami mengesyaki bahawa ini disebabkan oleh ketidakkonsistenan mekanikal pada poros, poros kopling, dan lain-lain, jadi memutuskan untuk menyaringnya, untuk mendapatkan nilai min yang baik dari apa yang diukur.

Penyesuaian yang baik terhadap perisian

Untuk mengubah kadar sampel dan kadar penapis semasa waktu berjalan, bar tatal ditambahkan - satu untuk setiap. Juga, kemampuan untuk menyembunyikan plot juga diperkenalkan.

Langkah 5: Hasil

Keputusan
Keputusan
Keputusan
Keputusan
Keputusan
Keputusan
Keputusan
Keputusan

Setelah bahagian perkakasan dan perisian siap, kami menjalankan tiga set pengukuran dengan perisian mach 3 + saya, anda dapat melihat hasilnya pada gambar yang dilampirkan. Eksperimen kemudian menunjukkan ketepatan yang lebih baik, dengan kadar penapis dan sampel meningkat. Petak menunjukkan kelajuan yang diukur dengan warna merah padat, dan rata-rata dengan biru putus-putus.

Yang dikatakan, nampaknya Mach 3 mengendalikan tetapan kelajuan ini dengan tepat, tetapi sekarang kita pasti tahu:)

Saya harap anda menikmati pengajaran ringkas ini mengenai teknik terbalik dan mengubah air menjadi wain!

Ceria!

Disyorkan: