সুচিপত্র:
- ধাপ 1: একটি সিগাল ওয়্যার চয়ন করুন
- ধাপ 2: Arduino বোর্ডে ওয়্যার প্রসারিত করুন
- ধাপ 3: সংকেত বিশ্লেষণ
- ধাপ 4: আপনার সিগন্যাল বিশ্লেষণ কোড করুন
- ধাপ 5: একটি ফিল্টার চিহ্নিত করুন
- ধাপ 6: ফিল্টারিং: পার্ট 1
- ধাপ 7: ফিল্টারিং: পার্ট 2
- ধাপ 8: ফিল্টারিং: পার্ট 3
- ধাপ 9: ফিল্টারিং: পার্ট 4
ভিডিও: ইঞ্জিন RPM প্রদর্শন করতে Arduino ব্যবহার করুন: 10 টি ধাপ (ছবি সহ)
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
এই নির্দেশিকাটি কিভাবে আমি একটি Arduino UNO R3, I2C সহ একটি 16x2 LCD ডিসপ্লে এবং একটি LED স্ট্রিপকে ইঞ্জিন স্পিড গেজ এবং আমার অ্যাকুরা ইন্টিগ্রা ট্র্যাক গাড়িতে শিফট লাইট ব্যবহার করার জন্য রূপরেখা দেব। এটি এমন কারো পরিপ্রেক্ষিতে লেখা হয়েছে যার কিছু অভিজ্ঞতা বা Arduino সফটওয়্যারের সংস্পর্শ অথবা সাধারণভাবে কোডিং, গাণিতিক সফটওয়্যার MATLAB, এবং বৈদ্যুতিক সার্কিট তৈরি বা পরিবর্তন করা। ভবিষ্যতে এই বিষয়গুলির সাথে সামান্য অভিজ্ঞতা আছে এমন কারো জন্য এটি সহজে বোঝার জন্য সংশোধন করা যেতে পারে।
ধাপ 1: একটি সিগাল ওয়্যার চয়ন করুন
আপনাকে একটি সংকেত পেতে হবে যা ইঞ্জিনের গতির সাথে সম্পর্কিত। এমন একটি সিস্টেম যুক্ত করা সম্ভব যা ইঞ্জিনের গতি পরিমাপ করে কিন্তু একটি বিদ্যমান তারে ট্যাপ করা অনেক বেশি ব্যবহারিক যা ইঞ্জিনের গতি তথ্য বহন করে। একটি একক গাড়ির এর জন্য একাধিক উত্স থাকতে পারে এবং এটি একক গাড়ির মডেলে বছরের পর বছর পরিবর্তিত হতে পারে। এই টিউটোরিয়ালের জন্য আমি আমার গাড়ির উদাহরণ ব্যবহার করব, 2000 অ্যাকুরা ইন্টিগ্রা এলএস পরিবর্তিত একটি ট্র্যাক। আমি আমার ইঞ্জিনে খুঁজে পেয়েছি (OBD2 সহ B18B1) একটি অব্যবহৃত ভোল্টেজ আছে যা 12V উচ্চ এবং একটি পূর্ণ বিপ্লব সম্পন্ন করার পর 0V এ নেমে যায়।
সম্ভাব্য ইঞ্জিন গতি সংকেত সনাক্ত করতে সাহায্য করবে:
- আপনার গাড়ির জন্য তারের চিত্র
- ইঞ্জিন/ইসিইউ সংকেত যুক্ত আপনার গাড়ির জন্য ফোরাম অনুসন্ধান করা
- একটি বন্ধুত্বপূর্ণ মেকানিক বা গাড়ী উত্সাহী
ধাপ 2: Arduino বোর্ডে ওয়্যার প্রসারিত করুন
একবার আপনি একটি উপযুক্ত সংকেত বেছে নিলে, আপনি যেখানেই আপনার Arduino বোর্ড স্থাপন করছেন সেখানে এটিকে প্রসারিত করতে হবে। আমি গাড়ির ভিতরে খনি রাখার সিদ্ধান্ত নিয়েছিলাম যেখানে রেডিও থাকত, তাই আমি ইঞ্জিন থেকে নতুন তার, আগুনের প্রাচীরের একটি রাবার গ্রোমেটের মাধ্যমে, এবং ডানদিকে রেডিও এলাকায় রুট করেছি। যেহেতু ইতিমধ্যে প্রচুর পরিমাণে স্ট্রিপিং, সোল্ডারিং, এবং ওয়্যারিং সুরক্ষার জন্য কীভাবে গাইড রয়েছে আমি এই প্রক্রিয়াটি ব্যাখ্যা করব না।
ধাপ 3: সংকেত বিশ্লেষণ
এখানেই জিনিস জটিল হতে পারে। সংকেত বিশ্লেষণ এবং নিয়ন্ত্রণের একটি সাধারণ বোঝা আপনাকে একটি দীর্ঘ পথ সাহায্য করবে, কিন্তু সামান্য জ্ঞান সঙ্গে এটি করা সম্ভব।
সম্ভবত নির্বাচিত সিগন্যাল তারটি ইঞ্জিনের গতির সঠিক মান বের করবে না। এটি আপনার আকৃতির ইঞ্জিন RPM এর সঠিক সংখ্যা দিতে আকৃতি এবং পরিবর্তন করতে হবে। এই কারণে যে প্রতিটি ভিন্ন গাড়ী এবং সিগন্যাল তারের বেছে নেওয়া ভিন্ন হতে পারে, এই বিন্দু থেকে আমি ব্যাখ্যা করব কিভাবে আমি আমার ইন্টিগ্রাতে পরিবেশক থেকে অবস্থান সংকেত ব্যবহার করেছি।
আমার সংকেত সাধারণত 12V এবং একটি পূর্ণ ঘূর্ণন সম্পন্ন করার সময় 0V তে নেমে যায়। যদি আপনি একটি পূর্ণ ঘূর্ণন, বা একটি পূর্ণ চক্র সম্পন্ন করার সময় জানেন, এটি সহজেই কিছু মৌলিক ধারণা ব্যবহার করে বিপ্লব/মিনিটে অনুবাদ করা যেতে পারে।
1 / (প্রতি চক্র প্রতি সেকেন্ড) = প্রতি সেকেন্ডে চক্র, অথবা Hz
প্রতি মিনিটে বিপ্লব = Hz * 60
ধাপ 4: আপনার সিগন্যাল বিশ্লেষণ কোড করুন
এই পদ্ধতিতে একটি পূর্ণ চক্র সম্পন্ন করতে ইনপুট সিগন্যালের জন্য সময় লাগে। সৌভাগ্যবশত Arduino IDE সফটওয়্যারের একটি কমান্ড আছে যা ঠিক সেই কাজটি করে, PulseIn।
এই কমান্ডটি একটি থ্রেশহোল্ড অতিক্রম করার জন্য একটি সংকেতের জন্য অপেক্ষা করবে, গণনা শুরু করবে এবং যখন আবার থ্রেশহোল্ড অতিক্রম করবে তখন গণনা বন্ধ করবে। কমান্ড ব্যবহার করার সময় কিছু বিবরণ উল্লেখ করা উচিত, তাই আমি এখানে PulseIn এর তথ্যের একটি লিঙ্ক অন্তর্ভুক্ত করব:
PulseIn মাইক্রোসেকেন্ডে একটি মান ফেরত দেবে, এবং গণিত সহজ রাখতে এটি অবিলম্বে স্বাভাবিক সেকেন্ডে রূপান্তরিত হওয়া উচিত। পূর্ববর্তী ধাপে গণিত অনুসরণ করে, এই সময়কালটি সরাসরি RPM- এ সমান করা যেতে পারে।
দ্রষ্টব্য: ট্রায়াল এবং ত্রুটির পরে আমি আবিষ্কার করেছি যে বিতরণকারী ইঞ্জিন ক্র্যাঙ্কশ্যাফটের প্রতিটি একক ঘূর্ণনের জন্য দুটি ঘূর্ণন সম্পন্ন করে, তাই আমি কেবল তার উত্তরটি 2 এর দ্বারা ভাগ করে নিয়েছি।
ধাপ 5: একটি ফিল্টার চিহ্নিত করুন
আপনি যদি ভাগ্যবান হন তাহলে আপনার সিগন্যালে কোন 'গোলমাল' (ওঠানামা) থাকবে না এবং আপনার ইঞ্জিনের গতি সঠিক হবে। আমার ক্ষেত্রে, পরিবেশকের কাছ থেকে প্রচুর শব্দ আসছিল যা প্রায়শই প্রত্যাশিত থেকে ভোল্টেজ দেয়। এটি প্রকৃত ইঞ্জিনের গতির খুব মিথ্যা রিডিংয়ে পরিণত হয়। এই গোলমাল ফিল্টার করতে হবে।
কিছু সংকেত বিশ্লেষণের পর, প্রায় সমস্ত শব্দই ফ্রিকোয়েন্সি (Hz) এ এসেছিল যা ইঞ্জিন নিজেই আউটপুট করছিল (যা বেশিরভাগ বাস্তব গতিশীল সিস্টেমের জন্য সত্য)। এর মানে হল একটি নিম্ন পাস ফিল্টার এটির জন্য একটি আদর্শ প্রার্থী।
একটি কম পাস ফিল্টার কম ফ্রিকোয়েন্সি (পছন্দসই) অতিক্রম করতে দেয় এবং উচ্চ ফ্রিকোয়েন্সি (অবাঞ্ছিত) হ্রাস করে।
ধাপ 6: ফিল্টারিং: পার্ট 1
ফিল্টার ডিজাইন করা হাতে করা যায়, তবে MATLAB ব্যবহার করলে সফটওয়্যারে অ্যাক্সেস থাকলে তা উল্লেখযোগ্যভাবে গতি পাবে।
একটি কম পাস ফিল্টার ল্যাপ্লেস ডোমেন (ফ্রিকোয়েন্সি ডোমেন) এ একটি স্থানান্তর ফাংশন (বা ভগ্নাংশ) সমান হতে পারে। ইনপুট ফ্রিকোয়েন্সি এই ভগ্নাংশ দ্বারা গুণিত হবে এবং আউটপুট হল একটি ফিল্টার করা সংকেত যা শুধুমাত্র আপনি ব্যবহার করতে চান এমন তথ্য রয়েছে।
ফাংশনের একমাত্র পরিবর্তনশীল হল টাউ। টাউ 1 / ওমেগার সমান, যেখানে ওমেগা হল কাটঅফ ফ্রিকোয়েন্সি যা আপনি চান (প্রতি সেকেন্ডে রেডিয়ানে থাকতে হবে)। কাটঅফ ফ্রিকোয়েন্সি হল সেই সীমা যেখানে তার চেয়ে বেশি ফ্রিকোয়েন্সি সরিয়ে ফেলা হবে এবং ফ্রিকোয়েন্সি কম রাখা হবে।
আমি একটি RPM এর সমান কাটঅফ ফ্রিকোয়েন্সি সেট করেছি আমার ইঞ্জিন কখনই পৌঁছাবে না (990 RPM বা 165 Hz)। এফএফটি গ্রাফগুলি মোটামুটি দেখায় যে আমার কাঁচা সংকেতটি কতগুলি ফ্রিকোয়েন্সি বহন করে এবং ফিল্টার থেকে বেরিয়ে আসা ফ্রিকোয়েন্সিগুলি।
ধাপ 7: ফিল্টারিং: পার্ট 2
এখানে MATLAB আবার সময়ের জন্য ব্যবহার করা হয়েছিল। Cutoff ফ্রিকোয়েন্সি সংজ্ঞায়িত করা হয়, এবং যে থেকে ফলে স্থানান্তর ফাংশন প্রদর্শিত হয়। মনে রাখবেন এই ভগ্নাংশটি শুধুমাত্র ল্যাপ্লেস ডোমেইনের ক্ষেত্রে প্রযোজ্য এবং Arduino UNO R3 এর মত সময়-ভিত্তিক মাইক্রো কন্ট্রোলারে সরাসরি ব্যবহার করা যাবে না।
ধাপ 8: ফিল্টারিং: পার্ট 3
ম্যাটল্যাবের একটি কমান্ড রয়েছে যা একটি অবিচ্ছিন্ন ফাংশন (ফ্রিকোয়েন্সি ডোমেন) কে একটি বিচ্ছিন্ন ফাংশনে (টাইম ডোমেন) রূপান্তর করবে। এই কমান্ডের আউটপুট একটি সমীকরণ প্রদান করবে যা সহজেই Arduino IDE কোডে অন্তর্ভুক্ত করা যাবে।
ধাপ 9: ফিল্টারিং: পার্ট 4
Arduino স্কেচে, সেটআপের আগে u এবং y ভেরিয়েবল অন্তর্ভুক্ত করুন। ফ্লোট কমান্ড কেবল সংজ্ঞায়িত করে যে ভেরিয়েবল কীভাবে ডেটা সংরক্ষণ করবে (সর্বাধিক মান, দশমিক ইত্যাদি …) এবং এ সম্পর্কে আরও তথ্যের একটি লিঙ্ক এখানে দেওয়া হবে: https://www.arduino.cc/reference/en/language /ভেরিয়া…
যে লুপে কাঁচা সিগন্যাল থেকে ইঞ্জিনের গতিতে রূপান্তর ঘটছে সেখানে u পরিবর্তনশীল এবং y একাধিক সমীকরণ অন্তর্ভুক্ত করুন। এটিকে কাজে লাগানোর একাধিক উপায় আছে, কিন্তু ভেরিয়েবল u কে পরিমাপ করা কাঁচা ইনপুট সিগন্যালের সমতুল্য করা উচিত এবং পরিবর্তনশীল y ফিল্টার করা মান হবে।
প্রস্তাবিত:
DIY কিভাবে ভিসুইনো ব্যবহার করে M5StickC ESP32 এ সময় প্রদর্শন করবেন - করতে সহজ: 9 টি ধাপ
DIY কিভাবে ভিসুইনো ব্যবহার করে M5StickC ESP32- এ সময় প্রদর্শন করবেন - কি করা সহজ: এই টিউটোরিয়ালে আমরা শিখব কিভাবে LCD তে সময় প্রদর্শন করার জন্য Arduino IDE এবং Visuino দিয়ে ESP32 M5Stack StickC প্রোগ্রাম করতে হয়।
M5STACK কিভাবে ভিসুইনো ব্যবহার করে M5StickC ESP32 তে তাপমাত্রা, আর্দ্রতা এবং চাপ প্রদর্শন করা যায় - করতে সহজ: 6 টি ধাপ
M5STACK কিভাবে ভিসুইনো ব্যবহার করে M5StickC ESP32 তে তাপমাত্রা, আর্দ্রতা এবং চাপ প্রদর্শন করা যায় - কি করা সহজ: এই টিউটোরিয়ালে আমরা ENV সেন্সর (DHT12, DHT12, BMP280, BMM150)
Arduino ব্যবহার করে P10 LED ডিসপ্লে মডিউলে তাপমাত্রা প্রদর্শন করুন: 3 টি ধাপ (ছবি সহ)
Arduino ব্যবহার করে P10 LED ডিসপ্লে মডিউলে ডিসপ্লে তাপমাত্রা: আগের টিউটোরিয়ালে বলা হয়েছে কিভাবে Arduino এবং DMD সংযোগকারী ব্যবহার করে ডট ম্যাট্রিক্স LED ডিসপ্লে P10 মডিউলে টেক্সট প্রদর্শন করতে হয়, যা আপনি এখানে পরীক্ষা করতে পারেন। এই টিউটোরিয়ালে আমরা P10 মডিউলকে ডিসপ্লে মেড হিসাবে ব্যবহার করে একটি সহজ প্রকল্প টিউটোরিয়াল দেব
Arduino ব্যবহার করে P10 LED ডিসপ্লেতে টেক্সট প্রদর্শন করুন: 5 টি ধাপ (ছবি সহ)
Arduino ব্যবহার করে P10 LED ডিসপ্লেতে টেক্সট প্রদর্শন করুন: ডটম্যাট্রিক্স ডিসপ্লে বা সাধারণত রানিং টেক্সট নামে পরিচিত, প্রায়ই দোকানে তাদের পণ্যের বিজ্ঞাপনের মাধ্যম হিসেবে পাওয়া যায়, এর ব্যবহারিক এবং ব্যবহারে নমনীয় যা ব্যবসায়িক অভিনেতাদের বিজ্ঞাপনের পরামর্শ হিসেবে ব্যবহার করতে উৎসাহিত করে। এখন ডটের ব্যবহার
একটি উইন্ডোজ কম্পিউটারে একটি লিনাক্স কম্পিউটার থেকে X প্রোগ্রাম প্রদর্শন করতে SSH এবং XMing ব্যবহার করুন: 6 টি ধাপ
একটি উইন্ডোজ কম্পিউটারে একটি লিনাক্স কম্পিউটার থেকে এক্স প্রোগ্রাম প্রদর্শন করতে SSH এবং XMing ব্যবহার করুন: আপনি যদি কর্মক্ষেত্রে লিনাক্স ব্যবহার করেন, এবং বাড়িতে উইন্ডোজ ব্যবহার করেন, অথবা বিপরীতভাবে, আপনাকে হয়তো আপনার অন্য স্থানে কম্পিউটারে লগ ইন করতে হতে পারে , এবং প্রোগ্রাম চালান। ঠিক আছে, আপনি একটি এক্স সার্ভার ইনস্টল করতে পারেন, এবং আপনার এসএসএইচ ক্লায়েন্টের সাথে এসএসএইচ টানেলিং সক্ষম করতে পারেন এবং একটি