সুচিপত্র:

সিএনসি ফিড-রেট পরিমাপের সরঞ্জাম স্ক্র্যাপ থেকে তৈরি: 5 টি ধাপ
সিএনসি ফিড-রেট পরিমাপের সরঞ্জাম স্ক্র্যাপ থেকে তৈরি: 5 টি ধাপ

ভিডিও: সিএনসি ফিড-রেট পরিমাপের সরঞ্জাম স্ক্র্যাপ থেকে তৈরি: 5 টি ধাপ

ভিডিও: সিএনসি ফিড-রেট পরিমাপের সরঞ্জাম স্ক্র্যাপ থেকে তৈরি: 5 টি ধাপ
ভিডিও: Modern CNC Machining on a old CNC Lathe 2024, জুলাই
Anonim
সিএনসি ফিড-রেট পরিমাপের সরঞ্জাম স্ক্র্যাপ থেকে তৈরি
সিএনসি ফিড-রেট পরিমাপের সরঞ্জাম স্ক্র্যাপ থেকে তৈরি

কেউ কি কখনও সিএনসি মেশিনে প্রকৃত ফিড-রেট পরিমাপ করতে চেয়েছিল? সম্ভবত না, যতক্ষণ না একটি CNC চাকরির পর মিলিং বিটগুলি অক্ষত থাকে… এই নির্দেশে আপনি একটি CNC মেশিনের প্রকৃত ফিড-রেট নির্ধারণের জন্য একটি অনুসন্ধান অনুসরণ করতে পারেন। এটি একটি প্রিন্টার, আরডুইনো ফার্মওয়্যার, পিসি সফটওয়্যার, এবং আমার সহকর্মীদের সাহায্যে প্রাপ্ত ফলাফলগুলির বিপরীত-প্রকৌশল অংশকে আবৃত করবে এবং একটি আবর্জনা ধন-সম্পদে পরিণত হবে।

ধাপ 1: প্রকল্প চালানোর জন্য ব্যবহৃত উপকরণ, সরঞ্জাম, ডিভাইস

যখন আমি এটি নিয়ে কাজ শুরু করি, তখন আমি আমাদের প্রয়োজনীয় জিনিসগুলির একটি সংক্ষিপ্ত তালিকা ভেবেছিলাম:

  • বিচ্ছিন্ন প্রিন্টার ক্যারেজ প্রক্রিয়া
  • হাত সরঞ্জাম যে tweak
  • সোল্ডারিং লোহা, ঝাল, তারের
  • মাল্টিমিটার
  • অসিলোস্কোপ বা যুক্তি বিশ্লেষক - এটি একেবারে প্রয়োজনীয় নয়
  • বিদ্যুৎ সরবরাহ
  • মাইক্রোস্কোপ
  • আরডুইনো ন্যানো + পিনআউট
  • আরডুইনো আইডিই সহ পিসি, ভিসুয়াল স্টুডিও 2008 এক্সপ্রেস + এমএস চার্টিং সরঞ্জাম ইনস্টল করা
  • (MPU6050 - আমি এটি ব্যবহার না করে শেষ করেছি)
  • আপনি কীভাবে করতে জানেন না তার জন্য ব্রাউজ করতে ইচ্ছুক

শুরুতে, আমি ভেবেছিলাম যে একটি এমপিইউ 6050 বোর্ড আমাকে একই সাথে তিনটি অক্ষের ফিড-রেট পরিমাপ করার অনুমতি দেবে। এর ভিতরে অ্যাকসিলরোমিটার থাকার কারণে, আমি নিশ্চিত ছিলাম যে অ্যাকসিলরোমিটার ডেটা যোগ করা আমাকে পছন্দসই মান দেবে - প্রতিটি অক্ষের গতি। সিরিয়াল মনিটরে কাঁচা ডেটা প্রদর্শিত একটি Arduino স্নিপেট ডাউনলোড এবং সংশোধন করার পরে, আমি ভিসুয়াল স্টুডিওতে একটি ছোট পিসি প্রোগ্রাম লিখেছিলাম যা ডেটা প্রক্রিয়া করে, এবং এটি সহজ ব্যাখ্যার জন্য একটি চার্টে প্লট করে। আমাকে ভিজ্যুয়াল স্টুডিও সি# এক্সপ্রেস ২০০ and এবং এর জন্য চার্টিং টুল দুটোই ডাউনলোড করতে হয়েছিল।

কিছুক্ষণ কোডিং করার পরে এবং সিরিয়াল যোগাযোগের জন্য আমার প্রয়োজনীয় সমস্ত জিনিসগুলি সন্ধান করার পরে, আমি প্লট করা মানগুলির সাথে শেষ হয়ে গেলাম, কিন্তু আমি যাই করি না কেন, এটি ব্যবহারযোগ্য ছিল না। ছোট কিন্তু আকস্মিক চলাফেরার ফলে বিশাল স্পাইক হবে, যখন দীর্ঘ ভ্রমণ এমনকি চার্টেও দেখাবে না। MPU6050 হাতুড়ির দুই দিন পর, আমি অবশেষে হাল ছেড়ে দিলাম এবং অন্য কিছুতে পরিণত হলাম - একটি বিচ্ছিন্ন প্রিন্টারের অবস্থান প্রতিক্রিয়া প্রক্রিয়া।

পদক্ষেপ 2: হার্ডওয়্যার স্টাফ যা সম্পন্ন করা প্রয়োজন

হার্ডওয়্যার স্টাফ যা সম্পন্ন করা প্রয়োজন
হার্ডওয়্যার স্টাফ যা সম্পন্ন করা প্রয়োজন
হার্ডওয়্যার স্টাফ যা সম্পন্ন করা প্রয়োজন
হার্ডওয়্যার স্টাফ যা সম্পন্ন করা প্রয়োজন
হার্ডওয়্যার স্টাফ যা সম্পন্ন করা প্রয়োজন
হার্ডওয়্যার স্টাফ যা সম্পন্ন করা প্রয়োজন
হার্ডওয়্যার স্টাফ যা সম্পন্ন করা প্রয়োজন
হার্ডওয়্যার স্টাফ যা সম্পন্ন করা প্রয়োজন

রিভার্স ইঞ্জিনিয়ারিং

অবশ্যই, প্রিন্টার মেকানিজমের কোন পার্ট নম্বর ছিল না যা আমি তার সঠিক বৈশিষ্ট্য নির্ধারণ করতে ব্যবহার করতে পারতাম, আমরা যেখানে চেয়েছিলাম সেখানে একটু বিপরীত-প্রকৌশল প্রয়োজন ছিল। মেকানিজম এবং ইলেকট্রনিক্স নিবিড়ভাবে পরীক্ষা করার পর, আমি সিদ্ধান্ত নিয়েছি যে প্রথম জিনিসটি অপটিক্যাল সেন্সর পিনের সনাক্তকরণ হতে হবে। আরডুইনোতে পুরো জিনিসটি ইন্টারফেস করার জন্য এটি করতে হয়েছিল। আমি কালো প্লাস্টিকের অংশটি বিচ্ছিন্ন করেছিলাম, পিসিবি বের করেছিলাম এবং সেন্সর পরীক্ষা করেছিলাম: এতে ROHM RPI-2150 লেখা ছিল। এটি আমাকে খুশি করেছিল, আশা ছিল যে আমি একটি ডেটশীট খুঁজে পাব। দুর্ভাগ্যবশত এটি একটি পুরানো, অথবা একটি কাস্টম অংশ - ওয়েবে কোথাও কোন ডেটশীট পাওয়া যায়নি। এর মানে হল যে আমাকে বিষয়গুলো নিজের হাতে নিতে হয়েছিল: এই সেন্সরগুলিতে সাধারণত একটি ইনফ্রারেড এলইডি এবং দুটি ফটো-ট্রানজিস্টর আছে তা জেনে, আমি একটি মাল্টিমিটার ধরলাম, এটি ডায়োড পরিমাপ মোডে সেট করলাম এবং পিনের মধ্যে পরিমাপ শুরু করলাম।

পাওয়ার পিনগুলি সাধারণত সহজেই পাওয়া যায় - তাদের চারপাশে ক্যাপাসিটর থাকবে এবং তারা সাধারণত PCB -s- এ বিস্তৃত ট্রেসগুলির সাথে সংযুক্ত থাকে। ভাল শব্দ প্রত্যাখ্যানের জন্য গ্রাউন্ড ট্রেসগুলি প্রায়ই একাধিক প্যাডের সাথে সংযুক্ত থাকে।

তবে ইনপুট এবং আউটপুট পিনগুলি তুচ্ছ নয়। একটি ডায়োড জুড়ে পরিমাপ করার সময়, মিটার একদিকে তার ফরওয়ার্ড ভোল্টেজ এবং অন্যদিকে ওভারলোড (অসীম) দেখাবে। আমি পিনের মধ্যে চারটি ডায়োড সনাক্ত করতে সক্ষম হয়েছিলাম, আমি এই সিদ্ধান্তে উপনীত হয়েছিলাম যে চতুর্থ ডায়োড অবশ্যই কোন ধরনের জেনার বা টিভিএস ডায়োড হতে হবে, কারণ এটি কম্পোনেন্টের পাওয়ার পিনের মধ্যে ঠিক ছিল। ইনফ্রারেড এমিটার সনাক্ত করা সহজ ছিল, এর সাথে সিরিজের 89R রোধক ছিল। আমি বাকি দুটি পিনে দুটি ডায়োড পরিমাপের সাথে বাম হয়ে গেলাম, তাদের দুটি রিসিভার হতে হয়েছিল।

দ্রষ্টব্য: ডাল গণনা করে অবস্থান নির্ধারণের পাশাপাশি চলাচলের দিক নির্ধারণ করতে সক্ষম হওয়ার জন্য এই সেন্সরগুলির দুটি রিসিভার রয়েছে। এই দুটি আউটপুট ওয়েভফর্মগুলি 90 phase ফেজের বাইরে, এটি একটি কাউন্ট-আপ বা কাউন্ট-ডাউন পালস তৈরি করতে ব্যবহৃত হয়। এই ডালের সংখ্যা অনুসরণ করে প্রিন্টিং হেডের সঠিক অবস্থান নির্ণয় করা যায়।

যখন emitter এবং দুটি রিসিভার অবস্থিত ছিল, আমি তার পিনের উপর তারের soldered, তাই আমি Arduino সঙ্গে সেন্সর ইন্টারফেস করতে পারেন। এটি করার আগে, আমি 3.3V দিয়ে সেন্সর সরবরাহ করেছিলাম, কয়েকবার সেন্সরের মধ্যে ফালাটি টেনেছিলাম এবং আউটপুটগুলিতে বর্গাকার তরঙ্গ পর্যবেক্ষণ করেছি। বর্গ তরঙ্গের ফ্রিকোয়েন্সি নড়াচড়ার গতির সাথে পরিবর্তিত হয়, এবং আমি উপসংহারে এসেছি যে পরিমাপ ব্যবস্থা এখন আরডুইনোতে সংযুক্ত হওয়ার জন্য প্রস্তুত।

Arduino সংযোগ

এই নতুন 'সেন্সর' সংযুক্ত করা খুবই সহজ। শুধু সেন্সর আউটপুট D2 এবং D3 (ইন্টারাপ্ট-সক্ষম পিন!), এবং পাওয়ার সাপ্লাই লাইন, এবং কোডিং শুরু করতে পারেন।

ধাপ 3: Arduino কোডিং

Arduino কোডিং
Arduino কোডিং

Arduino কোড বেশ সহজ। আমি একটি ফাংশন নিযুক্ত করেছি যা প্রতিবার D2 একটি ক্রমবর্ধমান প্রান্ত দেখায়, এটি আমার সংযুক্ত Arduino কোড থেকে ইলাস ফাংশন। যদি আপনি একটি চতুর্ভুজ এনকোডারের সংকেতগুলি দেখুন, আপনি এটি দেখতে পাবেন:

  • এক দিকের ধাপে A প্রতিটি পর্যায়ে B ক্রমবর্ধমান প্রান্তে যুক্তিযুক্ত
  • অন্য দিকের পর্যায়ে A প্রতিটি পর্যায়ে B ক্রমবর্ধমান প্রান্তে লজিক কম

এটি ছিল এনকোডারের সম্পত্তি যা আমি সুবিধা নিয়েছিলাম: যেহেতু D2 এর ক্রমবর্ধমান প্রান্তটি যখন ইলাস ফাংশনটি চালায়, তখন আমি কেবল একটি লিখেছিলাম যদি D3 বেশি হলে কাউন্টার বৃদ্ধি করে এবং D3 কম হলে এটি হ্রাস করে। এটি প্রথম চেষ্টায় কাজ করেছে, আমি সিরিয়াল মনিটরে কাউন্টার ভ্যালু পাঠিয়েছি, এবং যখন আমি প্রিন্টারের মাথাটি শ্যাফ্টে সরিয়েছি তখন এটি বৃদ্ধি/হ্রাস দেখেছে।

দীর্ঘ গল্প সংক্ষিপ্ত, ফার্মওয়্যার লুপ ফাংশনে নিম্নলিখিত জিনিসটি করে:

  1. কোন ইনকামিং ডেটার জন্য সিরিয়াল রিসিভ বাফার চেক করে
  2. যদি ইনকামিং ডেটা থাকে, তাহলে এটি '1' কিনা তা পরীক্ষা করুন
  3. যদি এটি একটি '1' হয়, এর মানে হল যে পিসি সফটওয়্যার কাউন্টার ভ্যালুর জন্য অনুরোধ করছে
  4. সিরিয়ালের মাধ্যমে পিসিতে কাউন্টার মান পাঠান
  5. 1 এ শুরু।

এর সাথে, বলটি এখন পিসি সফটওয়্যারের কোর্টে। এর মধ্যে প্রবেশ করা যাক!

ধাপ 4: ভিজ্যুয়াল স্টুডিও সি# সফটওয়্যার

ভিএস সি# প্রোগ্রামের উদ্দেশ্য ছিল কম্পিউটেশনাল ভারকে আরডুইনো থেকে পিসিতে স্থানান্তর করা। এই সফটওয়্যারটি Arduino যে ডেটা প্রদান করছে, তা গ্রহন করে এবং একটি গ্রাফ আকারে গতি প্রদর্শন করে।

আমি প্রথমে যা করেছি তা হল গুগল কিভাবে সি#তে সিরিয়াল কমিউনিকেশন করতে হয়। আমি একটি ভাল উদাহরণ সহ MSDN.com এ অনেক ভাল তথ্য পেয়েছি, তারপর আমি যা প্রয়োজন ছিল না তা ফেলে দিলাম - মূলত পড়ার অংশ ছাড়া সবকিছু। আমি COM পোর্ট এবং Arduino এর সাথে মেলাতে গতি সেট করেছি, তারপর এটিকে কয়েকটি চেষ্টা করেছিলাম এবং সিরিয়াল পোর্টে আসা সবকিছুকে মাল্টি-লাইন টেক্সট বক্সে ফেলে দিয়েছি।

মানগুলি পড়ার পরে, আমি কেবলমাত্র একটি পরিমাপকে একে অপরের থেকে এবং সীমাবদ্ধ অক্ষর থেকে আলাদা করার জন্য রিডটো এবং বিভক্ত ফাংশন ব্যবহার করতে পারি। এগুলি একটি চার্ট কন্ট্রোলে প্লট করা হয়েছিল এবং মানগুলি স্ক্রিনে উপস্থিত হতে শুরু করেছিল।

আপনি যদি আপনার ভিএস টুলবক্সে চার্ট নিয়ন্ত্রণ দেখতে না পান, তাহলে আপনি সমস্যাটি গুগল করতে পারেন এবং সমাধানটি এখানে খুঁজে পেতে পারেন (উত্তর #1 দেখুন): লিঙ্ক

পরিমাপ নীতি

গণনার সংখ্যা এবং মাথার দূরত্বের মধ্যে সংযোগ খুঁজে পেতে, আমরা গণনার মান শূন্য করেছি, প্রিন্টারের মাথা 100 মিমি হাত দিয়ে সরিয়েছি এবং গণনার পরিবর্তন লক্ষ্য করেছি। আমরা অবশেষে নিম্নলিখিত অনুপাত নিয়ে এসেছি: 1 গণনা = 0.17094 মিমি।

যেহেতু আমরা দূরত্ব জিজ্ঞাসা করতে পারি এবং আমরা নমুনার মধ্যে সময় পরিমাপ করতে পারি, তাই আমরা যে হারে অবস্থানের স্থানান্তর ঘটে তা গণনা করতে পারি - আমরা গতি গণনা করতে পারি!

TMR0 কে ধন্যবাদ 50ms একটি মোটামুটি সফ্টওয়্যার সময় আছে, কিন্তু আমরা লক্ষ্য করেছি যে এই সময়গুলি খুব সঠিক ছিল না। আসলে, কিছু সফ্টওয়্যার গতি পরিমাপের পরে, আমরা দেখেছি যে সময়সীমা 50ms মোটেও 50ms নয়। এর মানে হল যে নমুনাগুলি নির্দিষ্ট ব্যবধানে নেওয়া হয়নি, তাই গতি গণনা একটি নির্দিষ্ট সময়-ভিত্তি ব্যবহার করতে পারে না। একবার আমরা এই সমস্যাটি পেয়ে গেলে, এটি সরানো সহজ ছিল: আমরা দূরত্বের পার্থক্য এবং সময়ের পার্থক্য নিয়েছিলাম এবং গতিটি D_distance/D_time (D-distance/50ms এর পরিবর্তে) হিসাবে গণনা করেছিলাম।

এছাড়াও, যেহেতু আমাদের সমীকরণ mm/50ms এর এককগুলিতে গতি ফিরিয়ে দেবে, তাই আমাদের এটিকে 1200 দ্বারা গুণ করতে হবে যাতে মাথার দূরত্ব এক মিনিটে যেতে পারে [mm/মিনিট]।

দ্রষ্টব্য: ম্যাক 3 সিএনসি মিল কন্ট্রোলিং সফ্টওয়্যার [মিমি/মিনিট] ইউনিটে ফিড-রেট নির্ধারণ করে

ফিল্টারিং

এই বিন্দু থেকে, পরিমাপগুলি বেশ সঠিক বলে মনে হয়েছিল, কিন্তু পরিমাপ করা সংকেতটিতে কিছু গোলমাল ছিল। আমরা সন্দেহ করেছিলাম যে এটি শ্যাফ্ট, শ্যাফ্ট কাপলিং ইত্যাদিতে যান্ত্রিক অসঙ্গতির কারণে হয়েছে, তাই এটি ফিল্টার করার সিদ্ধান্ত নিয়েছে, যা পরিমাপ করা হয়েছে তার একটি সুন্দর গড় মান পেতে।

সফটওয়্যারে সূক্ষ্ম সমন্বয়

রানটাইমের সময় নমুনা হার এবং ফিল্টার রেট পরিবর্তন করার জন্য, স্ক্রোলবার যুক্ত করা হয়েছিল - প্রত্যেকের জন্য একটি। এছাড়াও, প্লট লুকানোর ক্ষমতাও চালু করা হয়েছিল।

ধাপ 5: ফলাফল

ফলাফল
ফলাফল
ফলাফল
ফলাফল
ফলাফল
ফলাফল
ফলাফল
ফলাফল

হার্ডওয়্যার এবং সফটওয়্যারের যন্ত্রাংশ প্রস্তুত হওয়ার পর, আমরা ম্যাক 3 + আমার সফটওয়্যারের সাথে তিন সেট পরিমাপ চালাই, আপনি সংযুক্ত ছবিগুলিতে ফলাফল দেখতে পারেন। প্লটগুলি কঠিন লাল দিয়ে মাপা গতি, এবং ড্যাশ-বিন্দুযুক্ত নীল দিয়ে গড় দেখায়।

বলা হচ্ছে, মনে হচ্ছে ম্যাক 3 এই স্পিড সেটিংস বেশ সঠিকভাবে পরিচালনা করে, কিন্তু এখন আমরা নিশ্চিতভাবে জানি:)

আমি আশা করি আপনি রিভার্স-ইঞ্জিনিয়ারিং এবং পানিকে ওয়াইনে পরিণত করার বিষয়ে এই সংক্ষিপ্ত নির্দেশ উপভোগ করেছেন!

চিয়ার্স!

প্রস্তাবিত: